Echtzeituhr mit Display am Nano V3 - AZ-Delivery

Nel nostro contributo al blog di oggi, stiamo combinando tre prodotti: il nostro tempo di vita. AZ - Delivery Nano V3, uno orologio in tempo reale DS3231, e uno segmento a quattro cifre del LED LED a 7 caratteri.

Si tratta di una buona base per i progetti che hanno un ruolo da svolgere, indipendentemente dal fatto che qualcuno voglia realizzare un orologio cubico basato su Arduino, un controllo di accesso basato sul tempo, o un timbrato con tag RFID.

Nel nostro progetto di oggi, l'Arduino riceve l'ora dell'orologio in tempo reale, e li esci dal display. Ognuno dei moduli richiede solo 4 connessioni.

Stiamo cablando i componenti come segue:

AZ - Delivery Nano V3

DS3231

A5

SCL

A4

SDA

3V3

VCC

GND

GND

 

AZ - Delivery Nano V3

4 Digit 7 Segmento di visualizzazione

D2

CLK

D3

VALUTAZIONE

+ 5V

VCC

GND

GND

 

 

orologio del piano

 

Per la programmazione, usiamo la stessa biblioteca del nostro eBook a 4 Digit 7 Segmento Display: TM1637Display.h.

L'orologio in tempo reale è connesso al bus IhC. L'orologio ha l'indirizzo di 0x68.

La funzione bcdToDic richiede che il codice binario sia convertita in numeri decimali dall'orologio in tempo reale.

 

" #include " <Arduino.h>

" #include " <TM1637Display.h>
" #include " <Wire.h>
" #define " RTC_I2C_ADDRESS 0x68 // I2C indirizzo di RTC DS3231
 
" #define " CLK 2 // Arduino Pin D2 come CLK (RTC) 
" #define " VALUTAZIONE 3 // ArdDIC Pin D3 come DIO (RTC)
 
TM1637Display display(CLK, VALUTAZIONE); // 

uint8_t bcdToDic( uint8_t val )
{    return (uint8_t) ((val / 16 * 10) + (val % 16));
}

int pause = 500;
 
int stoppe,minute,secondo;     void Impostazione(){   Wire.begin();   Seriale.begin(9600);   display.setBrightness(0x0a);     }
 
void loop(){    Wire.beginTransmission(RTC_I2C_ADDRESS); // Creare la connessione all'indirizzo 0x68    Wire.scrittura(0);    Wire.endtransmission();    Wire.requestFrom(RTC_I2C_ADDRESS, 7);      secondo = bcdToDic(Wire.read() & 0x7f);    minute = bcdToDic(Wire.read());     stoppe = bcdToDic(Wire.read() & 0x3f);           Seriale.print(stoppe);      Seriale.print(":");      Seriale.print(minute);      Seriale.print(":");      Seriale.println(secondo);               display.showNumberDic(stoppe, true, 2, 0);      display.showNumberDic(minute, true, 2, 2);    delay(pause);

}

Una volta caricato il codice, è possibile controllare il monitoraggio seriale dell'Arduino e verificare se ogni mezzo secondo viene speso il tempo.

Quando tutto è collegato correttamente, l'ora corrente viene visualizzata sul segmento 7.

 

Costruzione remota

 

In tal modo abbiamo creato la base per altri progetti. Che ne dici di un display più grande? Sensori di temperatura e pressione atmosferica per una stazione meteorologica? O forse un MP3 di Shield che da' un "furgone" a ogni ora?

 

Ci auguriamo che lei abbia ispirato il nostro contributo al blog di oggi, e attendiamo con ansia i vostri commenti. Fino al prossimo contributo di AZ - Delivery, il suo esperto di microelettronica!


 

Für arduinoProjekte für anfänger

2 commenti

udo

udo

hallo,

durch diesen code stürzt ständig meine arduino ide ab.

truefirewolf

truefirewolf

Hallo,

zunächst hatte ich mich gefreut mit so wenigen Bauteilen und kurzem Code eine Digitaluhr zu bauen.

Bei genauerer Betrachtung stellt man allerdings fest, dass man die Uhrzeit so nicht einstellen kann, das gibt die Software nicht her.

Es wäre ein außerordentlicher Zufall, wenn die Uhrzeit beim Einschalten genau stimmen würde. Man benötigt ein anderes Programm wie z.B. von der Seite: http://shelvin.de/die-uhrzeit-des-rtc3231-vom-arduino-einstellen/

Betreiben kann man die so eingestellte Uhr dann mit dem oben angegeben Programm. Da die Batterie Jahre halten soll, muss o.g. Prozedur eben auch nur bei Batteriewechsel durchgeführt werden.

truefirewolf

Lascia un commento

Tutti i commenti vengono moderati prima della pubblicazione