Sazanof.ru Блог Arduino: подключение считывателя Matrix III (Wiegand)

Arduino: подключение считывателя Matrix III (Wiegand)

Привет, всем, попавшим сюда с просторов интернета. Не так давно я начал осваивать микроконтроллер Arduino. Приобретя парочку контроллеров, я решил оргпнизовать систему контроля и управлением доступа на базе rc522, стороннего веб-сервера управления данными и контроллерами.

Также мне стало интересно, можно ли модернизировать текущую СКУД и использовать уже имеющиеся считыватели Matrix III, который может работать как по Wiegand, так и как эмулятор DS1990A

Я решил подключить его к ардуино по Wiegand.

Библиотеку можно использовать эту https://github.com/sazanof/Wiegand-Protocol-Library-for-Arduino (форк).

Подключение питания считывателя Matrix III

Питания считывателя отдельно завел с блока питания на 12В. Конечно, Arduino UNO держит 12В, но я решил записать ее отдельно, по USB. На картинке ниже в колодке это оранжевый и бело-оранжевый.

Подключение считывателя Matrix III к Arduino UNO

Схема подключения считывателя Matrix III к Arduino UNO (Nano, Mega) по Wiegand запредельно проста:

Arduino pin GND - Matrix GND (земля общая у них)
Arduino pin 2 - Matrix DATA0
Arduino pin 3 - Matrix DATA1

Все! Profit!

Тестирование работы Matrix III - тестовый скетч

Открываем IDE Arduino. Тут я не буду учить вас добавлять билиотеки, думаю, вы это умеете делать.

Открываем примеры, ищем установленную библиотеку и открываем тестовый скетч:

#include <Wiegand.h> 
//подключаем библиотеку
WIEGAND wg;

void setup() {
    // открываем сериал
    Serial.begin(9600);  
    wg.begin();
}

void loop() {
    // если карта проситана, выводим данные в HEX или считываем номер
    if(wg.available())
	{
        long unsigned int code = wg.getCode();
	Serial.print("Wiegand HEX = ");
	Serial.print(wg.getCode(),HEX);
	Serial.print(", DECIMAL = ");
	Serial.print(code);
	Serial.print(", Type W");
	Serial.println(wg.getWiegandType());    
    }
}

Я немного изменил скетч, присвоив переменной code с типом long unsigned int значение wg.getCode()

Результат в мониторе порта будет такой:

Wiegand HEX = 55D4A8, DECIMAL = 5625000, Type W26
Wiegand HEX = 55D4A8, DECIMAL = 5625000, Type W26

Комментарии: 0


ОтменитьДобавить комментарий