Bonjour,
j'aimerais pouvoir gérer plusieurs interrupteurs (x12 boutons poussoirs) avec les PINs Analogique de la carte arduino UNO rev3.
j'ai créer un projet théorique sur tinkercad d'après mes recherches sur internet.
j'aimerais savoir si je suis sur la bonne voie ?
le projet fonctionne sur le simulateur, mais je ne sais pas si il y a un risque pour une vrai carte arduino, étant débutant, j'ai des doutes...
(cours circuit entre +5v et GND >> 5.6Kohm ?)
je poscède déjà les boutons, les résistances...
-- je me demande quel reférence de diode de devrais utiliser pour le vrai projet, lesquelles commander ?
-- est-ce que mon montage est correct ?
merci d'avance a ceux ou celles qui prendront le temps de me lire et de m'éclairer.
const byte boutonA = A0; //Entrée analogique des 6 boutons
const byte boutonB = A1; //Entrée analogique des 6 boutons
byte BP_appuye = 0; //Variable : le bouton appuyé
const int inter = 2; // pin d'interruption
//const int resistance_1 = 330;
//const int resistance_2 = 680;
//const int resistance_3 = 1200;
//const int resistance_4 = 2200;
//const int resistance_5 = 3300;
//const int resistance_A = 5600;
const int limit_1 = 46;
const int limit_2 = 125;
const int limit_3 = 231;
const int limit_4 = 361;
const int limit_5 = 474;
const int limit_6 = 816;
bool carteA = false; // bool carte A
bool carteB = false; // bool carte B
void setup() {
Serial.begin(9600);
pinMode(boutonA, INPUT); //entrée analogique des boutons réglée en entrée
pinMode(boutonB, INPUT); //entrée analogique des boutons réglée en entrée
Initialisation_Interuption();
}
void loop() {
}
void Initialisation_Interuption(){
attachInterrupt(digitalPinToInterrupt(inter), InterruptBouton, FALLING); //interruption sur pin D2
}
void InterruptBouton() {
int ValeurBoutonA = analogRead(boutonA);
int ValeurBoutonB = analogRead(boutonB);
Serial.println("-- -- -- -- -- -- --");
if( ValeurBoutonA < 1020 ){
carteA = true;
Serial.print("READ_A0 : ");
Serial.println(ValeurBoutonA);
}
if( ValeurBoutonB < 1020 ){
carteB = true;
Serial.print("READ_A1 : ");
Serial.println(ValeurBoutonB);
}
Serial.println("-- -- -- -- -- -- --");
if(ValeurBoutonA < limit_6 || ValeurBoutonB < limit_6) {
if(carteA){ BP_appuye = 6;}
if(carteB){ BP_appuye = 12;}
}
if(ValeurBoutonA < limit_5 || ValeurBoutonB < limit_5) {
if(carteA){ BP_appuye = 5;}
if(carteB){ BP_appuye = 11;}
}
if(ValeurBoutonA < limit_4 || ValeurBoutonB < limit_4) {
if(carteA){ BP_appuye = 4;}
if(carteB){ BP_appuye = 10;}
}
if(ValeurBoutonA < limit_3 || ValeurBoutonB < limit_3) {
if(carteA){ BP_appuye = 3;}
if(carteB){ BP_appuye = 9;}
}
if(ValeurBoutonA < limit_2 || ValeurBoutonB < limit_2) {
if(carteA){ BP_appuye = 2;}
if(carteB){ BP_appuye = 8;}
}
if(ValeurBoutonA < limit_1 || ValeurBoutonB < limit_1) {
if(carteA){ BP_appuye = 1;}
if(carteB){ BP_appuye = 7;}
}
Serial.println("-- -- -- -- -- -- --");
Serial.println(BP_appuye);
// raz boolean carteA & carteB
carteA = false;
carteB = false;
}



