Bonjour,
Je m'adresse, à vous car pour mon projet de fin d'année j'ai besoin de réaliser un programme sur Arduino. Si il y a des personne assez forte en Language Arduino pouvez-vous jeter un coup d'oeil à mon programme et me dire ce que vous en pensez (surtout sur la partie de l'écran lcd, car c'est le seul composant que je n'ai pas encore expérimenté)?
programme:
Code:#include <LiquidCrystal_I2C.h> #include <Servo.h> #include <SPI.h> #include <MFRC522.h> LiquidCrystal_I2C lcd(0x3F,16,2); //modifier l'adresse #define RST_PIN 9 #define SS_PIN 10 MFRC522 module_rfid(SS_PIN, RST_PIN); int capteurIR = A0; int valeur; Servo monServo; const int ouvrir = 7; const int fermer = 6; int boutonpoussoir1 = 2; int boutonpoussoir2 = 3; int valeurhumidite; int capteurhumidite = A2; int pinRelais = 5; void setup() { monServo.attach(8); pinMode(boutonpoussoir1, INPUT); pinMode(boutonpoussoir2, INPUT); Serial.begin(9600); pinMode(ouvrir, OUTPUT); pinMode(fermer, OUTPUT); pinMode(pinRelais, OUTPUT); SPI.begin(); module_rfid.PCD_Init(); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Dispositif"); lcd.setCursor(0, 1); lcd.print("d'identification"); delay(3000); lcd.clear(); } void loop() { valeur = analogRead(capteurIR); valeurhumidite = analogRead(capteurhumidite); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Scannez votre"); lcd.setCursor(0, 1); lcd.print("collier"); if ( ! module_rfid.PICC_IsNewCardPresent()) { return; } if ( ! module_rfid.PICC_ReadCardSerial()) { return; } String UID = ""; for (byte i = 0; i < module_rfid.uid.size; i++) { UID.concat(String(module_rfid.uid.uidByte[i] < 0x10 ? " 0" : " ")); UID.concat(String(module_rfid.uid.uidByte[i], HEX)); } UID.toUpperCase(); if (UID.substring(1) == "03 B0 0B ED") { digitalWrite(ouvrir, HIGH); if (boutonpoussoir1, HIGH) { digitalWrite(ouvrir, LOW); if(valeur <300) { digitalWrite(fermer, HIGH); if(boutonpoussoir2, HIGH) { digitalWrite(fermer, LOW); } else { digitalWrite(fermer, HIGH); } if(valeurhumidite >300) { lcd.clear(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("120s"); digitalWrite(pinRelais, HIGH); delay(120000); digitalWrite(pinRelais, LOW); monServo.write(90); delay(40000); monServo.write(0); } else { monServo.write(90); delay(40000); monServo.write(0); } } else { delay(1000); } } else { digitalWrite(ouvrir, HIGH); } } else { lcd.clear(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("ACCES REFUSE"); lcd.clear(); } }
Merci d'avance !
-----