Visualizzazione post con etichetta Trasmissione.Telecomando. Mostra tutti i post
Visualizzazione post con etichetta Trasmissione.Telecomando. Mostra tutti i post

domenica 18 gennaio 2015

Linea dati.



Un appartamento. Un fotodiodo ricevente IR ed un telecomando in ciascuna stanza, gli Attiny posizionati presso i dispositivi elettrici da pilotare. Da ciascuna stanza il fotodiodo rileverebbe il treno di impulsi proveniente dal telecomando, identico in ogni stanza, inviandolo sulla linea dati. Ciascun ATTTINY è programmato per accettare un solo treno di impulsi ed attivare un relè. Esempio: da qualunque stanza premendo il tasto 4 si può abbassare la tapparella della cucina.
Potrebbe funzionare.
  /* Si sottopone a condizione if la lettura
       esadecimale dei tasti anteponendo al valore
       HEX il valore 0x. Nello sketch:
       Relè = OFF
       Tasto 1 premuto FF30CF = Relè ON
       Tasto 2 premuto FF18E7= Relè OFF      */
     
       #include <IRremote.h> 
       
       # define RELE 6
       
       int receiver = 7; 
      
       IRrecv irrecv(receiver); 
      
      decode_results results;
    
      void setup()
          { Serial.begin(9600); 
            irrecv.enableIRIn(); 
            pinMode(RELE, OUTPUT);
            digitalWrite(RELE,LOW); }
          
          
      void loop(){
      
         if ( irrecv.decode(&results)) 
            { Serial.println(results.value, HEX); 
              irrecv.resume();                  } 
         
         if ( results.value == 0xFF30CF)
            { digitalWrite(RELE, HIGH);    } 
            
         if ( results.value == 0xFF18E7)
            { digitalWrite(RELE, LOW);    } 
               
    }

domenica 3 agosto 2014

Protocollo I2C


   /* Il Sesnore BMP085 utilizza il protocollo
      di trasmissione I2C.Per questo tipo di
      trasmissione occorre un pin di Serial Clock Line
      ed un pin di Serial Data Line. Su Arduino UNO
      tale funzione è svolta dal pin A4=SDA e dal pin
      A5=SCL */
      
      #include <Wire.h>
      #include <Adafruit_Sensor.h>
      #include <Adafruit_BMP085_U.h>
       
      Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
       
      void setup()
             { /* pin A4 SDA
                  pin A5 SCL*/
               Serial.begin(9600);
               bmp.begin();   }
    
      void loop(){
  
               float celsiusBMP085;
               bmp.getTemperature(&celsiusBMP085);
               Serial.print("BMP085 Celsius:  ");
               Serial.print(celsiusBMP085);
               Serial.println("");
               
               delay(1000);        }

mercoledì 30 luglio 2014

Telecomando IR parte 2



Arduino legge il valore del treno di impulsi del tasto premuto sul pin 7. Se il valore corrisponede a quello del tasto 1 eccita un relè, se al tasto 2 lo diseccita.
Perchè si antepone 0x prima della cifra decimale non lo so.

    /* Si sottopone a condizione if la lettura
       esadecimale dei tasti anteponendo al valore
       HEX il valore 0x. Nello sketch:
       Relè = OFF
       Tasto 1 premuto FF30CF = Relè ON
       Tasto 2 premuto FF18E7= Relè OFF      */
     
       #include <IRremote.h> 
       
       # define RELE 6
       
       int receiver = 7; 
      
       IRrecv irrecv(receiver); 
      
      decode_results results;
    
      void setup()
          { Serial.begin(9600); 
            irrecv.enableIRIn(); 
            pinMode(RELE, OUTPUT);
            digitalWrite(RELE,LOW); }
          
          
      void loop(){
      
         if ( irrecv.decode(&results)) 
            { Serial.println(results.value, HEX); 
              irrecv.resume();                  } 
         
         if ( results.value == 0xFF30CF)
            { digitalWrite(RELE, HIGH);    } 
            
         if ( results.value == 0xFF18E7)
            { digitalWrite(RELE, LOW);    } 
               
    }





Telecomando IR parte 1



La pressione di uno dei tanti tasti di un telecomando cra un treno di impulsi unico. Arduino rileva questi dati attraverso un fotodiodo ricevente ad infrarossi,lo elabora
con una apposita libreria e ne stampa il valore in formato HEX sull'IDE di Arduino.
Gli impulsi vengono rilevati dal pin 7

     
       #include <IRremote.h> 
      
       int receiver = 7; 
      
       IRrecv irrecv(receiver); 
      
      decode_results results;
    
    void setup()
       
        { Serial.begin(9600); 
          irrecv.enableIRIn(); }
          
          
    void loop(){
         if (irrecv.decode(&results)) 
            { Serial.println(results.value, HEX); 
              irrecv.resume();                   } }



Si riporta il valore esadecimale in una tabella.Del telecomando in figura ho rilevato e riportato solo i tasti da 0 a 9.