https://www.youtube.com/watch?v=NXlyo0goBrU #include // SPI-Bibiothek hinzufügen #include // RFID-Bibiothek hinzufügen; Name in Bibliotheksverwaltung eingeben und Paket installieren. #define SS_PIN 10 // SDA an Pin 10 (bei MEGA anders) #define RST_PIN 9 // RST an Pin 9 (bei MEGA anders) MFRC522 mfrc522(SS_PIN, RST_PIN); // RFID-Empfänger benennen void setup() // Beginn des Setups: { Serial.begin(9600); // Serielle Verbindung starten (Monitor) SPI.begin(); // SPI-Verbindung aufbauen mfrc522.PCD_Init(); // Initialisierung des RFID-Empfängers } void loop() // Hier beginnt der Loop-Teil { if ( ! mfrc522.PICC_IsNewCardPresent()) // Wenn keine Karte in Reichweite ist... { return; // ...springt das Programm zurück vor die if-Schleife, womit sich die Abfrage wiederholt. } if ( ! mfrc522.PICC_ReadCardSerial()) // Wenn kein RFID-Sender ausgewählt wurde { return; // ...springt das Programm zurück vor die if-Schleife, womit sich die Abfrage wiederholt. } Serial.print("Die ID des RFID-TAGS lautet:"); // "Die ID des RFID-TAGS lautet:" wird auf den Serial Monitor geschrieben. for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i], HEX); // Dann wird die UID ausgelesen, die aus vier einzelnen Blöcken besteht und der Reihe nach an den Serial Monitor gesendet. Die Endung Hex bedeutet, dass die vier Blöcke der UID als HEX-Zahl (also auch mit Buchstaben) ausgegeben wird Serial.print(" "); // Der Befehl „Serial.print(" ");“ sorgt dafür, dass zwischen den einzelnen ausgelesenen Blöcken ein Leerzeichen steht. } Serial.println(); // Mit dieser Zeile wird auf dem Serial Monitor nur ein Zeilenumbruch gemacht. } #include #include #include // Hinzufügen der Programmbibliothek. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); int SPU = 2048; // Schritte pro Umdrehung. Stepper Motor(SPU, 3,5,4,6); // Der Schrittmotor erhält die Bezeichnung "Motor" und es wird angegeben an welchen Pins der Motor angeschlossen ist. void setup() { Motor.setSpeed(15); // Angabe der Geschwindigkeit in Umdrehungen pro Minute. Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); pinMode (2, 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==395140) { // Programmabschniss öffnen Motor.step(4096); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. } // Programmabschnitt schließen } // Sketch abschließen #include #include #include // Hinzufügen der Programmbibliothek. #include "Arduino.h" #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); int SPU = 2048; // Schritte pro Umdrehung. Stepper Motor(SPU, 3,5,4,6); // Der Schrittmotor erhält die Bezeichnung "Motor" und es wird angegeben an welchen Pins der Motor angeschlossen ist. const byte rxPin = 7; const byte txPin = 8; const byte ledPin = 14; // Pin für die LED SoftwareSerial BTSerial(rxPin, txPin); // RX TX void setup() { Motor.setSpeed(15); // Angabe der Geschwindigkeit in Umdrehungen pro Minute. Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); // Pin-Modi festlegen pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(ledPin, OUTPUT); // LED-Pin als Ausgang festlegen // Serielle Verbindungen starten BTSerial.begin(9600); Serial.begin(9600); } String messageBuffer = ""; String message = ""; 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==395140) { // Programmabschniss öffnen Motor.step(4096); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. } // Programmabschnitt schließen while (BTSerial.available() > 0) { char data = (char) BTSerial.read(); messageBuffer += data; if (data == ';') { message = messageBuffer; messageBuffer = ""; Serial.print(message); // an den seriellen Monitor senden message = "You sent " + message; BTSerial.print(message); // zurück an das Bluetooth-Terminal senden // Überprüfen, ob "234" empfangen wurde if (message.indexOf("234") != -1) { digitalWrite(ledPin, HIGH); // LED einschalten } if (message.indexOf("567") != -1) { digitalWrite(ledPin, LOW); // LED einschalten } } } } #include #include #include // Hinzufügen der Programmbibliothek. #include "Arduino.h" #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); int SPU = 2048; // Schritte pro Umdrehung. Stepper Motor(SPU, 3, 5, 4, 6); // Der Schrittmotor erhält die Bezeichnung "Motor" und es wird angegeben an welchen Pins der Motor angeschlossen ist. const byte rxPin = 7; const byte txPin = 8; const byte ledPin = 14; // Pin für die LED SoftwareSerial BTSerial(rxPin, txPin); // RX TX void setup() { Motor.setSpeed(15); // Angabe der Geschwindigkeit in Umdrehungen pro Minute. Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); // Pin-Modi festlegen pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(ledPin, OUTPUT); // LED-Pin als Ausgang festlegen // Serielle Verbindungen starten BTSerial.begin(9600); Serial.begin(9600); } String messageBuffer = ""; String message = ""; void loop() { // RFID-Kartenleser abfragen if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { 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); // RFID-Karte erkannt, entsprechende Aktionen durchführen if (code == 395140) { // Programmabschnitt öffnen Motor.step(4096); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. } // Programmabschnitt schließen if (code == 2495040) { // Programmabschnitt öffnen Motor.step(-4096); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. } // Programmabschnitt schließen } // Bluetooth-Kommunikation behandeln while (BTSerial.available() > 0) { char data = (char) BTSerial.read(); messageBuffer += data; if (data == ';') { message = messageBuffer; messageBuffer = ""; Serial.print(message); // an den seriellen Monitor senden message = "You sent " + message; BTSerial.print(message); // zurück an das Bluetooth-Terminal senden // Überprüfen, ob "234" empfangen wurde if (message.indexOf("234") != -1) { digitalWrite(ledPin, HIGH); // LED einschalten } if (message.indexOf("567") != -1) { digitalWrite(ledPin, LOW); // LED ausschalten } } } } #include #include #include // Hinzufügen der Programmbibliothek. #include "Arduino.h" #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); int SPU = 2048; // Schritte pro Umdrehung. Stepper Motor(SPU, 3, 5, 4, 6); // Der Schrittmotor erhält die Bezeichnung "Motor" und es wird angegeben an welchen Pins der Motor angeschlossen ist. const byte rxPin = 7; const byte txPin = 8; SoftwareSerial BTSerial(rxPin, txPin); // RX TX void setup() { Motor.setSpeed(15); // Angabe der Geschwindigkeit in Umdrehungen pro Minute. Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); // Pin-Modi festlegen pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(14, OUTPUT); // LED-Pin als Ausgang festlegen pinMode(15, OUTPUT); pinMode(16, OUTPUT); pinMode(17, OUTPUT); pinMode(18, OUTPUT); pinMode(19, OUTPUT); // Serielle Verbindungen starten BTSerial.begin(9600); Serial.begin(9600); } String messageBuffer = ""; String message = ""; void loop() { // RFID-Kartenleser abfragen if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { 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); // RFID-Karte erkannt, entsprechende Aktionen durchführen if (code == 395140) { // Programmabschnitt öffnen Motor.step(11264); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. } // Programmabschnitt schließen if (code == 2495040) { // Programmabschnitt öffnen Motor.step(-10240); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. } // Programmabschnitt schließen } // Bluetooth-Kommunikation behandeln while (BTSerial.available() > 0) { char data = (char) BTSerial.read(); messageBuffer += data; if (data == ';') { message = messageBuffer; messageBuffer = ""; Serial.print(message); // an den seriellen Monitor senden message = "You sent " + message; BTSerial.print(message); // zurück an das Bluetooth-Terminal senden // Überprüfen, ob "234" empfangen wurde if (message.indexOf("141") != -1) { digitalWrite(14, HIGH); // LED einschalten } if (message.indexOf("140") != -1) { digitalWrite(14, LOW); // LED ausschalten } if (message.indexOf("151") != -1) { digitalWrite(15, HIGH); // LED ausschalten } if (message.indexOf("150") != -1) { digitalWrite(15, LOW); // LED ausschalten } if (message.indexOf("161") != -1) { digitalWrite(16, HIGH); // LED ausschalten } if (message.indexOf("160") != -1) { digitalWrite(16, LOW); // LED ausschalten } if (message.indexOf("171") != -1) { digitalWrite(17, HIGH); // LED ausschalten } if (message.indexOf("170") != -1) { digitalWrite(17, LOW); // LED ausschalten } if (message.indexOf("181") != -1) { digitalWrite(18, HIGH); // LED ausschalten } if (message.indexOf("180") != -1) { digitalWrite(18, LOW); // LED ausschalten } if (message.indexOf("191") != -1) { digitalWrite(19, HIGH); // LED ausschalten } if (message.indexOf("190") != -1) { digitalWrite(19, LOW); // LED ausschalten } } } } #include #include #include // Hinzufügen der Programmbibliothek. #include "Arduino.h" #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); int SPU = 2048; // Schritte pro Umdrehung. Stepper Motor(SPU, 3, 5, 4, 6); // Der Schrittmotor erhält die Bezeichnung "Motor" und es wird angegeben an welchen Pins der Motor angeschlossen ist. const byte rxPin = 7; const byte txPin = 8; SoftwareSerial BTSerial(rxPin, txPin); // RX TX void setup() { Motor.setSpeed(15); // Angabe der Geschwindigkeit in Umdrehungen pro Minute. Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); // Pin-Modi festlegen pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(14, OUTPUT); // LED-Pin als Ausgang festlegen pinMode(15, OUTPUT); pinMode(16, OUTPUT); pinMode(17, OUTPUT); pinMode(18, OUTPUT); pinMode(19, OUTPUT); // Serielle Verbindungen starten BTSerial.begin(9600); Serial.begin(9600); } String messageBuffer = ""; String message = ""; void loop() { // RFID-Kartenleser abfragen if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { 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); // RFID-Karte erkannt, entsprechende Aktionen durchführen if (code == 395140) { // Programmabschnitt öffnen Motor.step(11264); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. } // Programmabschnitt schließen if (code == 2495040) { // Programmabschnitt öffnen Motor.step(-10240); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. } // Programmabschnitt schließen } // Bluetooth-Kommunikation behandeln while (BTSerial.available() > 0) { char data = (char) BTSerial.read(); messageBuffer += data; if (data == ';') { message = messageBuffer; messageBuffer = ""; Serial.print(message); // an den seriellen Monitor senden message = "You sent " + message; BTSerial.print(message); // zurück an das Bluetooth-Terminal senden // Überprüfen, ob "234" empfangen wurde if (message.indexOf("141") != -1) { digitalWrite(14, HIGH); // LED einschalten } if (message.indexOf("140") != -1) { digitalWrite(14, LOW); // LED ausschalten } if (message.indexOf("151") != -1) { digitalWrite(15, HIGH); // LED ausschalten } if (message.indexOf("150") != -1) { digitalWrite(15, LOW); // LED ausschalten } if (message.indexOf("161") != -1) { digitalWrite(16, HIGH); // LED ausschalten } if (message.indexOf("160") != -1) { digitalWrite(16, LOW); // LED ausschalten } if (message.indexOf("171") != -1) { digitalWrite(17, HIGH); // LED ausschalten } if (message.indexOf("170") != -1) { digitalWrite(17, LOW); // LED ausschalten } if (message.indexOf("181") != -1) { digitalWrite(18, HIGH); // LED ausschalten } if (message.indexOf("180") != -1) { digitalWrite(18, LOW); // LED ausschalten } if (message.indexOf("191") != -1) { digitalWrite(19, HIGH); // LED ausschalten } if (message.indexOf("190") != -1) { digitalWrite(19, LOW); // LED ausschalten } } } } #include #include #include // Hinzufügen der Programmbibliothek. #include "Arduino.h" #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); int SPU = 2048; // Schritte pro Umdrehung. Stepper Motor(SPU, 3, 5, 4, 6); // Der Schrittmotor erhält die Bezeichnung "Motor" und es wird angegeben an welchen Pins der Motor angeschlossen ist. const byte rxPin = 7; const byte txPin = 8; SoftwareSerial BTSerial(rxPin, txPin); // RX TX void setup() { Motor.setSpeed(15); // Angabe der Geschwindigkeit in Umdrehungen pro Minute. Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); // Pin-Modi festlegen pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(14, OUTPUT); // LED-Pin als Ausgang festlegen pinMode(15, OUTPUT); pinMode(16, OUTPUT); pinMode(17, OUTPUT); pinMode(18, OUTPUT); pinMode(19, OUTPUT); // Serielle Verbindungen starten BTSerial.begin(9600); Serial.begin(9600); } String messageBuffer = ""; String message = ""; void loop() { // RFID-Kartenleser abfragen if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { 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); // RFID-Karte erkannt, entsprechende Aktionen durchführen if (code == 395140) { // Programmabschnitt öffnen Motor.step(10752); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. digitalWrite(14, LOW); delay(2000); digitalWrite(14, HIGH); delay(2000); } // Programmabschnitt schließen if (code == 2495040) { // Programmabschnitt öffnen Motor.step(-10240); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. delay(1000); digitalWrite(14, LOW); } // Programmabschnitt schließen } // Bluetooth-Kommunikation behandeln while (BTSerial.available() > 0) { char data = (char) BTSerial.read(); messageBuffer += data; if (data == ';') { message = messageBuffer; messageBuffer = ""; Serial.print(message); // an den seriellen Monitor senden message = "You sent " + message; BTSerial.print(message); // zurück an das Bluetooth-Terminal senden // Überprüfen, ob "234" empfangen wurde if (message.indexOf("141") != -1) { digitalWrite(14, HIGH); // LED einschalten } if (message.indexOf("140") != -1) { digitalWrite(14, LOW); // LED ausschalten } if (message.indexOf("151") != -1) { digitalWrite(15, HIGH); // LED ausschalten } if (message.indexOf("150") != -1) { digitalWrite(15, LOW); // LED ausschalten } if (message.indexOf("161") != -1) { digitalWrite(16, HIGH); // LED ausschalten } if (message.indexOf("160") != -1) { digitalWrite(16, LOW); // LED ausschalten } if (message.indexOf("171") != -1) { digitalWrite(17, HIGH); // LED ausschalten } if (message.indexOf("170") != -1) { digitalWrite(17, LOW); // LED ausschalten } if (message.indexOf("181") != -1) { digitalWrite(18, HIGH); // LED ausschalten } if (message.indexOf("180") != -1) { digitalWrite(18, LOW); // LED ausschalten } if (message.indexOf("191") != -1) { digitalWrite(19, HIGH); // LED ausschalten } if (message.indexOf("190") != -1) { digitalWrite(19, LOW); // LED ausschalten } } } } #include #include #include // Hinzufügen der Programmbibliothek. #include "Arduino.h" #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); int SPU = 2048; // Schritte pro Umdrehung. Stepper Motor(SPU, 3, 5, 4, 6); // Der Schrittmotor erhält die Bezeichnung "Motor" und es wird angegeben an welchen Pins der Motor angeschlossen ist. const byte rxPin = 7; const byte txPin = 8; SoftwareSerial BTSerial(rxPin, txPin); // RX TX void setup() { Motor.setSpeed(15); // Angabe der Geschwindigkeit in Umdrehungen pro Minute. Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); // Pin-Modi festlegen pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(14, OUTPUT); // LED-Pin als Ausgang festlegen pinMode(15, OUTPUT); pinMode(16, OUTPUT); pinMode(17, OUTPUT); pinMode(18, OUTPUT); pinMode(19, OUTPUT); // Serielle Verbindungen starten BTSerial.begin(9600); Serial.begin(9600); } String messageBuffer = ""; String message = ""; void loop() { // RFID-Kartenleser abfragen if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { 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); // RFID-Karte erkannt, entsprechende Aktionen durchführen if (code == 395140) { // Programmabschnitt öffnen Motor.step(10240); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. digitalWrite(14, LOW); delay(2000); digitalWrite(14, HIGH); delay(2000); } // Programmabschnitt schließen if (code == 2495040) { // Programmabschnitt öffnen Motor.step(-10240); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. delay(1000); digitalWrite(14, LOW); } // Programmabschnitt schließen } // Bluetooth-Kommunikation behandeln while (BTSerial.available() > 0) { char data = (char) BTSerial.read(); messageBuffer += data; if (data == ';') { message = messageBuffer; messageBuffer = ""; Serial.print(message); // an den seriellen Monitor senden message = "You sent " + message; BTSerial.print(message); // zurück an das Bluetooth-Terminal senden // Überprüfen, ob "234" empfangen wurde if (message.indexOf("141") != -1) { digitalWrite(14, HIGH); // LED einschalten } if (message.indexOf("140") != -1) { digitalWrite(14, LOW); // LED ausschalten } if (message.indexOf("151") != -1) { digitalWrite(15, HIGH); // LED ausschalten } if (message.indexOf("150") != -1) { digitalWrite(15, LOW); // LED ausschalten } if (message.indexOf("161") != -1) { digitalWrite(16, HIGH); // LED ausschalten } if (message.indexOf("160") != -1) { digitalWrite(16, LOW); // LED ausschalten } if (message.indexOf("171") != -1) { digitalWrite(17, HIGH); // LED ausschalten } if (message.indexOf("170") != -1) { digitalWrite(17, LOW); // LED ausschalten } if (message.indexOf("181") != -1) { digitalWrite(18, HIGH); // LED ausschalten } if (message.indexOf("180") != -1) { digitalWrite(18, LOW); // LED ausschalten } if (message.indexOf("191") != -1) { digitalWrite(19, HIGH); // LED ausschalten } if (message.indexOf("190") != -1) { digitalWrite(19, LOW); // LED ausschalten } if (message.indexOf("777") != -1) { digitalWrite(18, LOW); // LED ausschalten digitalWrite(17, LOW); // LED ausschalten digitalWrite(16, LOW); // LED ausschalten digitalWrite(15, LOW); // LED ausschalten digitalWrite(14, LOW); // LED ausschalten delay(1000); Motor.step(-10240); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung. } } } } https://funduino.de/nr-15-schrittmotor