Умные Ворота

Viktor_Samsonov
Offline
Зарегистрирован: 16.09.2016

Добрый день, нужна помошь в написании кода, сам не силен, только начал разбираться.

Заказал вот эти модули.

суть такая:

хочу сделать чтобы калитка ворот открывалась при помощи rs522.

задумка такая:

подношу метку к датчику, если она там есть, то подается напряжение 1 сек на любой пин(2)

если ключ непрописан то подаетсяна пин 3( там светодиод )

причем чтобы метки записывались после подношения карты администратора видел на Ютуб https://www.youtube.com/watch?v=a583vq0vXyg

еще есть автоматические ворота, для них нужно:

на пульте нажимаю кнопку 1 подается напряжение на пин 4

снова нажимаю напряжения нет

и так еще с двумя,

на 3 посадить калитку т.е нажимаю кнопку подается на пин 2 напряжение и через секунду пропадает

нуждаюсь в помощи сам еще плохо понимаю в этом, обьясните как написать код, 

вот все что у меня есть (взял с того же ютуба)

[code]
#include <MFRC522.h>
 
int ledPins[] = {
 
2,3,4,5};
 
int LedPinSindex; // индекс, для массива Светодиодов.
 
void setup() {
 
Serial.begin(9600); // Initialize serial communications with the PC.
 
Serial.println("Prilozhite kartu / Waiting for card...");
 
SPI.begin(); // инициализация SPI / Init SPI bus.
 
mfrc522.PCD_Init(); // инициализация MFRC522 / Init MFRC522 card.
 
dimkaservo.attach(7); // servo подключён к 7 Pin.
 
dimkaservo.write(10); // устанавливаем положение servo, в момент подачи питания.
// весь массив светодиодов делаем OUTPUT.
 
for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)
 
{
 
pinMode(ledPins[LedPinSindex],OUTPUT);
 
}
 
}
 
void loop() {
 
// Поиск новой карточки / Look for new cards.
 
if ( ! mfrc522.PICC_IsNewCardPresent()) {
 
return;
 
}
 
// Выбор карточки / Select one of the cards.
 
if ( ! mfrc522.PICC_ReadCardSerial()) {
 
return;
 
}
 
uidDec = 0;
 
// Выдача серийного номера карточки "UID".
 
for (byte i = 0; i < mfrc522.uid.size; i++)
 
{
 
uidDecTemp = mfrc522.uid.uidByte[i];
 
uidDec = uidDec*256+uidDecTemp;
 
}
 
Serial.println("Serijnyj nomer karty / Card UID: ");
 
Serial.println(uidDec);
 
// ------------------------
 
// начинаем сравнивать номер "UID", поднесённой к ридеру карты,
 
// с записанным номером "UID" карты в sketch.
 
// замените!!! "UID" № "422455350", на номер "UID" № вашей карты.
 
if (uidDec == 422455350) // если "UID" номер совпал.
 
{
 
// включим светодиод.
 
digitalWrite(ledPins[0], HIGH);
 
// Печатаем в Serial монитор .
 
Serial.println("Hi Dmitry");
 
// поворачиваем servo на 170 градусов.
 
dimkaservo.write(170);
 
}
 
// также и с другими номерами карт.
 
else if (uidDec == 959884118)
 
{
 
digitalWrite(ledPins[1], HIGH);
 
Serial.println("Hi Sergey");
 
dimkaservo.write(170);
 
}
 
else if (uidDec == 695670870)
 
{
 
digitalWrite(ledPins[2], HIGH);
 
Serial.println("Hi Peter");
 
dimkaservo.write(170);
 
}
 
else if (uidDec == 695670614)
 
{
 
digitalWrite(ledPins[3], HIGH);
 
Serial.println("Hi Vasily");
 
dimkaservo.write(170);
 
}
 
else // если "UID" номер карты не совпал.
 
{
 
// включим все светодиоды.
 
for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],HIGH);
 
Serial.println("Neizvestnaja karta / unknown card");
 
}
 
Serial.println("=====================================");
 
delay(3000); // пауза 3 секунды.
 
dimkaservo.write(10); // возвращаем servo обратно.
 
// и выключим все светодиоды.
 
for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],LOW);
 
}
[/code]
 
 
 
 
тут нет пульта. как его добавить сюда?
надеюсь поймете меня)
Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Viktor_Samsonov пишет:

тут нет пульта. как его добавить сюда?
надеюсь поймете меня)

#include <пульт.h>

Viktor_Samsonov
Offline
Зарегистрирован: 16.09.2016

А можно еще сделать чтобы определенная метка включала пин 4 т.е работала как пульт, один раз поднес появилось напряжение на пин 4, еще раз поднес пропало?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Viktor_Samsonov пишет:

А можно еще сделать чтобы определенная метка включала пин 4 т.е работала как пульт, один раз поднес появилось напряжение на пин 4, еще раз поднес пропало?

убрал первую метку - пропало напряжение

поднёс вторую метку - пропало напряжение.

поднёс две метки - пропало напряжение.

vvadim
Offline
Зарегистрирован: 23.05.2012

Viktor_Samsonov пишет:

А можно еще сделать чтобы определенная метка включала пин 4 т.е работала как пульт, один раз поднес появилось напряжение на пин 4, еще раз поднес пропало?

ДА ВСЁ МОЖНО СДЕЛАТЬ
знаний у вас маловато,  надо учиться.
тогда сами сделаете

или за денежку просить чтобы сделали другие...