Go Down

Topic: Buon RTC per stazione meteo? (Read 1 time) previous topic - next topic

As_Needed

Salve a tutti,
Siccome volevo inserire pure un rtc al mio progetto della stazione meteo, mi chiedevo quale potevo prendere, che costi però poco e che dia una discreta affidabilità. Sapete consigliarmene qualcuno? Magari con relativo schema di montaggio ad arduino.
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

brunello22

DS3231
O altrimenti DS1307, pero' quest'ultimo ti sballa anche di 20 secondi al giorno
Visto che la differenza di costo e' minima, scegli il DS3231. Su Ebay ne trovi a bizzeffe.

In alternativa, come gia' detto da qualche altra parte, se hai una scheda Ethernet potresti usare una libreria che ti simula un RTC via software ( cerca RTCLIB e vedi l'esempio softrtc ) e leggere periodicamente l'ora da Web ( servizio NTP, ci sono gli esempi nella libreria Ethernet ) e sincronizzare quindi l'RTC software.
Pero' sei appunto legato a una connessione Internet, quindi forse e' il caso di investire un 3/4 euro e rendere il tutto autonomo.
Per collegare un RTC, basta collegarsi alle due linee dell'I2C ( SDA-pinA4 e SCL-pinA5 ). Se hai già qualcosa collegato all'I2C, non devi fare altro che metterlo in parallelo


As_Needed

Grazie mille Brunello ;)
Comunque ho collegato così, va bene come ho messo? Su ebay si trova a pochi euro infatti, e anche se metterò l ethernet shield voglio averlo come dici un rtc per rendere il tutto autonomo... Comunque l'ethernet shield occupa dei piedini? Cioè sì, si incastra con arduino, ma occupa, nel senso che usa qualche piedino di arduino lo shield?
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

brunello22

Esatto, è collegato in modo corretto, pero' prevedi ache due resistenze tra le linee I2C (SDA e SCL) e il Vcc. Servono a caricare il bus e anche se in genere ogni modulino ha già le sue a bordo, non e' detto che non vadano inserite

 Riguardo alla shield Ethernet, si collega fisicamente sul connettore ICSP ( quello a 6 pin ) però devi lasciare liberi anche i pin D10, D11, D12, D13 ( sono quelli del Bus SPI usato dalla Ethernet ) e se vuoi usare anche la SD a bordo della shield, devi liberare il pin D4

As_Needed

#4
Nov 14, 2015, 04:52 pm Last Edit: Nov 14, 2015, 04:56 pm by As_Needed
Ah... allora mi sa è un problema collegare lo shield ho praticamente tutto occupato...

Per le resistenze da quanto ? Ma così dici? (foto)

EDIT: Vedi questa di immagine che quella che ho caricato è fatta male
http://i.imgur.com/cGcrha3.png
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

brunello22

forse mi sono spiegato male, le reistenze vanno tra i comuni dell'SDA e il positivo , lo stesso per l'SCL

in pratica sono dei PullUp, il valore dipende da che resistenze hanno inserito nei moduli, diciamo che 3,3K dovrebbe andare bene

Puoi usare anche i pin da A0 a A3 come digitali


As_Needed

forse mi sono spiegato male, le reistenze vanno tra i comuni dell'SDA e il positivo , lo stesso per l'SCL

in pratica sono dei PullUp, il valore dipende da che resistenze hanno inserito nei moduli, diciamo che 3,3K dovrebbe andare bene

Puoi usare anche i pin da A0 a A3 come digitali


Forse ho capito male pure io. Adesso le ho messe così, dimmi se ho capito...
Comunque allora posso usare da A0 ad A3 come digitali e poi sposto il tx20 al pin 12 e uso l sd sul pin 4 ;)
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

brunello22

cosi'


i pin da 10 a 13, per la ethernet devono essere lasciati liberi
Che LCD-TFT useresti ?


As_Needed

#8
Nov 14, 2015, 06:27 pm Last Edit: Nov 14, 2015, 06:35 pm by As_Needed
Ecco fatto.
Comunque è questo il display
http://www.tweaking4all.com/hardware/arduino/sainsmart-arduino-color-display/

Qua ci sono i vari metodi di collegamento oltre lo schema del display, il problema che il tft mi prende 5 ingressi digitali...

A meno che non sia possibile spostare 4 ingressi del display su quelli da A0 ad A3 e quindi liberare da D10 a D13 e poi spostare il tx20 su un altro piedino libero digitale, liberando così il piedino D4 per usare l'sd...
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

brunello22

puoi collegarlo direttamente sul bus SPI

Quote
// Option 2: must use the hardware SPI pins
// (for UNO thats sclk = 13 and sid = 11) and pin 10 must be
// an output. This is much faster - also required if you want
// to use the microSD card (see the image drawing example)
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);
dove come CS, DC, RST usi 3 pin che possono essere A1, A2, A3 ( gli altri due vanno al 11 e 13 )

As_Needed

Però non risolvo il problema dell'ethernet...
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

brunello22

certo che lo risolvi.
sia l'ethernet che il TFT usano il bus SPI, che e' composto da 3 pin ( clk, Mosi, Miso e CS)
e siccome si tratta di un BUS, vi puoi collegare piu' dispositivi, l'unica cosa che non puo' essere in comune e' il CS ( chip select ) che deve essere diverso per ogni periferica.
in pratica,


Quote
* ETH sono i pin di Arduino con inserita la shield Ethernet

ETH           TFT
  13            SCK (SCL)
  12                                 Lasciare libero
  11            MOSI (SDA)
  10                                 Lasciare libero
 A1              DC
 A2              RES
 A3              CS



As_Needed

Ah ecco perché si possono collegare più dispositivi come su A4 e A5!
Mi metto all'opera per lo schema allora ;) Grazie mille dell'aiuto che mi stai dando!
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

As_Needed

Allora ecco lo schema penso vada bene ;)
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

brunello22

Secondo me, la gestione dell'anemometro TX20 lavora su Interrupt
e ti ricordi che abbiamo detto che i pin possono essere D2 per l'interrupt 0 e D3 per l'interrupt 1  ?
Sul  pin D3 (interrupt 1 ) c'e' il pluviometro.... OK
Sul pin D2  (interrupt 0 ) attualmente c'e' il DS18B20, che funziona solo a chiamata, quindi puoi inserirlo in un pin qualsiasi
Mentre l'Anemometro e' sul pin D8.
Se inverti i pin D2 con D8 e' meglio

Sai cosa sono gli interrupt, vero ?
Faccio un esempio:
Tu vuoi leggere la velocità del vento e sai che l'OUT l'anemometro passa da LOW ad HIGH ad ogni giro completo delle pale ( o anche 2, 3, 4 volte, dipende da quanti reed vi hanno messo ) , tu non devi fare altro che rilevare lo stato sul pin collegato all'OUT dell'anemometro e misurare il tempo trascorso tra un impulso e l'altro.
Ora per fare questo, dovresti leggere continuamente lo stato della porta, senza poter fare altro. Ed e' qui che conviene usare gli Interrupt, che non sono altro una delle possibilità che offre il micro. In pratica abilitandolo, non fai altro che istruire il micro ad eseguire una certa azione quando lo stato su un determinato pin cambia. Puoi rilevare se e' LOW, se ha cambiato di stato, o anche nel momento in cui passa da HIGH a LOW o viceversa.
E il bello e' che la routine chiamata da questo interrupt si attiva anche se stai facendo altre cose e quindi non perde un colpo






Go Up