RC522+servo+led
- Войдите на сайт для отправки комментариев
Честно говоря, даже стыдно выкладывать "свой" (недоскеч), греет душу то что никто прямо в лицо не плюнет :D
В общем запарился я искать решение этой проблемы в просторах гугла/яндекс и того же ютюба. ничего дельного найти не смог, русских уроков "НОРМАЛЬНЫХ" а не там где дергается камера и всё записывают с экрана, а в конце даже скетча не выложат, НЕТУ. ну или просто я криворукий и не нашёл)
Сразу скажу, прочёл статьи Лешшего http://alxarduino.blogspot.ru/
что-то понятно, что-то думал что понял а в итоге ничерта не понял.
Прошу отнестись с пониманием! И без "всеми любимого сарказма"
Все с чего-то начинали!
Что я хочу получить на выходе:
при подаче питания, горит светодиод R ~ 30мин
при поднисении записанной карты, он R и включается светодиод G и в обратном порядке.(поднес ещё раз, 30м. R и off)
Если карта не прописана светодиод R мигнул ~ 5 раз и продолжил гореть, те же 30 мин.
ну и светодиод W, просто чтоб плавно мигал, цикл бесконечный
Ну и да, знаю что мой код отвратный, но я его писал сам и это моя можно так сказать 2-я попытка что-то сделать самому)
Спасибо за советы и ответы!)
#include <Servo.h> Servo door; Servo door2; #include <SPI.h> #include <MFRC522.h> #define SS_PIN 53 #define RST_PIN 49 //#define LED_PIN 9 //#define INTERVAL 5000UL MFRC522 mfrc522(SS_PIN, RST_PIN); unsigned long uidDec, uidDecTemp; boolean doorOpen; int dz = 33; void setup() { //pinMode(LED_PIN, OUTPUT); //digitalWrite(LED_PIN, HIGH); pinMode(32, OUTPUT); pinMode(dz, OUTPUT); digitalWrite(dz, HIGH); Serial.begin(9600); Serial.println("Prilozhite kartu / Waiting for card..."); SPI.begin(); mfrc522.PCD_Init(); door.attach(22); door2.attach(23); door.write(0); door2.write(0); } void loop() { if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } if ( ! mfrc522.PICC_ReadCardSerial()) { return; } uidDec = 0; for (byte i = 0; i < mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec*256+uidDecTemp; } Serial.println("Serial number card / Card UID: "); Serial.println(uidDec); if (uidDec == 3063551102){ if (doorOpen) { Serial.println("Hi Pavel"); digitalWrite(32, HIGH); digitalWrite(dz, LOW); door.write(180); delay(300); door2.write(180); doorOpen = false; } else { digitalWrite(32, LOW); digitalWrite(dz, HIGH); Serial.println("Bye Pavel"); door.write(0); delay(300); door2.write(0); doorOpen = true; } delay(500); } else if (uidDec == 2130725580){ if (doorOpen) { Serial.println("Hi Pavel"); door.write(180); doorOpen = false; } else { Serial.println("Bye Pavel"); door.write(0); doorOpen = true; } delay(500); } else { Serial.println("!!!!!!!!!!Unknown card!!!!!!!!!!!!!!!!!!"); digitalWrite(dz, HIGH); delay(50); digitalWrite(dz, LOW); delay(50); digitalWrite(dz, HIGH); delay(50); digitalWrite(dz, LOW); delay(50); digitalWrite(dz, HIGH); delay(50); digitalWrite(dz, LOW); delay(50); digitalWrite(dz, HIGH); delay(50); digitalWrite(dz, LOW); delay(50); digitalWrite(dz, HIGH); delay(50); digitalWrite(dz, LOW); delay(50); digitalWrite(dz, HIGH); delay(50); digitalWrite(dz, LOW); } Serial.println("====================================="); }