Timer con accensione rele'
ciao tutti
stamattina ho cominciato studiare il modulino rtc ds1307
sono riuscito ad utilizzarlo, 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 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 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:
mentre l'rtc l'ho solo testato con l'esempio assieme alla libreria:
stamattina ho cominciato studiare il modulino rtc ds1307
sono riuscito ad utilizzarlo, 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 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 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: [select]
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: [select]
#include <wprogram.h>
#include <wire.h>
#include <ds1307.h> // written by mattt on arduino forum , modified d. sjunnesson
void setup()
{
serial.begin(9600);
rtc.stop();
rtc.set(ds1307_sec,1); //set seconds
rtc.set(ds1307_min,23); //set minutes
rtc.set(ds1307_hr,12); //set hours
rtc.set(ds1307_dow,4); //set day of week
rtc.set(ds1307_date,5); //set date
rtc.set(ds1307_mth,3); //set month
rtc.set(ds1307_yr,9); //set year
rtc.start();
}
void loop()
{
serial.print(rtc.get(ds1307_hr,true)); //read hour , update values 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(" "); // space 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);
}
non ho capito una cosa: tu hai attaccato direttamente relè ai pin di arduino?
oppure c'è di mezzo resistenza/transistor?
oppure c'è di mezzo resistenza/transistor?
Arduino Forum > International > Italiano > Generale (Moderator: leo72) > Timer con accensione rele'
arduino
Comments
Post a Comment