Bonjour, je travaille sur l'amélioration d'une porte automatique et je dois permettre l'accès aux personnes autorisées.
J'ai donc décidé de prendre une module RFID VMA405, un module relai écran LCD RGB Blacklight v2.0, ainsi qu'une carte Arduino UNO.
Je dois afficher sur l'écran LCD le nom de la personne en fonction de la carte présentée, voici mon programme:
#include <SPI.h>
#include <RFID.h>
#include <Wire.h>
#include "rgb_lcd.h"
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN,RST_PIN);
rgb_lcd lcd;
const int relaisPin = 8;
const int colorR = 255;
const int colorG = 155;
const int colorB =30;
int serNum[5];
int card1[][5] = {{32,149,77,109,149}};
int card2[][5] = {{156,160,140,171,27}};
int access1 = 0;
int access2 = 0;
void setup(){
Serial.begin(9600);
SPI.begin();
rfid.init();
pinMode(relaisPin, OUTPUT);
lcd.begin(16, 2);
lcd.setRGB(colorR, colorG, colorB);
lcd.print("Veuillez montrer");
lcd.setCursor(2, 1);
lcd.print("votre badge");
}
void loop(){
if(rfid.isCard()){
if(rfid.readCardSerial()){
for(int x = 0; x < sizeof(card1); x++){
for(int i = 0; i < sizeof(rfid.serNum); i++ ){
if(rfid.serNum[i] != card1[x][i]) {
access1 = 0;
break;
} else {
access1 = 1;
}
}
if(access1) break;
}
}
if(rfid.readCardSerial()){
for(int x = 0; x < sizeof(card2); x++){
for(int i = 0; i < sizeof(rfid.serNum); i++ ){
if(rfid.serNum[i] != card2[x][i]) {
access2 = 0;
break;
} else {
access2 = 1;
}
}
if(access2) break;
}
}
switch (access1 = 1 || access2 = 1) {
case access1 = 1 :
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Nom1");
delay(2000);
lcd.clear();
delay(1000);
digitalWrite(relaisPin, HIGH);
delay (2000);
digitalWrite(relaisPin, LOW);
delay(2000);
lcd.print("Veuillez montrer");
lcd.setCursor(2, 1);
lcd.print("votre badge");
break;
case access2 = 1 :
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Nom2");
delay(2000);
lcd.clear();
delay(1000);
digitalWrite(relaisPin, HIGH);
delay (2000);
digitalWrite(relaisPin, LOW);
delay(2000);
lcd.print("Veuillez montrer");
lcd.setCursor(2, 1);
lcd.print("votre badge");
break;
default :
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Acces refuse");
delay(2000);
lcd.clear();
delay (2000);
lcd.print("Veuillez montrer");
lcd.setCursor(2, 1);
lcd.print("votre badge");
}
}
rfid.halt();
}
et voici le message d'erreur qu'il m'affiche :
F:\Revue 2\Test_final\Test_final.ino: In function 'void loop()':
Test_final:74: error: lvalue required as left operand of assignment
switch (access1 = 1 || access2 = 1) {
^
Test_final:75: error: expression '(access1 = 1)' is not a constant-expression
case access1 = 1 :
^
Test_final:75: error: expression '(access1 = 1)' is not a constant-expression
Test_final:91: error: expression '(access2 = 1)' is not a constant-expression
case access2 = 1 :
^
Test_final:91: error: expression '(access2 = 1)' is not a constant-expression
exit status 1
lvalue required as left operand of assignment