Pages: [1]   Go Down
Author Topic: Timer con accensione rele'  (Read 1987 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti
Stamattina ho cominciato a studiare il modulino RTC DS1307
Sono riuscito ad utilizzarlo, a settare l'orario e la data, tutto ok, d'altra parte e' veramente semplice.

Ora, ho anche una shiedl con 6 rele', ho fatto una cosina simpatica col telecomando, praticamente ho assegnato ai tasti del telecomando l'accensione di ogni rele', e gia' qui una prima domanduccia, con l'alimentazione usb ce la fa ad accenderne 4, con un alimentatore esterno ne eccita 5, il sesto accende giusto la lucina sulla shield ma non si sente il "tic" del rele', inoltre si blocca il sistema e devo togliere l'alimentazione per ripristinarlo. Forse la 5v di arduino non e' sufficiente? Devo alimentare a parte la shield? Comunque questo e' il dubbio minore.

Cio' che vorrei fare e' comandare automaticamente l'accensione dei vari rele' tramite l'RTC, programmandoli a vari orari.
Immagino sia semplicissimo, ma non ho trovato informazioni.

Escludendo la parte iniziale della codifica del telecomando, per ora ho questo script per la sola parte telecomando:

Code:
int RECV_PIN = 11;                            // Pin ricevitore Ir

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  pinMode(9, OUTPUT);     // Led 1
  pinMode(10, OUTPUT);    // Led 2
  pinMode(13, OUTPUT);    // Led di stato
  pinMode(8, OUTPUT);     //rele1
  pinMode(7, OUTPUT);     //rele2
  pinMode(6, OUTPUT);     //rele3
  pinMode(5, OUTPUT);     //rele4
  pinMode(4, OUTPUT);     //rele5
  pinMode(3, OUTPUT);     //rele6
 
  irrecv.enableIRIn();    // Inizializza ricevitore Ir
  Serial.begin (9600);
}

void loop() {

  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);       //Risultato in esadecimale
    irrecv.resume();
    }

  if(results.value == PONOFF){
    digitalWrite(10, LOW);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    digitalWrite(7, LOW);
    digitalWrite(6, LOW);
    digitalWrite(5, LOW);
    digitalWrite(4, LOW);
    digitalWrite(3, LOW);     
  }
    if(results.value == P1){
    digitalWrite(8, HIGH);
  }
  if(results.value == P0){
    digitalWrite(8, LOW);
  }
      if(results.value == P2){
    digitalWrite(7, HIGH);
  }
  if(results.value == P0){
    digitalWrite(7, LOW);
  }
      if(results.value == P3){
    digitalWrite(6, HIGH);
  }
  if(results.value == P0){
    digitalWrite(6, LOW);
  }
      if(results.value == P4){
    digitalWrite(5, HIGH);
  }
  if(results.value == P0){
    digitalWrite(5, LOW);
  }
   if(results.value == P5){
    digitalWrite(4, HIGH);
  }
  if(results.value == P0){
    digitalWrite(4, LOW);
  }
   if(results.value == P6){
    digitalWrite(3, HIGH);
  }
  if(results.value == P0){
    digitalWrite(3, LOW);
  }
 
}



Mentre l'RTC l'ho solo testato con l'esempio assieme alla libreria:

Code:
#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h> // written by  mattt on the Arduino forum and modified by D. Sjunnesson

void setup()
{
  Serial.begin(9600);

  RTC.stop();
  RTC.set(DS1307_SEC,1);        //set the seconds
  RTC.set(DS1307_MIN,23);     //set the minutes
  RTC.set(DS1307_HR,12);       //set the hours
  RTC.set(DS1307_DOW,4);       //set the day of the week
  RTC.set(DS1307_DATE,5);       //set the date
  RTC.set(DS1307_MTH,3);        //set the month
  RTC.set(DS1307_YR,9);         //set the year
  RTC.start();

}

void loop()
{

  Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
  Serial.print(":");
  Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
  Serial.print(":");
  Serial.print(RTC.get(DS1307_SEC,false));//read seconds
  Serial.print("      ");                 // some space for a more happy life
  Serial.print(RTC.get(DS1307_DATE,false));//read date
  Serial.print("/");
  Serial.print(RTC.get(DS1307_MTH,false));//read month
  Serial.print("/");
  Serial.print(RTC.get(DS1307_YR,false)); //read year
  Serial.println();

  delay(1000);

}
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 144
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho capito una cosa: tu hai attaccato direttamente i relè ai pin di arduino?
oppure c'è di mezzo resistenza/transistor?
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3252
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No ha collegato lo shield all'alimentazione della usb, lo shield relè ha già i suoi transistors.

Non ce la fa la usb del pc a fare tutto, rischi di danneggiare anche la porta del  pc
Per attivare un relè a un orario ti basta confrontare le variabili DS1307_HR, DS1307_MIN, DS1307_SEC con  3 variabili impostate da te con qualche if magari invece di mettere == usi >=

int time1_ore= 12;
int time1_min = 0;
int time1_sec = 0;

int time2_ore= 18;
int time2_min = 20;
int time2_sec = 0;

if(DS1307_HR >= time1_ore && DS1307_MIN >= time1_min && DS1307_SEC >= time1_sec)
...........
if(DS1307_HR >= time2_ore && DS1307_MIN >= time2_min && DS1307_SEC >= time2_sec)
...........
Logged

no comment

ITALY
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se si tratta di una USB 2.0 non può fornire più di 500mA e sì se vai oltre rischi di danneggiarla. Se hai un connettore ad Y puoi collegare 2 porte contemporaneamente ed avere 1A.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21243
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non prendere cavi a Y perché l' Arduino stesso ha un fusibile autoripristinante da 0,5A e non combini niente. Usa un alimentatore da 5V e 1A per alimentare Arduino e la scheda.
Ciao Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si con la USB immaginavo fosse quello il problema, ma ho usato anche un trasformatore 12v 1200mA, e c'e' lo stesso problema.

Grazie Pablos per il chiarimento "timer", pensavo di fare proprio cosi', ma mi chiedevo se ci fosse un'istruzione gia' pensata per questo scopo magari gia' nella libreria.
Sei stato molto chiaro, grazie mille.
« Last Edit: April 26, 2012, 12:58:37 pm by Vinzo » Logged

ITALY
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non prendere cavi a Y perché l' Arduino stesso ha un fusibile autoripristinante da 0,5A e non combini niente. Usa un alimentatore da 5V e 1A per alimentare Arduino e la scheda.

vero, non avevo visto lo schema
Logged

italy
Offline Offline
Jr. Member
**
Karma: 0
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sto cercando vari pareri per alimentare arduino e relay shield e alcuni sensori di temperatura.
 e quindi chiedo consigli su che alimentatore andrebbe bene per far funzionare il tutto.
Un alimentatore da 5 v 1A è sufficiente o sarebbe meglio uno leggermente più potente nel caso ci collegassi altri shield?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 513
Posts: 12317
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sto cercando vari pareri per alimentare arduino e relay shield e alcuni sensori di temperatura.
 e quindi chiedo consigli su che alimentatore andrebbe bene per far funzionare il tutto.
Un alimentatore da 5 v 1A è sufficiente o sarebbe meglio uno leggermente più potente nel caso ci collegassi altri shield?
Ora che ho visto che hai postato la stessa domanda docunque tu abbia letto la parola alimentazione, lo confermo: sei uno SPAM; non è corretto questo modo di agire, non puoi infilarti in ogni Topic e fare la stessa domanda; io non so che Forum sei abituato a frequentare, ma qui le risposte arrivano e se non arrivano vuol dire che non ce ne sono. Ti spiego un trucco: la prossima volta che hai bisogno di aiuto apri un Topic tutto tuo, non incasinare quelli degli altri, mi meraviglio come ancora il Moderatore non sia intervenuto cancellando tutte le tue copie di post e lasciandone uno solo. Abbi pazienza, non te la prendere, ma le regole sono regole. Anzi ora sarebbe molto corretto da parte tua eliminare tutti quei duplicati.
« Last Edit: May 06, 2012, 05:19:00 am by Michele Menniti » Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Offline Offline
Newbie
*****
Karma: 13
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sto cercando vari pareri per alimentare arduino e relay shield e alcuni sensori di temperatura.
 e quindi chiedo consigli su che alimentatore andrebbe bene per far funzionare il tutto.
Un alimentatore da 5 v 1A è sufficiente o sarebbe meglio uno leggermente più potente nel caso ci collegassi altri shield?

È il terzo posto dove aggiungi la stessa domanda. per favore non proseguire.

Ciao
Uwe Federer
Moderatore
Logged

italy
Offline Offline
Jr. Member
**
Karma: 0
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok scusate cercherò di stare più attento.
è solo che faccio più domande uguali per sentire pareri diversi.
credevo che in base al titolo del topic dovrebbe avere un problema differente e quindi ci sarebbero state persone diverse che potevano darmi suggerimenti perchè non credo che tutti guardino tutti i post.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 513
Posts: 12317
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok scusate cercherò di stare più attento.
è solo che faccio più domande uguali per sentire pareri diversi.
credevo che in base al titolo del topic dovrebbe avere un problema differente e quindi ci sarebbero state persone diverse che potevano darmi suggerimenti perchè non credo che tutti guardino tutti i post.
Credi male, invece sono in molti che leggono tutti i Topic, poi uno può intervenire o meno in base alle proprie competenze smiley-wink
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

italy
Offline Offline
Jr. Member
**
Karma: 0
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok cercherò di non far arrabbiare più nessuno con domande doppie o più.
sbagliando si impara.
Logged

Pages: [1]   Go Up
Jump to: