Bonjour à tous,
J'utilise un clavier IR pour choisir un client.
Après, je veux récupérer le tableau correspondant à ce client dans une autre boucle, et je n'y arrive pas.
Voici mon code :
//Library
#include "IRremote.h"
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
//Variable
int receiverPin = 9;
IRrecv irrecv(receiverPin);
decode_results results;
LiquidCrystal_I2C LCD(0x27,16,2); // définit le type d'écran lcd 16 x 2
const byte tabFils[] = {2, 3, 4, 5, 6, 7};
const byte NBFILS = sizeof tabFils;
int Thonon[18]={1, 3, 1, 3, 2, 4, 2, 4, 1, 3, 1, 3, 2, 4, 1, 3, 2, 4};
int Reyrieux[18]={5, 6, 2, 4, 1, 3, 0, 0, 0, 4, 2, 4, 1, 3, 0, 0, 1, 3};
int Lyon[18]={2, 5, 3, 6, 1, 4, 0, 0, 0, 0, 3, 6, 1, 4, 0, 0, 1, 4};
int Portugal[18]={1, 4, 3, 6, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4};
int Hongrie[18]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int Thevenin[18]={5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 1, 3, 0, 0, 0, 0};
void setup(){
LCD.init(); // initialisation de l'afficheur
LCD.backlight();
Serial.begin(9600);
Serial.println(F("IR Receiver Decoder"));
irrecv.enableIRIn(); // Start the receiver
for (byte i = 0; i < NBFILS; i++)
pinMode(tabFils[i], INPUT_PULLUP);
}
void convertIR() // convert IR code
{
String client = "0";
Serial.print(results.value);
Serial.print(F(" -> "));
switch(results.value)
{
case 0xFF30CF: Serial.println(F("1"));
client = "Thonon";
Serial.println(client);break;
case 0xFF18E7: Serial.println(F("2"));
client = "Reyrieux";
Serial.println(client);break;
case 0xFF7A85: Serial.println(F("3"));
client = "Lyon";
Serial.println(client);break;
case 0xFF10EF: Serial.println(F("4"));
client = "Portugal";
Serial.println(client);break;
case 0xFF38C7: Serial.println(F("5"));
client = "Hongrie";
Serial.println(client);break;
case 0xFF5AA5: Serial.println(F("6"));
client = "Thevenin";
Serial.println(client);break;
default:
Serial.println(F(" unknown "));
}
delay(500);
}
void loop() {
if (irrecv.decode(&results)){ // IR signal received?
convertIR();
irrecv.resume(); // receive the next value
}
int valeurx = Thonon[0];
int valeury = Thonon[1];
String client = "0";
if (client == "Thonon"){
valeurx = Thonon[4];
valeury = Thonon[5];
}
if (client == "Reyrieux"){
valeurx = Reyrieux[4];
valeury = Reyrieux[5];
}
for (byte i = 0; i < NBFILS-1; i++)
{
pinMode(tabFils[i], OUTPUT);
digitalWrite(tabFils[i], LOW);
for (byte j = i + 1; j < NBFILS; j++)
{
if (digitalRead(tabFils[j]) == LOW)
{
if ((i + 1 == valeurx) and (j + 1 == valeury))
{
LCD.setCursor(0, 0);
LCD.print("OK ");
LCD.print(client);
LCD.setCursor(0, 1);
LCD.print(i + 1);
LCD.print("-");
LCD.print(j + 1);
LCD.print(" connect");
LCD.display();
delay(5000);
LCD.clear();
}
else
{
LCD.setCursor(0, 0);
LCD.print("Erreur ");
LCD.print(client);
LCD.setCursor(0, 1);
LCD.print("Connecter ");
LCD.print(valeurx);
LCD.print("-");
LCD.print(valeury);
delay(5000);
LCD.display();
LCD.clear();
}
}
}
pinMode(tabFils[i], INPUT_PULLUP);
}
delay(2000);
}
Le client que je récupère dans mon void ConvertIR, je n'arrive pas à le trnasmettre à mon void loop.
Comment faire ?
Merci.