Логика: если концевик kv1=HIGH, то rfid читает карту, если uid карты валидный, включаем реле relay1.
Подключил все верно...перепроверил много раз, заливал простой скетч в ардуино, концевик рабочий, реле рабочее, rfid рабочий. Rfid проверял другим скетчем. А этэ не работает:
- Код: Выделить всё
#include <SPI.h>
#include <MFRC522.h> // библиотека "RFID"
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
bool perenos = false;
// ----РАСПИНОВКА-----
int kv1 = 2; //пин концевика1
int kv2 = 3; //пин концевика2
int relay1 = 5; //реле1
int relay2 = 1; //реле2
int but1 = 7; //конпка1
int but2 = 8; //кнопка2
unsigned long uidDec, uidDecTemp; // для храниения номера метки в десятичном формате
/* --------ДАННЫЕ ДЛЯ ВВОДА-----------*/
int x=1; //количество карточек
unsigned long cards [ 2 /* ввести колво карточек вмемто 1*/]{3230407588, 2643501689};
void setup() {
SPI.begin(); // инициализация SPI
mfrc522.PCD_Init(); // инициализация MFRC522
Serial.begin(9600);
}
void loop() {
/* проограмма работы с первым концевиком*/
int kv1_sost = digitalRead(kv1);
if(kv1_sost){
for (byte i = 0; i < mfrc522.uid.size; i++) //считывание UID карты
{
uidDecTemp = mfrc522.uid.uidByte[i];
uidDec = uidDec * 256 + uidDecTemp;
}
for(int a=0; a<=x; a++){
if(uidDec == cards[a]){
digitalWrite(relay1, HIGH);
}
else digitalWrite(relay1, LOW);
}
}
}