Bonjour. Dans la fonction changer_code de mon programme, j'ai inclu un bouton_validation qui ne fonctionne pas. Je n'arrive pas à comprendre pourquoi.
Voici un lien vers le simulateur arduino où je code avec le shéma du prototype de mon coffre fort:
Voici mon code:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
#include <Servo.h>
Servo servo1;
Servo servo2;
int valeur1; //valeur du potentiomètre1
int valeur2; //valeur du potentiomètre2
int administrator_code1; //code administrateur potentimomètre1 (définit au démarrage)
int administrator_code2; //code administrateur potentimomètre2 (définit au démarrage)
int bouton_changer_code = 3;
int bouton_validation = 4;
int potentiometre1 = A0;
int potentiometre2 = A1;
void setup() {
Serial.begin(9600);
pinMode(A0,INPUT);
servo1.attach(5);
servo2.attach(6);
pinMode(bouton_changer_code, INPUT);
digitalWrite(bouton_changer_code, LOW);
pinMode(bouton_validation, INPUT);
digitalWrite(bouton_validation, LOW);
lcd.begin(16, 2);
lcd.print("Entrer le code:");
}
void loop() {
//lcd.setCursor(0, 0);
//lcd.print("Entrer le code:");
valeur1 = analogRead(potentiometre1);
valeur2 = analogRead(potentiometre2);
//lcd.begin(16, 2);
lcd.setCursor(0, 1);
lcd.print(valeur1);
lcd.print(" ");
lcd.setCursor(6, 1);
lcd.print(valeur2);
lcd.print(" ");
if(administrator_code1 != valeur1 or administrator_code2 != valeur2){
if(digitalRead(bouton_changer_code) == HIGH){
lcd.setCursor(0,0);
lcd.print("Code administrateur incorrect");
}
}
changer_code();
if(administrator_code1 == valeur1 && administrator_code2 == valeur2){
servo1.write(90);
servo2.write(90);
}
if(administrator_code1 != valeur1 or administrator_code2 != valeur2){
servo1.write(0);
servo2.write(0);
}
}
void changer_code() {
//if(valeur1 == administrator_code1 && valeur2 == administrator_code2){
if(digitalRead(bouton_changer_code) == HIGH){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Entrer le code");
lcd.setCursor(0, 1);
lcd.print("administrateur:");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Code:");
lcd.setCursor(0, 1);
lcd.print(valeur1);
lcd.print(" ");
lcd.setCursor(0, 6);
lcd.print(valeur2);
lcd.print(" ");
if(digitalRead(bouton_validation) == HIGH){
if(valeur1 == administrator_code1 && valeur2 == administrator_code2){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Entrer le nouveau");
lcd.setCursor(1, 0);
lcd.print("code administrateur:");
delay(1000);
lcd.clear();
lcd.print("Nouveau code:");
lcd.setCursor(1, 0);
lcd.print(valeur1);
lcd.print(" ");
lcd.setCursor(1, 6);
lcd.print(valeur2);
lcd.print(" ");
}
}
administrator_code1 = valeur1;
administrator_code2 = valeur2;
//delay(5000);
}
}