Помогите пожалуйста подключить сканер отпечатков GTM-5110c31
- Войдите на сайт для отправки комментариев
Пт, 19/06/2015 - 21:06
Здравствуйте, купил недавно модуль GTM-5110c31 для сканирования отпечатков пальцев с внутренней памятью. Но уже какой день не могу его настроить, он работает через uart, пробовал настраивать arduino как мост uart->USB и для PC есть демо программа для этого модуля, всё работает, но что бы Arduino работала сама с этим модулем как не получается.
Есть документация:
Пробовал уже отслеживать данные от этой программ на PC, вроде как разобрался как нужно отправлять данные (12 байт):
1: 0x55
2: 0xAA
3: 0x01 (id устройства 2-а байта по умолчанию - это 1)
4: 0x00
5:0x01 (Опции 4-е байта (для включения модуля - это 1))
6: 0x00
7: 0x00
8: 0x00
9: 0x01 (Команда 2-а байта (для включения модуля - это 1))
10: 0x00
11: 0x02(контрольная сумма 2-а байта)
12: 0x01
Но как бы я не старался ,не разу не получил ответа от модуля (он должен прийти в случаи правельно команды я так понимаю)
Пробовал отправлять эти данные с помощью бибилиотеке SoftwareSerial, возможно это нужно делать по другому?
Вот пример моей программы:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 9); // RX, TX
byte buf[12] = {0x55, 0xAA, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x01};
byte buf2[12] = {0x55, 0xAA, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x13, 0x01};
void setup() {
mySerial.begin(9600);
Serial.begin(9600);
delay(500);
mySerial.write(buf2,12);
delay(500);
mySerial.write(buf,12);
}
void loop() {
if(mySerial.available()){
Serial.write(mySerial.read());
}
}
buf - это команда включения
buf2 - это команда включить подсветку ,если я правильно разобрался
Вот тут есть ещё одна документация, описание и тестовая программа:
Помогите новичку разобраться в этом, буду очень благодарен.
Разобрался сам, есть библиотека для работы с ним
https://github.com/oopsmonk/arduino-finger-dev
Вот пример кода:
#include <SoftwareSerial.h> #include <gtm5110.h> #include <gtm5110_proto.h> SoftwareSerial gswSerial(10, 9); int ind; void setup() { Serial.begin(9600); gswSerial.begin(9600); delay(500); gtm_get_serial(&gswSerial); gtm_open(); delay(100); } void loop() { ind = OnIdentify(10000); if(ind >= 0) { Serial.print("You ID: "); Serial.println(ind); } else if(ind == -500) { Serial.println("TimeOut"); } else if(ind == -400) { Serial.println("You not DB"); } }