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("=====================================");
}