Пытаюсь применить в электронном замке на входную дверь.
Блоков я так понял никто не делал для ФлПрога.
Материалы для создания блока использую отсюда :
Сканер отпечатков пальцев
и
Контроль доступа по отпечатку пальца
Подходить решил поэтапно - сначала подключить сканер и выводить информацию на дисплей о его нахождении или отсутствии при обрыве контакта(или неисправности сканера).
Протестировал такой скетч, работает:
Код: Выделить всё
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
#include <Adafruit_Fingerprint.h>
LiquidCrystal _lcd1(8, 9, 4, 5, 6, 7);
int _dispTempLength1=0;
boolean _isNeedClearDisp1;
bool ScanS;
String ScanS_txt;
bool FoundS;
String FoundS_txt;
String PleaseFinger;
bool NotfoundS;
String NotfoundS_txt;
byte N_ID;
//SoftwareSerial mySerial(2, 3); // объявляем объект mySerial для работы с библиотекой SoftwareSerial ИМЯ_ОБЪЕКТА( RX, TX ); // Можно указывать любые выводы, поддерживающие прерывание PCINTx
SoftwareSerial mySerial( 2, 3); // объявляем объект mySerial для работы с библиотекой SoftwareSerial ИМЯ_ОБЪЕКТА( RX, TX ); // Можно указывать любые выводы, поддерживающие прерывание PCINTx
Adafruit_Fingerprint finger= Adafruit_Fingerprint(&mySerial); // объявляем объект finger для работы с библиотекой Adafruit_Fingerprint ИМЯ_ОБЪЕКТА = Adafruit_Fingerprint(ПАРАМЕТР);
// ПАРАМЕТР - ссылка на объект для работы с UART к которому подключен модуль, например: &Serial1
int _disp1oldLength = 0;
int _disp3oldLength = 0;
void setup()
{
pinMode(13, OUTPUT);
_lcd1.begin(16, 2);
_lcd1.clear(); // стираем информацию с дисплея
_lcd1.setCursor(0, 0); _lcd1.print("iArduino.ru"); // выводим текст "iArduino.ru"
delay(500); // обязательная задержка перед инициализацией модуля отпечатков пальцев
finger.begin(57600); // инициируем модуль отпечатков пальцев, с подключением через программный UART на скорости 57600 (скорость модуля по умолчанию)
_lcd1.clear(); // стираем информацию с дисплея
_lcd1.setCursor(0, 0); _lcd1.print(F("Scan sensor...")); // выводим текст "Scan sensor..."
_lcd1.setCursor(0, 1); // устанавливаем курсор в позицию: 0 столбец, 1 строка
if(finger.verifyPassword()){_lcd1.print("Found sensor");} // если модуль отпечатков обнаружен, выводим сообщение "сенсор обнаружен"
else {_lcd1.print("Sensor not found"); while(1);} // если модуль отпечатков не обнаружен, выводим сообщение "сенсор не обнаружен" и входим в бесконечный цикл: while(1);
delay(1000); // необязательная задержка, чтоб можно было прочитать сообщение об обнаружении модуля
}
void loop() {
// put your main code here, to run repeatedly:
}
Хотел получать текстовые сообщения с выхода ПБ "ScanS" уровни 0 или 1, а с другого выхода "ScanS_txt" текстовое сообщение. Что то не получается.
Если в коде закомментировать " while(1);" тогда при отключенном сканере выводится "ScanS" уровнь 1, а с выхода "Scan_txt" текстовое сообщение.
Если раскомментировать " while(1);" перестает выводить .
Гуру подскажите или поправьте блок плиз.
Скачать проект с блоком отсюда