Recensisci!
Diventa un recensore per ricevere prodotti gratuiti o scontati!
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Adsense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
I postatori più attivi del mese
Admin
 

Arduino ed rtc, come impostarlo?

Andare in basso

Arduino ed rtc, come impostarlo?

Messaggio Da Dock il Sab Giu 18, 2016 6:34 pm

Un ciao a tutti volevo porre un quesito.. io ho questo sketch che comanda un motorino passo passo
che a sua volta apre e chiude una porticina ora voorei per esempio far aprire ad arduino la porta alla 7 e chiuderla alle 20..
Quindi come faccio ad inserire nel codice l'orario tramite il modulo rtc?
Codice:
#include <Stepper.h>
    #define STEPS  100  
    Stepper small_stepper(STEPS, 2, 4, 3, 5);
    int  Steps2Take;
    void setup()  
    {
    }

    void loop()  
    {
      small_stepper.setSpeed(200);  
      Steps2Take  =  20048;  
      // Rotate CW For a complete rotation
      // Change this number for change the degrees of the rotation
      small_stepper.step(Steps2Take);
      delay(2000);
      small_stepper.setSpeed(200);  
      // Change this for change the speed
      Steps2Take  =  -20048;  // Rotate CCW
      small_stepper.step(Steps2Take);
      delay(2000);}

Chiaramente arduino alle 7 mi deve far funzionare
Codice:
Steps2Take  =  -20048;
mentre alle 20
Codice:
Steps2Take  =  20048;
Questo perchè il motorino inverte la corsa avete qualche idea? un grazie in anticipo..
avatar
Dock
Livello uno
Livello uno

Messaggi Messaggi : 14
Crediti Crediti : 23
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 01.03.16
Età Età : 38

Visualizza il profilo

Torna in alto Andare in basso

Re: Arduino ed rtc, come impostarlo?

Messaggio Da Admin il Sab Giu 18, 2016 7:13 pm

Ciao,

Sinceramente ancora non ho provato il modulo RTC ma penso di farlo prima o poi. Anche sul Fishino c'è quindi devo proprio provarlo non appena possibile! Comunque dando un'occhiata ho visto che bisogna scaricare una libreria che ti permette di facilitare l'utilizzo di questo modulo.

Qual è il modello del tuo RTC? Ciao!
avatar
Admin
♔ Amministratore

Messaggi Messaggi : 4311
Crediti Crediti : 12013
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 19
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Re: Arduino ed rtc, come impostarlo?

Messaggio Da Dock il Sab Giu 18, 2016 7:29 pm

Grazie per la risposta il modulo è il rtc ds1307 ho scaricato le librerie iol modulo funziona bene, ma ora come inserisco ora inizio e ora fine del singolo ciclo? No No
avatar
Dock
Livello uno
Livello uno

Messaggi Messaggi : 14
Crediti Crediti : 23
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 01.03.16
Età Età : 38

Visualizza il profilo

Torna in alto Andare in basso

Re: Arduino ed rtc, come impostarlo?

Messaggio Da Admin il Sab Giu 18, 2016 8:36 pm

Devi allora scaricarti la libreria RTCLib e dare un'occhiata a questo classico esempio di codice:

Codice:
// 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 () {
    DateTime now = RTC.now();
   
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
   
    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");
   
    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now.unixtime() + 7 * 86400L + 30);
   
    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();
   
    Serial.println();
    delay(3000);
}

Alla fine ti basterà fare qualche if però bisogna prima capire come l'orario viene stampato Ciao!
avatar
Admin
♔ Amministratore

Messaggi Messaggi : 4311
Crediti Crediti : 12013
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 19
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Torna in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum