Recent Posts

Pages: [1] 2 3 ... 10
1
Hello forum! I'm building a small automatic watering system on my balcony.

It will consist of two 12v water pumps and three valves, controlled by an arduino, a RTC and a WiFi controller. The valves and pumps will be powdered by solar panel and a 12v battery and the controller, WiFi and RTC by a 6v battery (also charged by solar).

There will be three valves attached to a small water tank somewhat above my plants in height. I want to open a valve when it's time to water the corresponding plant box and have the water drop down into the box by gravity.

I've found a solenoid direct valve that will open when given power and close (by spring or magnet or something) when power is turned off.

This could possibly be done with a relay on each valve, each relay connected to the 12v battery and to a separate pin on the arduino board.

Is there some way that one could control the three valves from one pin on the arduino?

Does there exist some kind of relay/transistor that can take let's say three different signals from the controller (for instance low, medium and high), and then relay they full 12v signal to the valve that correspond with that particular signal?

This will be my first introduction in electronics/arduino project of any kind and that is why I am asking, to lean a bit more. I have spent many days now reading up on the basics of electronics and looking at arduino water systems online but I haven't figured out what device I could use here.

There is no wire diagram yet (haven't gotten to that part yet) but I hope the images can be of help.

In advance thanks for any answer.
2
Generale / Re: Presentazioni nuovi iscrit...
Last post by Ninus - Today at 12:54 am
Ciao a tutti, mi chiamo Nino, ho 45 anni e sono un ingegnere chimico, appassionato anche di informatica ed elettronica.

Bhe, del resto si tratta sempre di avere a che fare con elettroni che si spostano tra atomi, vero?

Da sempre mi piace sperimentare nuove idee e pensare a nuove soluzioni per piccoli e grandi problemi, ma poi bisogna far i conti con il tempo, la conoscenza e il denaro... tralasciando l'ultimo fattore perché coinvolto in altre attività, magari più realiste, ecco che i rimanenti cerco di impiegarli quanto più possibile per progredire nei miei piccoli sogni.

Quindi, scoperto Arduino qualche anno fa e tutto il vasto mondo correlato, mi sono cimentato in qualche piccolo progettino che, grazie anche e soprattutto alle guide ed ai consigli di questo forum da cui accingevo in anonimato leggendo le soluzioni ai problemi simili di altri, funzionava poi alla perfezione.
Per citarne uno, la costruzione di una stampante 3D, il cui cervello è un Arduino Mega 2560.

Finora ho usato: Arduino Uno, Mega, Yun e Nano. I miei livelli di programmazione sono buoni, Pascal, Visual Basic, Java, HTML erano il mio forte. Poi li ho accantonati per un bel po.
Le mie conoscenze sull'elettronica in generale sono da autodidatta, ma all'università ho fatto anche esami su impianti elettrici per cui la base esiste ed è solida.

Che dire di più, spero di poter acquisire nuove conoscenze, di integrare le mie lacune, di correggere i miei errori e di condividere le mie soluzioni sul mondo di Arduino grazie all'aiuto di tutti voi del forum.

Grazie a tutti ed a presto!   
3
Software / Re: problema con libreria time...
Last post by ArduMyth - Today at 12:54 am
Sí, es que para tener todas esas variables volátiles haces variables locales dentro de funciones o bien son volátiles dentro del loop (y no se les asigna un valor al declararlas).
Tú estás generando muchas "globales volátiles" y si son goblales ya declara cómo volatile empieza a ser un poco "raro". Se puede, pero... Es que volatile está pensando para ser una local dentro de una función sin que pierda el valor (pero sin acceso desde otro lado).

Una global volatile tendría sentido si cambia dentro de una función pero estamos en la necesidad de tener acceso a la misma desde otra parte del código, claro que para eso la hacemos global de entrada y woilá resulta que tenemos lo mismo.
El problema viene dado cuando la gente lee que así "ahorra memoria", pero sin entender el fundamento de su uso hace todo volatile y resulta que hacen todo lo contrario.

También hay varios if que pueden ser agrupados y variables declaradas con un modo más grande de lo necesario.
Y nunca entenderé cómo pueden programar poniendo los cierres => } en las posiciones que les da gana.
Se nota que void updateEncoder(){} no está creado por ti, fíjate en la limpieza, intenta hacer lo mismo (por ti, pues ello te evitará errores absurdos cómo cierres o aperturas mal)

4
yes it's working, i'll already tried to send and receive message from my phone to gsm module but only a character. not the data that i want like in the result of the code given above
5
I guess I'm also ignorant about how Github works.  If I go to one of the MiniCore link or MCUdude link and find the right .hex file, right-click on that and save it, what I get is source code. It still has a .hex extension, but it's source code, about 74K.   So to get the actual .hex file, I had to left-click on the file, which makes the actual .hex file text be displayed in the text box below, then copy and paste that into a .hex file.

I'm sure I'm doing something wrong, but it's really confusing that right-click and save-as doesn't give you the file you right-clicked on.  Anyway, I have the v8 .hex file now, so thanks to everyone for the links.

6
It's millis() not mills().   Spelling matters.

When you have errors, post the actual error message and the actual code that caused it.  Surely you can understand why.  Just saying that there was an error is a completely useless statement unless all you want is sympathy
7
Sensors / External fast ADC.
Last post by Wintermuteldn - Today at 12:41 am

Hi guys, some advice required with similar problem. So, I have 40 KHz signal that I need to sample. I need at least 20 samples per period, so my thinking is I need to sample at rate of 800 K samples / s. Trouble is my Arduino Uno has issue after I set prescaler for ADC for anything less than 1 / 4 it becomes unstable. Next logical step would be external ADC. Here my thought was to use parallel interface ADC something like:
https://www.mouser.co.uk/ProductDetail/Analog-Devices/AD7822BNZ?qs=%2ftpEQrCGXCyXv71BkCSjyQ%3d%3d
Reasoning behind this ADC is that I will waste less time between samples as parallel output would be fast. Also, I believe creating data bus would be also straight forward in programing.
So here is my question are the assumptions above correct or am I wrong on so many levels?

Cheers
8
If you have an inaccurate count out from the stop and back, a catchall end calibration will hide it.
9
Displays / Re: ILI9341(new)SPI library fo...
Last post by Rossp - Today at 12:39 am
Not too familiar with  your suggestion but I redid my sketch using Sprintf and TFT.printAt to comply with the library demands as in the arcs.ino example and I was able to succeed with a 3 digit integer value but the int always displays a "?" instead of the real value.

Sketch is over 700 lines so here's some details below

Serial data:
avgwindspeed varies from 0-99.9
avgwindangle varies from 0-360


float avgwindspeed ;

int avgwindangle ;

char textBuff [20];

void loop();

sprintf(textBuff, "%4.1f", avgwindspeed);
tft.printAt(textBuff, 260, 23);


sprintf(textBuff, "%3d", avgwindangle);
tft.printAt(textBuff, 260, 80);

Any ideas why ?

Once this is resolved then padding needs to be arranged.

Thanks
10
it makes since why it is used now. I am getting a error because mills() was not declared. Does mills() need to be in global and then defined in setup. I have tried adding just curmills=mills() but there is error.
Pages: [1] 2 3 ... 10