Hallo Leute,
ich bin gerade dabei ein wenig mit einem LCD Shield + RFID rumzuspielen...
Ergebnis soll vielleicht eine Art Alarmsystem werden.
Habe das LCD Tasten Shield an einem Deumilanove.Außerdem habe ich noch ein RFID Modul, welches mit 12V VIN durch den Arduino und dessen externes 12V Netzteil betrieben wird. Das Modul gibt auf einem Pin die VIN aus, solange ein Transponder angelegt ist.
Nun zu meinem Code:
#include <Bounce.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
#define BUTTON 11 // RFID Signal
#define AlarmSig1 2 //Alarmschleife
#define LED 13 // LED scharf / unscharf
#define Sirene 3 // optional Relais für Sirene
int ledValue = LOW;
int alarm = 0;
int alarms = 0;
int alarmState = 0;
Bounce bouncer = Bounce( BUTTON, 2000 );
Bounce bouncer2 = Bounce( AlarmSig1, 100 );
void setup() {
pinMode(BUTTON,INPUT);
pinMode(AlarmSig1,INPUT);
pinMode(LED,OUTPUT);
pinMode(Sirene,OUTPUT);
pinMode(10, OUTPUT); // HG Beleuchtung LCD
digitalWrite(10,HIGH); // HG EIN
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Alarmsys started");
delay(1000);
lcd.setCursor(0,0);
lcd.print(" ");
}
void loop() {
if ( bouncer.update() ) {// Abfrage RFID Signal
if ( bouncer.read() == HIGH) {
if ( ledValue == LOW ) {
ledValue = HIGH; // Alarm scharf
alarm = 0;
Serial.println("armed!");
digitalWrite(Sirene,HIGH); // kurzes Sirenensignal
delay(200);
digitalWrite(Sirene,LOW);
lcd.setCursor(0,0);
lcd.print("System armed!"); // Ausgabe auf LCD
delay(500);
lcd.setCursor(0,0);
lcd.print(" ");
}
else {
ledValue = LOW; // Alarm unscharf
Serial.println("disarmed!");
Serial.print("Alarms: ");
Serial.println(alarms);
lcd.setCursor(0,0);
lcd.print("System disarmed!"); // Ausgabe LCD
lcd.setCursor(0,1);
lcd.print(alarms); // Ausgabe LCD Anzahl Alarme seit scharf
delay(500);
lcd.setCursor(0,0);
lcd.print(" ");
alarms = 0; // Anzahl Alarme seit scharf --> RESET
}
digitalWrite(LED,ledValue); // setzen der scharf / unscharf LED
}
}
if(ledValue == HIGH){
if ( bouncer2.update() ) { // Abfrage Alarmschleife
if ( bouncer2.read() == HIGH) {
alarmState = 1;
alarm = alarm +1;
}
else {
alarmState = 0;
alarm = 0;
alarms++;
}
if((alarmState == 1)&& (alarm == 1)&&(ledValue == HIGH)){
Serial.println("--- ALARM !!! ---");
digitalWrite(Sirene,HIGH); // Alarmsirene EIN
alarm = 0;
// alarms++;
}
}
}
}
Leider gibt es noch Probleme... Das Shield allein funktioniert, RFID allein auch. Doch zusammen hackt es noch.
Vielleicht sieht ja einer gleich das Problem im Code

Lieben Dank erstmal.
MfG