Код датчика отпечатков пальцев некорректно работает с LCD дисплеем 16x2
Я делаю датчик отпечатков пальцев, который работает с ЖК-дисплеем 16x2. Код работает правильно для датчика отпечатков пальцев, но когда я ввожу ЖК-код, ЖК-дисплей работает, но отпечаток пальца перестает работать.
Я использую Arduino Uno и датчик отпечатков пальцев Adafruit. Как отпечаток пальца, так и ЖК-дисплей подключены правильно и работают отдельно. Я зарегистрировал и протестировал отпечатки пальцев, и это работало отлично, пока я не добавил ЖК-код.
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int getFingerprintIDez();
// контакт №2 подключен от датчика (ЗЕЛЕНЫЙ провод)
// вывод № 3 отсутствует в arduino (БЕЛЫЙ провод)
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup() {
// настройка количества столбцов и строк на ЖК-дисплее:
lcd.begin(16, 2);
// Выведите сообщение на ЖК-дисплей.
lcd.print("hello, world!");
Serial.begin(9600);
Serial.println("fingertest");
// установите скорость передачи данных для последовательного порта датчика
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1);
}
Serial.println("Waiting for valid finger...");
}
void loop() {
getFingerprintIDez();
}
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println("No finger detected");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
return p;
default:
Serial.println("Unknown error");
return p;
}
// Хорошо, успехов!
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
// Хорошо преобразовано!
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
Serial.println("Found a print match!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println("Did not find a match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
// нашел совпадение!
Serial.print("Found ID #");
Serial.print(finger.fingerID);
Serial.print(" with confidence of ");
Serial.println(finger.confidence);
}
// возвращает -1 в случае сбоя, в противном случае возвращает идентификатор #
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;
// нашел совпадение!
Serial.print("Found ID #");
Serial.println(finger.fingerID);
Serial.print("This Finger print related to : ");
switch(finger.fingerID){
case 0:
Serial.println("Subhy Mesmar");
break;
case 1 :
Serial.println("Amjad Mesmar");
break;
}
return finger.fingerID;
}
На этом изображении датчик отпечатков пальцев работает без ЖК-кода:
И в этом случае ЖК-дисплей работает после добавления кода, но датчик отпечатков пальцев перестал работать:
@Souls Reaper, 👍3
1 ответ
Лучший ответ:
У вас есть контакты 2 и 3, используемые как ЖК-дисплеем, так и программным обеспечением, используемым для датчика отпечатков пальцев.
Используйте разные контакты для одного или другого.
Стоит взглянуть на software serial, чтобы лучше понять, как это работает.
- Я получил ILI9341, и мне не удается использовать какие-либо библиотеки
- Что это за 18 дополнительных портов на adafruit-gfx 2.8 "
- Печать string and integer LCD
- Отправка значения с одного Arduino на другой
- ЖК-дисплей I2C отображает странные символы
- Экран LCD 16*02 I2C показывает только первый напечатанный символ
- Запрограммируйте Arduino Uno как цифровые часы
- Почему Adafruit motor shield не крутит моторы?
безопасно ли использовать разные контакты для датчика отпечатков пальцев? , Не приведет ли смена контактов 2,3 к повреждению датчика?Пожалуйста , посоветуйте ., @Souls Reaper
Да, это должно быть безопасно., @Mark Smith