Go Down

Topic: ciclare in background (Read 7798 times) previous topic - next topic

zioTonino

si ma a compilare ci mette 30 secondi .. non 4 minuti!

leo72

E allora ricontrolla il tuo codice per vedere se alteri tu l'orario da qualche parte. Di più non so dirti. __DATE__ e __TIME__ prendono l'orario dal tuo sistema.

zioTonino

ho rincontrollato ma rimane 4 minuti! -.-"

potrei inserirlo io al posto di utilizzare le costanti? se si come?

per i menu, non esiste qualche esepio più "semplice"?

leo72

Certo che puoi, invece di mettere un __TIME__ ci metti l'orario che vuoi.

zioTonino

e come? non riesco a capire il formato con cui inserirli sia il time che la data..

leo72

Guarda il formato che accetta la chiamata che imposta l'orario della libreria che stai usando.

brunello22

Pare quasi che tu non ci scriva proprio sul DS1307.
Che libreria stai usando ?

brunello22

Scusa, ma non conosco il tuo grado di preparazione e non vorrei offendere, ma mi e' sorto un dubbio...
Dato le lo hai preso da ADA e ho visto un tuo post al riguardo, usi questo sketch di esempio....

Code: [Select]

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 RTC;

void setup () {
    Serial.begin(57600);
    Wire.begin();
    RTC.begin();

  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
    }

void loop () {
   


il comando RTC.adjust(DateTime(yy,mm,dd,hh,mm,ss));  si trova all'interno dell' IF e non te lo eseguira' mai.
O gli togli l'alimentazione e poi sfili la batteria e la reinserisci ...
o sposti l' RTC.adjust  fuori dall'IF







leo72


il comando RTC.adjust(DateTime(yy,mm,dd,hh,mm,ss));  si trova all'interno dell' IF e non te lo eseguira' mai.
O gli togli l'alimentazione e poi sfili la batteria e la reinserisci ...
o sposti l' RTC.adjust  fuori dall'IF

Allora spieghiamo meglio  ;). Quell'if serve a controllare se l'RTC sta lavorando. In caso negativo reimposta l'orario, in caso affermativo non lo "tocca".

zioTonino

si si, l'avevo messo fuori ...
ma non so perchè mi dava 4 minuti di scarto!
adesso va molto meglio!

;)


cmq Arduino è fenomenale... chi mi sa spiegare perchè nonostante l'lcd sia RED il relè, attaccato al pin 10 è su on??

Code: [Select]
    // if the LED is off turn it on and vice-versa:
    if (boa2 == LOW){

        lcd.setBacklight(RED);
        st = true;
        digitalWrite(10, LOW);
     }
    else { 
     
      if (boa1 == LOW) {
        lcd.setBacklight(GREEN);
        digitalWrite(10, LOW);
      }
      else{
        lcd.setBacklight(YELLOW);
        digitalWrite(10, HIGH);
      }
     
    }

zioTonino

risolto! :)
stò rinco dal caldo! avevo attaccato l'uscita del pin 10 direttamente al piedino del relè bypassando il transistor :P

zioTonino

ragazzi scusatemi ma non capisco come si comporta l'rtc!

ieri ho spento il pc ma ho lasciato arduino attaccato e funzionante: erano le 18 circa; ieri sera son tornato che erano le 24 e il display segnava le 21!
:smiley-eek:
come diamine è possibile??

stamattina ho provato a staccare la batteria .... a rimetterla dopo 3 secondi ... dopo 1 minuto ... a lasciarlo senza batteria ma niente!
ogni volta riparte dalle 8.24! ho provato pure a fare reset dal pulsante su arduino!
la cosa strana è anche anche senza batteria riparte dalle 8.24! e sulla seriale mi dice "rtc ok"

c'è qualcosa che non va o sono io che mi sono rico??

Code: [Select]
if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__,__TIME__));
  }
 
else {
  Serial.println("RTC OK");
  }


grazie

lestofante

credo che prima di RTC.runnin() devi fare un RTC.begin() o qualcosa di simile
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

leo72


credo che prima di RTC.runnin() devi fare un RTC.begin() o qualcosa di simile

Se la libreria è la RTClib, alllora bisogna inizializzare sia la Wire che la RTC.

@zioTonino:
puoi postare tutto il codice che stai usando? Quella funzione lo sappiamo a memoria cosa fa  :smiley-sweat:
Puoi postare lo schema del tuo circuito per capire se hai messo la batteria tampone, se tutto è collegato giusto ecc..?

brunello22

Leo mi ha tolto la tastiera dalle dita.....
Come diceva, se non posti lo sketch che REALMENTE stai usando e' difficile capire cosa puo' non andare

Go Up