Vielen lieben dank i_make_it, klappt super.
Ceos, das habe ich ja versucht:
Code:
if (2==LOW) {
digitalWrite(2, HIGH);
}
if (2==HIGH) {
digitalWrite(2, LOW);
}
Jetzt hatte ich meinen alten Sketch mit 3 verschiedenen Karten gehabt und 3 verschiedenen LED´s.
Code:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup()
{
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
pinMode (2, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
pinMode (3, OUTPUT); // Der Pin 3 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
pinMode (4, OUTPUT); // Der Pin 3 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
}
void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
long code=0;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
code=((code+mfrc522.uid.uidByte[i])*10);
}
Serial.print("Die Kartennummer lautet:");
Serial.println(code);
// Ab hier erfolgt die erweiterung des Programms.
if (code==1232922) // Wenn der Zahlencode 1232922 lautet...
{ // Programmabschniss öffnen
digitalWrite (2, HIGH); // ...dann soll die LED an Pin 2 leuchten...
delay (2000); // für 5 Sekunden
digitalWrite (2, LOW); // … und danach wieder aus gehen.
} // Programmabschnitt schließen
if (code==1232923) // Wenn der Zahlencode 1232923 lautet...
{ // Programmabschniss öffnen
digitalWrite (3, HIGH); // ...dann soll die LED an Pin 2 leuchten...
delay (2000); // für 5 Sekunden
digitalWrite (3, LOW); // … und danach wieder aus gehen.
} // Programmabschnitt schließen
if (code==1232924) // Wenn der Zahlencode 1232924 lautet...
{ // Programmabschniss öffnen
digitalWrite (4, HIGH); // ...dann soll die LED an Pin 2 leuchten...
delay (2000); // für 5 Sekunden
digitalWrite (4, LOW); // … und danach wieder aus gehen.
} // Programmabschnitt schließen
} // Sketch abschließen
Jetzt wollte ich deinen Teil aus dem Sketch kopieren, damit ich wieder alle 3 ansteuern kann mit verschiedenen Karten.
Code:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
int ledtogglestate = LOW; //Blink LED State
void setup()
{
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
pinMode (2, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
pinMode (3, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
pinMode (4, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
}
void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
long code=0;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
code=((code+mfrc522.uid.uidByte[i])*10);
}
Serial.print("Die Kartennummer lautet:");
Serial.println(code);
// Ab hier erfolgt die erweiterung des Programms.
if (code==1232922) // Wenn der Zahlencode 1232922 lautet...
{
if (ledtogglestate == LOW){
ledtogglestate = HIGH;
}else{
ledtogglestate = LOW;
}
}
digitalWrite(2, ledtogglestate);
// Ab hier erfolgt die erweiterung des Programms.
if (code==1232923) // Wenn der Zahlencode 1232923 lautet...
{
if (ledtogglestate == LOW){
ledtogglestate = HIGH;
}else{
ledtogglestate = LOW;
}
delay(500);
}
digitalWrite(3, ledtogglestate);
// Ab hier erfolgt die erweiterung des Programms.
if (code==1232924) // Wenn der Zahlencode 1232924 lautet...
{
if (ledtogglestate == LOW){
ledtogglestate = HIGH;
}else{
ledtogglestate = LOW;
}
}
digitalWrite(4, ledtogglestate);
delay(500);
} // Sketch abschließen
Doch dann macht er erst die LED 2 an, dann mit Delay 3, danach mit Delay LED 4.
Wie kann ich das jetzt einstellen das ich jede LED mit einer anderen Karte ansteuern kann???
Ich habe übrigens noch ein Delay eingefügt, das ich danna uch Zeit habe die Karte zu entfernen.
Jedesmal wenn ich die Karte drüber gezogen habe ging die LED an/aus/an/aus bis das ich die Karte entfernt hatte.
Der Sketch sieht jetzt so aus:
Code:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
int ledtogglestate = LOW; //Blink LED State
void setup()
{
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
pinMode (2, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
pinMode (3, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
pinMode (4, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
}
void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
long code=0;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
code=((code+mfrc522.uid.uidByte[i])*10);
}
Serial.print("Die Kartennummer lautet:");
Serial.println(code);
// Ab hier erfolgt die erweiterung des Programms.
if (code==1232922) // Wenn der Zahlencode 1232922 lautet...
{
if (ledtogglestate == LOW){
ledtogglestate = HIGH;
}else{
ledtogglestate = LOW;
}
}
digitalWrite(2, ledtogglestate);
delay(1000);
} // Sketch abschließen
MFG
Black Zero
Lesezeichen