проект рфид считыватель на дверь . Помогите

85vehiza
Offline
Зарегистрирован: 26.12.2016
 нашёл вот такой скейч
003
Servo dimkaservo;
004
 
005
#include <SPI.h>
006
 
007
#include <MFRC522.h> // это скачанная библиотека "RFID".
008
 
009
/*
010
 
011
подключение для Arduino Uno и Mega, производится к разным Pin!
012
 
013
---------------------------------------------------— Nicola Coppola
014
 
015
* Pin layout should be as follows:
016
 
017
* Signal Pin Pin Pin
018
 
019
* Arduino Uno Arduino Mega MFRC522 board
020
 
021
* —--------------------------------------------------------—
022
 
023
* Reset 9 5 RST
024
 
025
* SPI SS 10 53 SDA
026
 
027
* SPI MOSI 11 51 MOSI
028
 
029
* SPI MISO 12 50 MISO
030
 
031
* SPI SCK 13 52 SCK
032
 
033
*/
034
 
035
// два Pin (SS и RST) допускают произвольное подключение и конфигурируются в коде.
036
 
037
// !(SS - он же - SDA).
038
 
039
#define SS_PIN 10
040
 
041
#define RST_PIN 9
042
 
043
MFRC522 mfrc522(SS_PIN, RST_PIN); // объект MFRC522C / reate MFRC522 instance.
044
 
045
unsigned long uidDec, uidDecTemp; // для отображения номера карточки в десятичном формате
046
 
047
//*************************************************************
048
 
049
// Массив 4 Светодиодов, для визуального контроля.
050
 
051
//*************************************************************
052
 
053
int ledPins[] = {
054
 
055
2,3,4,5};
056
 
057
int LedPinSindex; // индекс, для массива Светодиодов.
058
 
059
void setup() {
060
 
061
Serial.begin(9600); // Initialize serial communications with the PC.
062
 
063
Serial.println("Prilozhite kartu / Waiting for card...");
064
 
065
SPI.begin(); // инициализация SPI / Init SPI bus.
066
 
067
mfrc522.PCD_Init(); // инициализация MFRC522 / Init MFRC522 card.
068
 
069
dimkaservo.attach(7); // servo подключён к 7 Pin.
070
 
071
dimkaservo.write(10); // устанавливаем положение servo, в момент подачи питания.// весь массив светодиодов делаем OUTPUT.
072
 
073
for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)
074
 
075
{
076
 
077
pinMode(ledPins[LedPinSindex],OUTPUT);
078
 
079
}
080
 
081
}
082
 
083
void loop() {
084
 
085
// Поиск новой карточки / Look for new cards.
086
 
087
if ( ! mfrc522.PICC_IsNewCardPresent()) {
088
 
089
return;
090
 
091
}
092
 
093
// Выбор карточки / Select one of the cards.
094
 
095
if ( ! mfrc522.PICC_ReadCardSerial()) {
096
 
097
return;
098
 
099
}
100
 
101
uidDec = 0;
102
 
103
// Выдача серийного номера карточки "UID".
104
 
105
for (byte i = 0; i < mfrc522.uid.size; i++)
106
 
107
{
108
 
109
uidDecTemp = mfrc522.uid.uidByte[i];
110
 
111
uidDec = uidDec*256+uidDecTemp;
112
 
113
}
114
 
115
Serial.println("Serijnyj nomer karty / Card UID: ");
116
 
117
Serial.println(uidDec);
118
 
119
// —--------------------—
120
 
121
// начинаем сравнивать номер "UID", поднесённой к ридеру карты,
122
 
123
// с записанным номером "UID" карты в sketch.
124
 
125
// замените!!! "UID" № "422455350", на номер "UID" № вашей карты.
126
 
127
if (uidDec == 422455350) // если "UID" номер совпал.
128
 
129
{
130
 
131
// включим светодиод.
132
 
133
digitalWrite(ledPins[0], HIGH);
134
 
135
// Печатаем в Serial монитор .
136
 
137
Serial.println("Hi Dmitry");
138
 
139
// поворачиваем servo на 170 градусов.
140
 
141
dimkaservo.write(170);
142
 
143
}
144
 
145
// также и с другими номерами карт.
146
 
147
else if (uidDec == 959884118)
148
 
149
{
150
 
151
digitalWrite(ledPins[1], HIGH);
152
 
153
Serial.println("Hi Sergey");
154
 
155
dimkaservo.write(170);
156
 
157
}
158
 
159
else if (uidDec == 695670870)
160
 
161
{
162
 
163
digitalWrite(ledPins[2], HIGH);
164
 
165
Serial.println("Hi Peter");
166
 
167
dimkaservo.write(170);
168
 
169
}
170
 
171
else if (uidDec == 695670614)
172
 
173
{
174
 
175
digitalWrite(ledPins[3], HIGH);
176
 
177
Serial.println("Hi Vasily");
178
 
179
dimkaservo.write(170);
180
 
181
}
182
 
183
else // если "UID" номер карты не совпал.
184
 
185
{
186
 
187
// включим все светодиоды.
188
 
189
for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],HIGH);
190
 
191
Serial.println("Neizvestnaja karta / unknown card");
192
 
193
}
194
 
195
Serial.println("=====================================");
196
 
197
delay(3000); // пауза 3 секунды.
198
 
199
dimkaservo.write(10); // возвращаем servo обратно.
200
 
201
// и выключим все светодиоды.
202
 
203
for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],LOW);
204
 
205
}

Но мне тут не хвотает одного, хочу поставить на торец двери кантакты кагда мы поворачиваем серво картой  и  открываем дверь тогда на торце двери размыкаются контакты то тогда серво не должна поворачиватся через 3 сек обратно. А если мы  повернули серво картой и дверь не открылась в течении 3 сек тогда серво поворачиваем обратно.ПОМОГИТЕ ДОПИСАТЬ СКЕЙЧ Я ВАМ БУДУ ОЧЕНЬ БЛОГОДАРЕН.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
/*
//#1
светодиод -> 8 (Led_pin) 0 горит/ 1 нет
       GND ->  GND
серва  -> 5 (servo_pin)
геркон -> A3 (gercon_pin) 0 дверь закрыта / 1 нет
//#2
кнопка1 -> A1 (btm1_pin) 0 нажата/ 1 нет
       GND ->  GND
кнопка2 -> A2 (btm2_pin) 0 нажата/ 1 нет
       GND ->  GND
//#3               Arduino Uno
RFID_RC522 RST -> 9 (RST_pin)
        SDA(SS)-> 10 (SDA_pin)
        MOSI   -> 11 (MOSI_pin)
        MISO   -> 12 (MISO_pin)
        SCK    -> 13 (SCK_pin)
        3,3В   -> 3,3В
        GND    -> GND

        Card UID: E6 38 FE 13  брелок
        Card UID: 5A 5D 39 D5  пластик
*/
//#1
const int Led_pin = 8 ; // нога светодиода
uint8_t Led ;
const int interval = 2000 ; // интервал после нажатия клавиши 2 сек

#include <Servo.h>
Servo myservo;
const int servo_pin = 5  ; // нога серво
const int servo_OFF = 0; // серва закрыта
const int servo_ON = 90; // серва открыта
const int gercon_pin = A3  ; // нога геркона
uint8_t gercon ;
//#2
const int btm1_pin = A1  ; // нога кнопки
const int btm2_pin = A2  ; // нога кнопки
//#3
byte uidCard1[4] = {0xE6, 0x38, 0xFE, 0x13};
byte uidCard2[4] = {0x5A, 0x5D, 0x39, 0xD5};
#include <SPI.h>
#include <MFRC522.h>
const int SDA_pin = 10;
const int RST_pin = 9;

MFRC522 rfid(SDA_pin, RST_pin); // Instance of the class

void setup() {
  //#1
  pinMode(Led_pin, OUTPUT);
  digitalWrite(Led_pin, Led = 0);
  myservo.attach(servo_pin);
  pinMode(gercon_pin, INPUT_PULLUP);
  //#2
  pinMode(btm1_pin, INPUT_PULLUP);
  pinMode(btm2_pin, INPUT_PULLUP);
  //#3
  SPI.begin(); // Init SPI bus
  rfid.PCD_Init(); // Init MFRC522
}

void loop() {
  static uint32_t MILLIS ;
  MILLIS = millis() ;
  //#1
  static uint32_t future1 = 0 ;
  gercon = digitalRead(gercon_pin); // опрос состояния двери
  if (!gercon && !Led && (MILLIS >= future1)) { // убеждаемся что дверь закрыта и подошло время закрывать на замок
    digitalWrite(Led_pin, Led = 1);
    myservo.write(servo_OFF);  // закрываем
  }
  //#2
  if (!digitalRead(btm1_pin)) { // первая открывающая кнопка
    digitalWrite(Led_pin, Led = 0);
    future1 = millis() + interval;
    myservo.write(servo_ON);
  }
  if (!digitalRead(btm2_pin)) { // вторая открывающая кнопка
    digitalWrite(Led_pin, Led = 0);
    future1 = millis() + interval;
    myservo.write(servo_ON);
  }
  //#3
  static uint32_t future3 = 0 ;
  if (MILLIS >= future3)   {
    future3 = MILLIS + 1000 ;
    if ( rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
      if (rfid.uid.uidByte[0] == uidCard1[0] ||
          rfid.uid.uidByte[1] == uidCard1[1] ||
          rfid.uid.uidByte[2] == uidCard1[2] ||
          rfid.uid.uidByte[3] == uidCard1[3] ) {
        digitalWrite(Led_pin, Led = 0);
        future1 = millis() + interval;
        myservo.write(servo_ON);
      }
      if (rfid.uid.uidByte[0] == uidCard2[0] ||
          rfid.uid.uidByte[1] == uidCard2[1] ||
          rfid.uid.uidByte[2] == uidCard2[2] ||
          rfid.uid.uidByte[3] == uidCard2[3] ) {
        digitalWrite(Led_pin, Led = 0);
        future1 = millis() + interval;
        myservo.write(servo_ON);
      }
    }
  }
}

 

85vehiza
Offline
Зарегистрирован: 26.12.2016

не подскажите куда id карты писать

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Попробовал исправит Ваш  код, не проверял потому что не начем. Кнопка на двери, когда дверь открыта замыкает на минус

нашёл вот такой скейч
Servo dimkaservo;
#include <SPI.h>
#include <MFRC522.h> // это скачанная библиотека "RFID".
/*
подключение для Arduino Uno и Mega, производится к разным Pin!
---------------------------------------------------— Nicola Coppola
* Pin layout should be as follows:
*Signal Pin Pin Pin
*Arduino Uno Arduino Mega MFRC522 board
*Reset 9 5 RST
*SPI SS 10 53 SDA
*SPI MOSI 11 51 MOSI
* SPI MISO 12 50 MISO
* SPI SCK 13 52 SCK
*/
// два Pin (SS и RST) допускают произвольное подключение и конфигурируются в коде.
// !(SS - он же - SDA).
#define SS_PIN 10
#define RST_PIN 9
#define knopka 6
bool f_OnOf;
unsigned long time1;

MFRC522 mfrc522(SS_PIN, RST_PIN); // объект MFRC522C / reate MFRC522 instance.
unsigned long uidDec, uidDecTemp; // для отображения номера карточки в десятичном формате

//*************************************************************
// Массив 4 Светодиодов, для визуального контроля.
//*************************************************************
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.
	pinMode(knopka, INPUT_PULLUP); //  пин, как вход + подтягивающий резистор
	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("=====================================");
  
  if(!digitalRead(knopka))
  {
    time1 = millis();
    f_OnOf = 1;
  }
  
  if(f_OnOf && digitalRead(knopka))
  {
    if(millis() - time1 >= 3000)   // пауза 3 секунды.
    {
      dimkaservo.write(10); // возвращаем servo обратно.
      // и выключим все светодиоды.
      f_OnOf = 0;
      for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)
      {
        digitalWrite(ledPins[LedPinSindex],LOW);
      }
    }
  }
}

 

85vehiza
Offline
Зарегистрирован: 26.12.2016

Спасибо я попробую просто сейчас не дома

85vehiza
Offline
Зарегистрирован: 26.12.2016

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

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Смысл там должен быть такой:

Поднес карточку - серва сработала, открыли дверь и только после того как закроем дверь серва через 3 секунды вернется назад. Если дверь после сработки не открыть то серва не закроет а будет ждать открытия.

Что в этой гогике не сработало? 

85vehiza
Offline
Зарегистрирован: 26.12.2016

а у меня сматри как я подношу карту серво сробатывает кантакты замкнуты кагда размыкаеш серво через 3 сек не сробатывает а стоит в открытом состоянии двери

 

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Поправил, сейчас должна работать следуещим образом:

1)Поднес карточку - серва сработала, открыли дверь и только после того как закроем дверь серва через 3 секунды закроет.

2)Если серва сработала но дверь не открылась - то серва через 3 ск. закроет

нашёл вот такой скейч
Servo dimkaservo;
#include <SPI.h>
#include <MFRC522.h> // это скачанная библиотека "RFID".
/*
подключение для Arduino Uno и Mega, производится к разным Pin!
---------------------------------------------------— Nicola Coppola
* Pin layout should be as follows:
*Signal Pin Pin Pin
*Arduino Uno Arduino Mega MFRC522 board
*Reset 9 5 RST
*SPI SS 10 53 SDA
*SPI MOSI 11 51 MOSI
* SPI MISO 12 50 MISO
* SPI SCK 13 52 SCK
*/
// два Pin (SS и RST) допускают произвольное подключение и конфигурируются в коде.
// !(SS - он же - SDA).
#define SS_PIN 10
#define RST_PIN 9
#define knopka 6
bool f_OnOf;
unsigned long time1;

MFRC522 mfrc522(SS_PIN, RST_PIN); // объект MFRC522C / reate MFRC522 instance.
unsigned long uidDec, uidDecTemp; // для отображения номера карточки в десятичном формате

//*************************************************************
// Массив 4 Светодиодов, для визуального контроля.
//*************************************************************
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.
	pinMode(knopka, INPUT_PULLUP); //  пин, как вход + подтягивающий резистор
	for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)
	{
		pinMode(ledPins[LedPinSindex],OUTPUT);
	}
}

void onOf(){
	dimkaservo.write(170);
	time1 = millis();
	f_OnOf = 1;
}

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 градусов.
		onOf();
	}
	// также и с другими номерами карт.
	else if (uidDec == 959884118)
	{
		digitalWrite(ledPins[1], HIGH);
		Serial.println("Hi Sergey");
		onOf();
	}
	else if (uidDec == 695670870)
	{
		digitalWrite(ledPins[2], HIGH);
		Serial.println("Hi Peter");
		onOf();
	}
	else if (uidDec == 695670614)
	{
		digitalWrite(ledPins[3], HIGH);
		Serial.println("Hi Vasily");
		onOf();
	}
	else // если "UID" номер карты не совпал.
	{
		// включим все светодиоды.
		for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)
		{
			digitalWrite(ledPins[LedPinSindex],HIGH);
			Serial.println("Neizvestnaja karta / unknown card");
		}
	}
	Serial.println("=====================================");
	
	if(!digitalRead(knopka))
	{
		time1 = millis();
		f_OnOf = 1;
	}
	
	if(f_OnOf && digitalRead(knopka))
	{
		if(millis() - time1 >= 3000)   // пауза 3 секунды.
		{
			dimkaservo.write(10); // возвращаем servo обратно.
			// и выключим все светодиоды.
			f_OnOf = 0;
			for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)
			{
				digitalWrite(ledPins[LedPinSindex],LOW);
			}
		}
	}
}

 

85vehiza
Offline
Зарегистрирован: 26.12.2016

сматори может я кнопку не правельног подключаю . действия такиеже 

d93782acc73f79a3921ae6c73c3350a8.jpg

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
pinMode(knopka, INPUT_PULLUP); //  пин, как вход + подтягивающий резистор

Ну да кнопка должна быть подключена на вывод и землю без резисторов лишних. А может вы еще умудрились заливать скетч на неподсоединеную ардуину. 

85vehiza
Offline
Зарегистрирован: 26.12.2016

Тоесть я кнопку не правельно подключил?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ну может еще что-то еще НЕ ПРАВЕЛЬНО сделал. Но что бы работало нормально , надо все сделать правильно.

85vehiza
Offline
Зарегистрирован: 26.12.2016

сейчас я все соберу проверю и отпишусь

 

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

В #3 посте я же написал "Кнопка на двери, когда дверь открыта замыкает на минус" НЕ ЧИТАЛИ?

85vehiza
Offline
Зарегистрирован: 26.12.2016

все подсаеденил правельно 1000 раз перепроверил и все ровно такаеже хрень

 

85vehiza
Offline
Зарегистрирован: 26.12.2016

пя вот так подключил кнопку так или нет

 

Taster2.gif

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Побробуй упрощеный скетч. Там открывается кнопками. Внимание я переподключил пины.

/*millis_lock.ino
  //#1
  светодиод -> 2 (Led_pin) 0 горит/ 1 нет
       GND ->  GND
  //#2
  геркон -> 3 (gercon_pin) 0 дверь закрыта / 1 нет
  //#3
  серва  -> 4 (servo_pin)
  //#4
  кнопка1 -> 5 (btm1_pin) 0 нажата/ 1 нет
       GND ->  GND
  кнопка2 -> 6 (btm2_pin) 0 нажата/ 1 нет
       GND ->  GND
*/
//#1 светодиод  горит=замок открыт
const int Led_pin = 2 ; // нога светодиода
uint8_t Led ;
//#2 геркон на двери
const int gercon_pin = 3  ; // нога геркона
uint8_t gercon ;
//#3 серва
#include <Servo.h>
Servo servo1;
const int servo_pin = 4  ; // нога серво
const int servo_OFF = 90; // серва закрыта
const int servo_ON = 0; // серва открыта
const int Time_OFF = 2000 ; // интервал закрытия замка после нажатия клавиши 2 сек
//#4
const int btm1_pin = 5  ; // нога кнопки
const int btm2_pin = 6  ; // нога кнопки

void setup() {
  //#1
  pinMode(Led_pin, OUTPUT);
  digitalWrite(Led_pin, Led = 0); //
  //#2 геркон
  pinMode(gercon_pin, INPUT_PULLUP);
  //#3 серва
  servo1.attach(servo_pin);
  servo1.write(servo_ON);
  //#4
  pinMode(btm1_pin, INPUT_PULLUP);
  pinMode(btm2_pin, INPUT_PULLUP);
}
void loop() {
  //#1,#2,#3
  static uint32_t past_1 = 0 ;
  gercon = digitalRead(gercon_pin); // опрос состояния двери
  if (!gercon && !Led && (millis() - past_1 >= Time_OFF)) { // убеждаемся что дверь закрыта и подошло время закрывать на замок
    digitalWrite(Led_pin, Led = 1); // гасим светодиод
    servo1.write(servo_OFF);  // закрываем замок
  }
  //#4
  if (!digitalRead(btm1_pin)) { // первая открывающая кнопка
    digitalWrite(Led_pin, Led = 0); // вкл светодиод
    past_1 = millis() ;
    servo1.write(servo_ON);
  }
  if (!digitalRead(btm2_pin)) { // вторая открывающая кнопка
    digitalWrite(Led_pin, Led = 0); // вкл светодиод
    past_1 = millis() ;
    servo1.write(servo_ON);
  }
}

Убедитесь пожалуста , что работает серва = "закрывает замок", когда вывод геркона на земле "дверь закрыта". Закрывать замок , когда дверь открыта думаю бесмысленно.

85vehiza
Offline
Зарегистрирован: 26.12.2016

здесь также без резисторов все да подсоеденять

 

85vehiza
Offline
Зарегистрирован: 26.12.2016

ОН НЕ РАБОТАЕТ НИ КАК

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ну да, у меня работает, а у вас нет. А вот сканер для моих rfid карточек 

/*rfid_reader.ino
 RFID_RC522 RST -> 9 (RST_pin)   Arduino Uno
            SDA(SS)-> 10 (SDA_pin)
            MOSI   -> 11 (MOSI_pin)
            MISO   -> 12 (MISO_pin)
            SCK    -> 13 (SCK_pin)
            3,3В   -> 3,3В
            GND    -> 

*/
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN         9           // Configurable, see typical pin layout above
#define SS_PIN          10          // Configurable, see typical pin layout above
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
MFRC522::MIFARE_Key key;
void setup() {
  Serial.begin(9600); // Initialize serial communications with the PC
  while (!Serial);    // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
  SPI.begin();        // Init SPI bus
  mfrc522.PCD_Init(); // Init MFRC522 card
  for (byte i = 0; i < 6; i++) {
    key.keyByte[i] = 0xFF;
  }
}

void loop() {
  delay(500);
  if ( ! mfrc522.PICC_IsNewCardPresent())
    return;
  if ( ! mfrc522.PICC_ReadCardSerial())
    return;
  Serial.print(F("Card UID:"));
  dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
  Serial.println();

}
void dump_byte_array(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
    Serial.print(buffer[i], HEX);
  }
}

 

85vehiza
Offline
Зарегистрирован: 26.12.2016

я все правильно собираю но кнопки и геркон без резистоора да также ?

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

"я все правильно собираю но кнопки и геркон без резистоора да также ?"

Это настораживает! Я так понял что на дверях у Вас стоит геркон, который Мы в скетче назвали кнопка, или у Вас стоит отдельно геркон и отдельно кнопка?

85vehiza
Offline
Зарегистрирован: 26.12.2016

уйди код куда вставлять

суда

if (rfid.uid.uidByte[0] == uidCard1[0] ||

 

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ну вы же не пазл собираете. Это из кучи бумажек можно сложить картинку. А в электричестве и электронике (позже) плохие контакты валят всю конструкцию. А если раздолбаный бреадбоард то хрень еще та. Я от него давно отказался.

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

В кнопке или герконе используются нормаль замкнутые кондакты тоесть если не воздействувать на кнопку (геркон) то контакты замкнуты на на минус

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

85vehiza пишет:

уйди код куда вставлять

суда

if (rfid.uid.uidByte[0] == uidCard1[0] ||

 

 

Если про это#1  то сюда

byte uidCard1[4] = {0xE6, 0x38, 0xFE, 0x13}; // строка 40
byte uidCard2[4] = {0x5A, 0x5D, 0x39, 0xD5};// строка 41

 

85vehiza
Offline
Зарегистрирован: 26.12.2016
когда я его туда пишу вылазиет такая ощибка что делать
 
 
 byte uidCard1[4] = {3D 78 D3 AE};
 
                                ^
 
exit status 1
unable to find numeric literal operator 'operator""D'
 
 
 
qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

ну 3D 78 D3 AE и 0x3D 0x78 0xD3 0xAE различаете? Есть такая вещь, как шестнадцатиричные цифры и правило их записывание.

85vehiza
Offline
Зарегистрирован: 26.12.2016

а как из моего зделать 16 ричный я то ваше не в курсе

85vehiza
Offline
Зарегистрирован: 26.12.2016

не увидел спасибо щя папробую

85vehiza
Offline
Зарегистрирован: 26.12.2016

Я не пойму но у меня он тоже не работает может что у меня с ардуино потомучто все правельно подсоединяю

 

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

начните с простых скетчей. Blink, зажигание светодиода по состоянию кнопки, поворот сервы по нажатию кнопки и возврат по отжатию. Просто этот проект немного сложен для Вас.

85vehiza
Offline
Зарегистрирован: 26.12.2016

да все в том то и дело работает пробовал и тот скейч каторый первый я прикреплял а эти фиг

 

85vehiza
Offline
Зарегистрирован: 26.12.2016

qwone вы тоже делаете проект открывангие двери пластиковыми картами ?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Нет. Это просто отработка технологии и подхода к программированию.Поиск подводных камней. 

85vehiza
Offline
Зарегистрирован: 26.12.2016

Совершено верно без этого не начать!!!!!!!!!!