Etape 1: Obtenir les codes pour les boutons (I)
Tout d’abord, il faut pour obtenir les codes pour chaque bouton de notre commande à distance.
Donc, construire le circuit sur la maquette comme représenté sur la figure.
Le récepteur Ir TSOP 1738 a trois broches.
Le premier est la sortie, reliée à la broche 11 dans l’Arduino.
Le second va à Gnd et la troisième, à qu'elle est reliée + 5V.
Télécharger le writen IrRemote bibliothèque par Ken Shirriff. Cette bibliothèque nous laisse fois envoyer et recevoir des codes de télécommande Ir dans plusieurs protocoles comme Nec, Philips RC5, RC6 de Philips et des matières premières.
Il faut connecter un capteur infrarouge comme l’osp1738 d’une broche d’entrée numérique.
#include
int RECV_PIN = 11 ;
IRrecv irrecv(RECV_PIN) ;
résultats de la decode_results ;
void setup() {}
Serial.Begin(9600) ;
irrecv.enableIRIn() ; Démarrer le récepteur
}
Décharges de la structure decode_results.
Appelons cela après IRrecv::decode()
void * à problème de compilateur
Sub dump(void *v)
{/ / decode_results * résultats = (decode_results *) v
Sub dump(decode_results *results)
{int count = résultats -> rawlen ;
Si (résultats -> decode_type == inconnu)
{Serial.print ("codage inconnu:") ;
}
ElseIf (résultats -> decode_type == NEC)
{Serial.print ("décodé NEC:") ;
} ElseIf (résultats -> decode_type == SONY)
{Serial.print ("décodé SONY:") ;
}
ElseIf (résultats -> decode_type == RC5)
{Serial.print ("décodé RC5:");}
ElseIf (résultats -> decode_type == RC6)
{Serial.print ("décodé RC6:");}
ElseIf (résultats -> decode_type == PANASONIC)
{Serial.print ("décodé PANASONIC – adresse:") ;
Serial.Print (résultats -> panasonicAddress, HEX) ;
Serial.Print ("valeur:");}
ElseIf (résultats -> decode_type == JVC)
{Serial.print ("décodé JVC:");}
Serial.Print (résultats -> value, HEX) ;
Serial.Print ("(") ;
Serial.Print (résultats -> mèches, DEC) ;
Serial.println "(bits)") ;
Serial.Print ("Raw (") ;
Serial.Print (comptage, DEC) ;
Serial.Print("):") ;
pour (int i = 0; i < count; i ++)
{Si ((i % 2) == 1)
{Serial.print (résultats -> rawbuf [i] * USECPERTICK, DEC);}
d’autre
{Serial.print (-résultats (int) -> rawbuf [i] * USECPERTICK, DEC);}
Serial.Print("");}
Serial.println("");}
void loop()
{
Si (irrecv.decode (et résultats))
{
Serial.println (results.value, HEX) ;
benne basculante (et résultats) ;
irrecv.Resume() ; Recevoir la valeur suivante
}
}