1.11.9

News

Page  1 sur 3  > >>

2019-01-16
Catégorie : Arduino
Posté par : xavier
Un Circuit imprimé pour plusieurs sketches
2018-06-07
Catégorie : Arduino
Posté par : xavier
Des pistes pour developper un projet a base d'Arduino
2017-09-23
Catégorie : Expositions
Posté par : xavier

Les 4/5 Novembre 2017, au parc Savoie Expo de Chambéry (Savoie), se tiendra l'exposition Savoie Modelisme.

CMS - 1.11.9 - Bartolome
 

Pas touche !

Pas touche!

Nous allons maintenant utiliser une télécommande, celle de votre téléviseur.

Quelques notions pour continuer:

RC5 / RC6

Philips utilise ce codage pour ses appareils électroniques.

Une librairie est disponible(à télécharger). Il n'est pas nécessaire de comprendre comment elle fonctionne. Il suffit de savoir s'en servir

 

Programme N°12:

// ========================================================
// RC5
// ========================================================
#include <IRremote.h>

// les constantes ne changent pas. Elles indiquent ici les entrées sorties utilisées:
const int buttonPin = 3; // Le bouton poussoir
const int ledPin = 13; // La LED pin
const int RC5Pin = 5; // le recepteur RC5


// les codes recus sont listés ici et suivies dans le même ordre de leurs noms
const String RC5Codes = "65626;65627;65628;65624;65625;65537;65538;65539;65540;65541;65542;65543;65544;65545;65536;65645;65646;65647;65648;65552;65553;65568;65569";
const String RC5Msg[] = {"<<",">>","OK","Up","Down","1","2","3","4","5","6","7","8","9","0","Rouge","Vert","Jaune","Bleu","V+","V-","P+","P-"};

// les variables changent:
int buttonState = 0; // variable la lecture de l’état du bouton poussoir
IRrecv irrecv(RC5Pin);
decode_results results;
String CodeFree;
int led=0;

void setup() {
   pinMode(ledPin, OUTPUT); // initialisation de la LED en sortie
   pinMode(buttonPin, INPUT); // initialisation du bouton poussoir en entrée
   irrecv.enableIRIn(); // démarrage du récepteur
   Serial.begin(9600);
   //establishContact(); // envoie un octet pour établir le contact avant que le récepteur ne réponde
   digitalWrite(ledPin, HIGH);
   delay(1000);
   digitalWrite(ledPin, LOW);
}

void loop(){
   buttonState = digitalRead(buttonPin); // Lecture de l'état du bouton poussoir:
   // vérifie si on appuie sur le bouton poussoir.
   if (buttonState == HIGH) { // if it is, the buttonState is HIGH:
      // digitalWrite(ledPin, HIGH);
   } else {
      if (led==0) {
         led=1; // allume la LED
      } else {
         led=0; // eteint la LED
      }
      digitalWrite(ledPin, led);
   }
   delay(100);
   if (irrecv.decode(&results)) {
      unsigned long Rc5IR=results.value;
      if (Rc5IR < 65000) {
         Rc5IR=Rc5IR+65536;
      }
      //String Rc5IRs=String(Rc5IR);
      int RC5int=RC5Codes.indexOf(String(Rc5IR))/6;
      CodeFree = RC5Msg[RC5int];
      Serial.println(CodeFree);
      delay(1000);
      irrecv.resume(); // Remise a zéro du décodage (nécessaire !)
   }
}


Commentaires

Le programme reçoit les commandes et les affiches via l'USB sur le PC.

 

A remarquer:

- irrecv.enableIRIn() autorise la réception de code RC5

- IRrecv irrecv(RC5Pin);
- decode_results results;

- RC5Codes.indexOf(String(Rc5IR)) permet de retrouver dans String RC5Msg[] la chaîne correspondant au code reçu.
-
irrecv.decode(&results) permet de tester si un code est arrivé. Il est affecté a la variable RC5int par Rc5IR=results.value; qui est de type unsigned long
- irrecv.resume() est indispensable pour recevoir les codes suivants

Previous page: Silence!  Page suivante : Accessoire DCC