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:

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?


Arduino Forum > International > Italiano > Generale (Moderator: leo72) > Timer con accensione rele'


arduino

Comments

Popular posts from this blog

Thread: PKI Client 5.00 install (for eToken Pro)

ATmega2560-Arduino Pin Mapping

Crossfader Arduino Tutorial