Étape 7: Télécharger le code de la télécommande à votre arduino
Créez une nouvelle esquisse et collez-y le code suivant :
/*
* WebRemote
* Une LED IR doit être connectée à la broche 3 de Arduino PWM.
* Version 0.1 juillet 2009
* Ce code copyright Gregory Fenton, http://labby.co.uk/2012/02/irremote-arduino-experimentation/
* IRremote Library copyright 2009 Ken Shirriff, http://arcfn.com
*/
#include
opérateur & modèle inline Print << (Print & obj, T arg) {obj.print(arg) ; return obj;}
Boolean terminé = false ;
inData Char [64] ; Taille selon le cas
index de l’octet = 0 ;
#define EOP « \n »
IRsend irsend ;
void setup()
{
Serial.Begin(9600) ;
Série << « Serial port initialisé » << EOP ;
}
void loop()
{
Chaîne de pch, sType, sTemp ;
char inChar, sTest, k ;
int sBits ;
sHex long ;
int i, j ;
while(1)
{
while(Serial.available() > 0)
{
inChar = Serial.read() ;
if(index == 0)
{
PCH = "" ;
}
Si (inChar == « \r » || inChar == « \n » || inChar == « / ») / / EOP
{
fin = true ;
index = 0 ;
rupture ;
}
d’autre
{
if(index < 64) / / taille de tableau
{
PCH += inChar ;
index ++ ;
}
}
}
if(ended)
{
Analyser les données en inData ici...
pch.toUpperCase() ;
J’ai = pch.indexOf(' ')! = -1 ? pch.indexOf(' ') : pch.indexOf(',') ;
sType = pch.substring(0,i) ;
i ++ ; sauter les «, » ou ' '
J’ai maintenant points pour commencer de hex
j = pch.lastIndexOf(' ')! = -1 ? pch.lastIndexOf(' ') : pch.lastIndexOf(',') ; j pointe maintenant vers «, » ou ' ' après hex
sHex = 0 ;
sTemp = pch.substring (i, j) ;
if(sTemp.Substring(0,2) == String("0X"))
sTemp = sTemp.substring(2) ;
pour (i = 0; i < sTemp.length(); i ++)
{
k = sTemp [i] ;
Si (! () (k > = « 0 » & & k < = « 9 ») || (k > = 'A' & & k < = "F")))
rupture ;
sHex * = 16 ;
Si (k > = « 0 » & & k < = « 9 »)
sHex += (k - « 0 ») ;
ElseIf (k > = « A » & & k < = « F »)
sHex += ((k - « A ») + 10) ;
Si (! () (k > = « 0 » & & k < = « 9 ») || (k > = 'A' & & k < = "F")))
rupture ;
}
sTemp = pch.substring(j+1) ;
sBits = 0 ;
pour (i = 0; i < sTemp.length(); i ++)
{
k = sTemp [i] ;
sBits * = 10 ;
Si (k > = « 0 » & & k < = « 9 »)
sBits += (k - « 0 ») ;
}
if(stype.length() > 0)
{
Série << pch << EOP << "type de Code:" << sType << "Hex:" ;
Serial.Print(sHex,hex) ;
Série << "Bits:" << sBits ;
}
sendIt (sType, sHex, sBits) ;
PCH = "" ;
fin = 0 ;
}
}
}
Sub sendIt (String sType, sHex long, int sBits)
{
pour (int i = 0; i < 2; i ++)
{
if(stype.Equals(String("RC6")))
{
irsend.sendRC6 (chahrouk, sBits) ;
}
ElseIf (sType.equals(String("RC5")))
{
irsend.sendRC5 (chahrouk, sBits) ;
}
d’autre if(sType.equals(String("SONY")))
{
irsend.sendSony (chahrouk, sBits) ;
}
d’autre if(sType.equals(String("NEC")))
{
Si (! i) irsend.sendNEC (sHex, sBits) ;
}
d’autre if(sType.equals(String("")))
{
Série << « Retarder » << EOP ;
Delay(450) ;
}
Delay(30) ;
}
}