Pages: [1]   Go Down
Author Topic: comandare relè (relay) per accendere un led  (Read 967 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 160
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao a tutti, vorrei comandare con arduino un relè, che se collegato accende un led. so che è una cosa abbastanza stupida ma non capisco perchè il led non si accenda. ho seguito lo schema che si trova qui http://www.arduino.cc/playground/uploads/Main/relays.pdf
ma non avend le stesse parti indicate nello schema ho usato come diodo l'1N4007, bjt BC547, relay SANYOU DSY2Y-S-205L di cui vi allego il datasheet http://www.datasheetdir.com/DSY2Y-S-205L+Solid-State-Relays.
[alla base del bjt ho collegato una resistenza di 7.8KOhm ( (10k||4.7k)+4.7k)]

al pin 8 del relay ho collegato una resistenza da 330Ohm e led rosso

questo è lo schema del circuito
 
questo il codice che ho scritto
Code:
#define RELAY_PIN 3
#define led_pin 9
void setup()
{
  pinMode(led_pin, OUTPUT);
  pinMode(RELAY_PIN, OUTPUT);
  Serial.begin(9600); // open serial
  Serial.println("Press the spacebar to toggle relay on/off");
}

void loop()
{
  static int relayVal = 0;
  int cmd;
 
  while (Serial.available() > 0)
  {
    cmd = Serial.read();
     
    switch (cmd)
    {
    case ' ':
      {
        relayVal ^= 1; // xor current value with 1 (causes value to toggle)
        if (relayVal)
          Serial.println("Relay on");
        else
          Serial.println("Relay off");
        break;
      }
    default:
      {
        Serial.println("Press the spacebar to toggle relay on/off");
      }
    }
     
    if (relayVal){
      digitalWrite(RELAY_PIN, HIGH);
      digitalWrite(led_pin, HIGH);
    }
    else
      {
        digitalWrite(RELAY_PIN, LOW);
        digitalWrite(led_pin, LOW);
      }
    }
}
« Last Edit: October 19, 2012, 05:41:56 pm by UweFederer » Logged

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

il codice racchiudilo tra i tag
Code:
altrimenti non si capisce niente.
A mio avviso il problema è che stai usando una R di base troppo elevata, portala ad 1k e vedrai che il TR condrrà regolarmente, il relé si eccita ed il LED si accende, sempre che il codice sia corretto; non capisco perché attivi anche il pin 9 assieme al relé, lo metto in OUTPUT/HIGH fisso, tanto al led arriva tensione solo se il relé si eccita.
Logged


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

Il relé non ha bisogno che lo colleghi al pin9. Collega il contatto del relé , in serie alla resistenza 300 Ohm e il LED tra +5V e Massa. Collega il pin 4 del relé non al pin 9 del Arduino ma a +5V

Ciao Uwe



Logged

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

Esatto, invece di lasciare il pin sempre attivo tanto vale collegare la R direttamente a 5V
Logged


Pages: [1]   Go Up
Jump to: