const int ir = 12;
int demibit1;
int demibit2;
int codeentier[13];
int i=1;
void setup()
{
pinMode(ir, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
demibit1 = digitalRead(ir);
delay(0.889);
demibit2 = digitalRead(ir);
if (demibit1==LOW && demibit2==HIGH)
{
for (int compteur =1; compteur<14; compteur++)
{
codeentier[i]= decoderdebit();
i=i+1;
}
for (int i = 1; i =13 ; i++)
{
Serial.println(codeentier[i]);
}
}
}
int decoderdebit()
{
demibit1 = digitalRead(ir);
delay(0.889);
demibit2 = digitalRead(ir);
if (demibit1==HIGH && demibit2==LOW)
{
return 0;
}
else if (demibit1==LOW && demibit2==HIGH)
{
return 1;
}
}
Bonsoir à tous je vous explique mou projet : je veux réaliser moi-même une télécommande infrarouge avec le arduino et un TSOP48 (sur la pin 12). Je sais par ailleurs qu’il existe une librairie IR remote mais je ne veux pas l’utilisé puisque sa ôterais a mon projet tout son aspect pédagogique)
Voilà le code que j’ai fait pour le moment. Mais dans le moniteur série il ne m’affiche que des 1 et je ne comprends pas trop pourquoi.
(je vous explique l'esprit du code : le protocole IR utilisé est le RC5 c'est un codage qui se fait sur le code Manchester (biphasé) , il récupère le 1er bit qui indique le début de la transmission puis les 13 bits sont stokés dans le tableau
codeentier
enfin la fonction decoderdebit permet de savoir si il s’agit d'un 1 ou un 0 logique)
Si l’un d’entre vous serait d’où vient le problème je serais très reconnaissant.
Merci