annonce1

الأحد، 12 مارس 2017

التحكم في الإضاءة من خلال جهاز التحكم عن بعد بواسطة اردوينو

Fonctionnement de base

Avec 5 composants seulement, on peut faire joujou en lisant et en simulant une télécommande Infra-Rouge standard.
'On va utiliser un Arduino uno, un récepteur décodeur et deux LED infra-rouge branchée sur plaque d essai






Les  capteurs de type TSOP permettent de capter un signal infrarouge. Ce n'est donc pas seulement la présence d'une lumière infrarouge qui les fait réagir : il faut que cette lumière clignote dans une certaine fréquence pour qu'ils réagissent. Cette fréquence est de 38 kHz pour les deux TSOP.







Broches pour TSOP38238 (gauche) et TSOP1737 (droite)













 code programme




#include <IRremote.h>
int RECV_PIN = 6;
int BLUE_LED = 13;
int RED_LED = 12;



IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {                
  // initialize the digital pin as an output.
  pinMode(RECV_PIN, INPUT);  
  pinMode(BLUE_LED, OUTPUT); 
  pinMode(RED_LED, OUTPUT);
  irrecv.enableIRIn(); // Start the receiver
  Serial.begin(9600);
}
void loop() {
  int i=0;
   if (irrecv.decode(&results)) {
   
   translateIR();
   unknownRemoter();
      
     irrecv.resume(); // Receive the next value
    
   }   
 }

 void translateIR() // takes action based on IR code received describing Car MP3 IR codes 
{

  switch(results.value){
  case 0xE318261B:  
    Serial.println(" CH-            "); 
    break;
  case 0x511DBB:  
    Serial.println(" CH             "); 
    break;
  case 0xC1B967AC:  
    Serial.println(" CH+            "); 
    break;
  case 0x9716BE3F:  
    Serial.println(" blue LED off          "); 
    digitalWrite(13,LOW);
    break;
  case 0x3D9AE3F7:  
    Serial.println(" blue LED on        "); 
    digitalWrite(13, HIGH);
    break;
  case 0xFFC23D:  
    Serial.println(" PLAY/PAUSE     "); 
    break;
  case 0xFFE01F:  
    Serial.println(" VOL-           "); 
    break;
  case 0xFFA857:  
    Serial.println(" VOL+           "); 
    break;
  case 0xE5CFBD7F:  
    Serial.println(" EQ             "); 
    break;
  case 0xFF6897:  
    Serial.println(" 0              "); 
    break;
  case 0xFF9867:  
    Serial.println(" 100+           "); 
    break;
  case 0xFFB04F:  
    Serial.println(" 200+           "); 
    break;
  case 0xFF30CF:  
    Serial.println(" 1              "); 
    break;

  case 0xFF18E7:  
    Serial.println(" 2              "); 
    break;
   case 0x6182021B:  
    Serial.println(" 3          "); 

    break;
  case 0x8C22657B:  
    Serial.println(" 4        "); 
   
    break;
  case 0xFF38C7:  
    Serial.println(" 5              "); 
    break;

  case 0xFF5AA5:  
    Serial.println(" 6              "); 
    break;

  case 0xFF42BD:  
    Serial.println(" 7              "); 
    break;

  case 0xFF4AB5:  
    Serial.println(" 8              "); 
    break;

  case 0xFF52AD:  
    Serial.println(" 9              "); 
    break;

  default: 
    Serial.print(" unknown button   ");
    Serial.println(results.value, HEX);

  }

  delay(500);


                  
void unknownRemoter(){                       //this function is from an old remoter see video.
long RED_LED_OFF = 0xC101E57B;
long RED_LED_ON =  0xE5CFBD7F;
long LAST_BUTTON = 0xFFD02F;

if (results.value == RED_LED_OFF){
      Serial.println ("Red led off");
      digitalWrite(12,LOW);
      }
     else if (results.value == RED_LED_ON )
      {
       Serial.println ("Red led on");
      digitalWrite(12,HIGH);
      }
     else if (results.value == LAST_BUTTON )
      {
       Serial.println ("CAMERA IMAGE button");
      }else{
         Serial.print(" still an unknown button   ");
         Serial.println(results.value, HEX);
        
}
}


Télécharger le programme dans l’Arduino puis ouvrir le moniteur série; ensuite prenez une télécommande et appuyez sur une touche quelconque. Si le protocole est reconnu, l’affichage d’un code Hexadécimal devrait apparaitre




Lorsque le code FFFFFFFF apparait, cela veut dire que vous êtes resté appuyer trop longtemps sur le bouton de la télécommande.
Maintenant que l’on peut obtenir les codes correspondant à chaque touche, on va s’intéresser à la partie émission.
Afin de pouvoir envoyer un code, il faut connaitre le protocole utilisé, pour cela il faut charger le programme d’exemple de la librairie IRremote ‘IRrecvDump’; télécharger le programme dans l’Arduino puis ouvrir le 
moniteur série. Taper la touche on/off de la télécommande 
image
on récupère le code en Hexadécimal, le protocole utilisé (NEC) et le codage effectué en 32 bits. Noter ces informations.
Le code sera le suivant qui permettra d’allumer et d’éteindre le décodeur TNT toutes les 10 secondes :
Pour récupérer les données transmises, utilisez vous la librairie iremote
Ensuite si c’est le cas, il faut que votre télécommande utilise un protocole supporté par la librairie

ليست هناك تعليقات:

اضافة تعليق

2016 جميع الحقوق محفوظة © Génie Electrique et Electronique