Vai al contenuto
PLC Forum


Orologio Arduino


Messaggi consigliati

Inserito:

/*####################################################################
FILE: ds1307.ino
VERSION: 1.0
PURPOSE: Real Time Clock module with DS1307 test sketch
Description:
* Communicates with the DS1307 rtc via the I2C bus
* Time and date are displayed on the Serial Monitor
Connections:
* BOARD -> ARDUINO
* Vcc -> 5V
* GND -> GND
* SDA -> A4
* SCL -> A5
HISTORY:
Mirko Prosseda - Original version (23/06/2013)
#######################################################################*/
#include <ds1307.h>
#include <Wire.h>
ds1307 DS1307;
uint8_t buffer[7]; // receiving buffer
void setup()
{
Serial.begin(9600);
Wire.begin();
Serial.println("Real Time Clock module with DS1307 test sketch");
DS1307.resume(); // turn on the internal clock
}
void loop()
{
DS1307.getDate(buffer);
Serial.print("Date(dd:mm:yy) ");
Serial.print(buffer[4], DEC); // day
Serial.print(':');
Serial.print(buffer[5], DEC); // month
Serial.print(':');
Serial.print(buffer[6], DEC); // year
Serial.print(':');
Serial.print(" Time(hh:mm:ss) ");
Serial.print(buffer[2], DEC); // hours
Serial.print(':');
Serial.print(buffer[1], DEC); // minutes
Serial.print(':');
Serial.println(buffer[0], DEC); // seconds
delay(1000);
}
Ho questo codice con cui riesco a leggere nella seriale la data e l ora, ma se voglio far accendere un led in un giorno e in una ora specifica come si fa a scrivere la stringa? per esempio fra due giorni 14/07/15 alle ore 10:00:00 devo accendere il led e spegnerlo alle 10:10:00

Inserita:

dopo aver letto l'ora la devi valutare , guarda un po nel sw dove si trova l'ora ....

Inserita:

Hai indicato nei commenti i contenuti degli elementi del buffer; devi comparare l'egualglianza dei ari elementi con i tuoi dati ed effettuare l'and dei risultati.

Inserita:

si ma come faccio a scrivere if( buffer [2] == 22) { fai qualcosa...} è giusto? questa sera provo lo stesso

Inserita:

Io partirei con:

if (buffer (6) == 15)
    {
      if (buffer (5) == mese)
        {
           if (buffer (4) == giorno)
             {
               if.........

In questo modo parti a verificare dall'anno e scendi sino al minuto, se necessario.

Inserita:

sisi questo sicuro volevo solo sapere se era giusto interrogare buffer (5)... ecc ecc devo trovare il file con cui ho settato la prima volta il ds1302 e vedere cosa c e scritto in write buffer o qualcosa di simile. Lo stesso farò per leggere

Inserita:

if giorno == mio giorno && mese==mio msese && ..........secondi >= miei secondi ........facci oqualcosa

-------

So ma qualcosa di linguaggio C lo devi sapere seno segui una guida sul web che ce ne sono tante e ben fatte

Adesso va bene e tutto ma non sapere impostare impsotare una cosa del genere ma nemmeno provarci ,i sembr aun po troppo ......

Eddai su ....

Inserita:

ma nemmeno provarci ,i sembr aun po troppo ......

Eddai su ...

eddai su cosa? :lol: se non ci ho provato è perche non ho avuto tempo ora provo e ti faccio sapere ;)

Inserita: (modificato)

se non ci hai provato tu , pensa noi ;)

Capisco che durante uno studio o sviluppo si abbiano dei problemi da condividere, ma avere un problema e postarlo per gli altri senza nemmeno provarci lo trovo intollerante :)

Modificato: da walterword
Inserita:
ho provato cosi proprio adesso minuto 32, e si è acceso il led proprio come volevo
if(buffer[1] ==32){
digitalWrite(8,1);}
ma avere un problema e postarlo per gli altri senza nemmeno provarci lo trovo intollerante :smile:

e invece forse ci puo essere anche qualcuno che lo trova interessante :smile:

Inserita:
eddai su cosa? :lol:

Le faccine Ti salvano ! :superlol: Fai fare i Tuoi compiti agli altri :superlol: . Ai miei tempi c'era If.....& ... .Then ..... Dubito che sia cambiato tanto come principio...

Inserita: (modificato)
Fai fare i Tuoi compiti agli altri :superlol:

ma che dici?? non avevo il problema di fare l if ma di capire come e dove prendere l informazione dell orario, comunque penso che un po una calmata ve la dovete dare perchè questo è un forum nessuno deve farmi nulla, anch io do consigli tecnici senza prendermela e ne sentirmi usato, lo faccio con piacere quando lo voglio, altrimenti non scrivo proprio! e poi walter se si sente intollerante a me sai quanto mi interessa :smile: non sto scrivendo solo a lui e a te gabri ;) quindi non vi sentite in dovere di fare i miei compiti semplicemente non scrivete :superlol:

Modificato: da roberto8303
Inserita:

Mi sento veramente male visto che parli di cuore ; se la interpreti in questo modo .... ; 'sta volta si capisce che le faccine da Te inserite sono.....finte .

Chiedo scusa per il disturbo !

Inserita:

io sono tranquillissimo , non faccio nemmeno una piega ....non credere che mi sia alterato per i tuoi problemi ;)

comunque se leggi il sw ....vedrai una riga di codice con relativo commento // Hour che in italiano significa ora , poi ce ne sono altri

Prima di postare almeno leggi quello che scrivi , lo dico per te

Nei cantieri industriali o in certi uffici e/o officine non c'e' nessuno che ti risolve le cose , le devi fare tu

Per cui invece di fare polemiche , interpreta quello che ti abbiamo scritto come esperienza da sviluppare

Inserita:

Nei cantieri industriali o in certi uffici e/o officine non c'e' nessuno che ti risolve le cose , le devi fare tu

....ahaha ok;)

Inserita:

Ragazzi basta!

Fa già caldo di suo sei vi scaldate anche rischiate un bel ricovero per TSO. :P

Inserita:

io non rischio niente , sto qua al fresco con aria condizionata , pc e libri ;)

Inserita:

Io ancora meglio al fresco e aspetto che gli altri fanno i miei compiti come si sta bene

Inserita:

Adesso basta, ancora un commento su questo tono e chiudo la disuccione.

Se non è colpa del caldo allora siete messi proprio male. :toobad:

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...