fragment du noyau Arduino (code complet via message eBay (Demande) :
//Auteur : cantone-electonics
//Arduino 1.0
//Arduino uno R3
//Création d'une télécommande sans fil avec Arduino
const int data_out = 2;//DOUT de l'encodeur
//Broche de la LED, lorsqu'une touche est reçue via le port série, la LED clignote
const int ledPin = 13; //Broche de la LED
//La résistance OSC est de 3,3 M
const int Osc_4xCycle = 359; //4 périodes d'oscillation
const int Osc_12xCycle = 1078;//12 périodes d'oscillation
unsigned long Temporary[3];//Unité de stockage temporaire
...
//envoi : 8 bits d'adresse, 4 bits de données, bit de synchronisation
void send_data()
void setup() {
//initialisation de la broche de la LED en sortie :
pinMode(ledPin, OUTPUT);
//initialisation de la broche DOUT de l'encodeur en sortie
pinMode(data_out, OUTPUT);
Serial.begin(9600);
}
void loop()
{
...
while(1)
{
//récupération de la touche depuis le port série du PC
while (Serial.available() > 0)
{
keydata = Serial.read();
receive_flag = 1;
delay(2);
}
if(receive_flag == 1)//si touche reçue, envoi de la touche
{
receive_flag = 0;
if((keydata == 'a') || (keydata == 'A'))//active le relais du canal A.
{
Temporary[2] = 0xC0;// 0xC0 correspond à la touche A
digitalWrite(ledPin, HIGH);//allume la LED
send_data();//envoi du mot de code
Serial.println(".....activation du relais du canal A.....");
}
else if((keydata == 'b') || (keydata == 'B'))//active le relais du canal B.
{
Temporary[2] = 0x30;// 0x30 correspond à la touche B
digitalWrite(ledPin, HIGH);//allume la LED
send_data();//envoi du mot de code
Serial.println(".....activation du relais du canal B.....");
}
else if((keydata == 'c') || (keydata == 'C'))//active le relais du canal C.
{
Temporary[2] = 0x0C;// 0x0C correspond à la touche C
digitalWrite(ledPin, HIGH);//allume la LED
send_data();//envoi du mot de code
Serial.println(".....activation du relais du canal C.....");
}
else if((keydata == 'd') || (keydata == 'D'))//active le relais du canal D.
{
Temporary[2] = 0x03;// 0x03 correspond à la touche D
digitalWrite(ledPin, HIGH);//allume la LED
send_data();//envoi du mot de code
Serial.println(".....activation du relais du canal D.....");
...
}
}