<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
		<id>https://wiki.tntu.edu.ua/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D1%81%D0%BA%D0%B0%D0%BD%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%B2%D1%96%D0%B4%D0%B1%D0%B8%D1%82%D0%BA%D1%96%D0%B2</id>
		<title>Модуль сканування відбитків - Історія редагувань</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.tntu.edu.ua/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D1%81%D0%BA%D0%B0%D0%BD%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%B2%D1%96%D0%B4%D0%B1%D0%B8%D1%82%D0%BA%D1%96%D0%B2"/>
		<link rel="alternate" type="text/html" href="https://wiki.tntu.edu.ua/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D1%81%D0%BA%D0%B0%D0%BD%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%B2%D1%96%D0%B4%D0%B1%D0%B8%D1%82%D0%BA%D1%96%D0%B2&amp;action=history"/>
		<updated>2026-04-21T12:31:24Z</updated>
		<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.tntu.edu.ua/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D1%81%D0%BA%D0%B0%D0%BD%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%B2%D1%96%D0%B4%D0%B1%D0%B8%D1%82%D0%BA%D1%96%D0%B2&amp;diff=23063&amp;oldid=prev</id>
		<title>Анатолій Шайкін: Створена сторінка: == Опис ==  Цей оптичний датчик відбитків пальців здійснює додавання, виявлення і перевір...</title>
		<link rel="alternate" type="text/html" href="https://wiki.tntu.edu.ua/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D1%81%D0%BA%D0%B0%D0%BD%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%B2%D1%96%D0%B4%D0%B1%D0%B8%D1%82%D0%BA%D1%96%D0%B2&amp;diff=23063&amp;oldid=prev"/>
				<updated>2017-06-07T11:15:56Z</updated>
		
		<summary type="html">&lt;p&gt;Створена сторінка: == Опис ==  Цей оптичний датчик відбитків пальців здійснює додавання, виявлення і перевір...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Опис ==&lt;br /&gt;
&lt;br /&gt;
Цей оптичний датчик відбитків пальців здійснює додавання, виявлення і перевірку відбитків пальців максимально просто. Цей модуль, як правило, використовується в сейфах - є високо потужний чіп DSP AS601, що робить рендеринг зображення, обчислення, функції по встановленню фактів і пошук. Підключається до будь-якого микроконтроллеру або системи з TTL послідовно, і передає пакети даних, щоб зробити фотографії, виявити відбитки, хеш і пошук. Ви можете також зареєструвати нові відбитки пальців. До 120 відбитків пальців можуть бути збережені у вбудованій флеш-пам'яті. Сканування відбитків дуже просте у використанні з послідовним UART. Існує вже кілька бібліотек, щоб допомогти вашій роботі з цим датчиком з Arduino, такі як бібліотека Adafruit відбитків пальців. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Fingerprint Sensor.jpg |400px]]&lt;br /&gt;
&lt;br /&gt;
== Особливості ==&lt;br /&gt;
* Зв'язок: UART(TTL)&lt;br /&gt;
* Кількість відбитків пальців: 120 за замовчуванням&lt;br /&gt;
* Можна встановити рівень безпеки і швидкість передачі даних&lt;br /&gt;
* Робочий струм @ напруга: &amp;lt;120mA@DC3.6~6V&lt;br /&gt;
* Температура: -20 - +50 градусів&lt;br /&gt;
* Вологість: &amp;lt;85%&lt;br /&gt;
* Розмір: 56x20x21.5мм&lt;br /&gt;
&lt;br /&gt;
== Використання ==&lt;br /&gt;
=== Реєстрація нових користувачів з ОС Windows ===&lt;br /&gt;
1.З'єднання апаратних засобів &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Fingerprint Sensor hardware.jpg |600px]]&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Зкопіюйте код нижче у ваш новий запис, а потім завантажити його.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Red connects to +5V&lt;br /&gt;
// Black connects to Ground&lt;br /&gt;
// White goes to Digital 0&lt;br /&gt;
// Green goes to Digital 1&lt;br /&gt;
 &lt;br /&gt;
void setup() {}&lt;br /&gt;
void loop() {}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.Завантажте SFGDemoV2.0: [http://www.elecrow.com/wiki/index.php?title=File:SFGDemoV2.0.zip SFGDemoV2.0] &amp;lt;br&amp;gt;&lt;br /&gt;
Запустіть програмне забезпечення SFGDemo і натисніть кнопку Open Device з нижнього лівого кута. Виберіть COM-порт, який використовує Arduino. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:SFGDemoV2.01.jpg |600px]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.Та натисніть OK, коли закінчите. Ви повинні побачити повідомлення успішної операції синього кольору і деякі статистичні дані пристроїв в правому нижньому куті. Ви можете змінити швидкість передачі даних в лівому нижньому куті, а також «рівень безпеки» (наскільки чутливим він є), але рекомендовано залишити їх  без змін, щоб усе працювало правильно, крім змін з метю експерименту. За замовчуванням вони встановлені в 57600 бод і рівень безпеки 3, таким чином їх можна змінити, якщо вони помилкові. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:SFGDemoV2.02.jpg |600px]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.Зареєструємо новий палець. Натисніть прапорець Preview і натисніть кнопку Enroll поруч з ним (Con Enroll означає «Continuous» Enroll, яку можна використати, якщо реєструється багато пальців). Коли з'являється вікно, введіть в ID # яке буде використовуватись. Можна використовувати до 162 ідентифікаційних номерів. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:SFGDemoV2.03.jpg |600px]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6.Програма попросить покласти палець на датчик. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:SFGDemoV2.04.jpg |600px]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7.Можливо здійснити попередній перегляд (якщо включити прапорець preview checkbox) відбитків пальців. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл: SFGDemoV2.05.jpg |600px]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Потім необхідно повторити процедуру, щоб отримати чисте зображення відбитків. Сканується один і той же палець. &amp;lt;br&amp;gt;&lt;br /&gt;
У разі успіху надійде повідомлення. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл: SFGDemoV2.06.jpg |600px]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Якщо виникла проблема поганого сканування зображення, необхідно повторити процедуру. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пошук за допомогою програмного забезпечення ===&lt;br /&gt;
1.Натиснути на кнопку Search на правій стороні. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл: SFGDemoV2.07.jpg |600px]] &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Якщо прийде запит, натисніть тим чи іншим пальцем на датчик. &amp;lt;br&amp;gt;&lt;br /&gt;
Якщо це той же палець, прийде повідомлення з ID # &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл: SFGDemoV2.08.jpg |600px]] &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Якщо це не палець з бази даних, прийде повідомлення відмови. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:SFGDemoV2.09.jpg |600px]] &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Проводка для використання з Arduino ===&lt;br /&gt;
1.З'єднання апаратних засобів &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:Fingerprint Sensor hardware2.jpg |600px]]&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Завантажте бібліотеку Fingerprint Sensor library: http://www.elecrow.com/wiki/index.php?title=File:Adafruit_Fingerprint.zip Fingerprint Sensor library] Розпакуйте її в бібліотеки файлів Arduino IDE шляхом: ..\arduino-1.0.1\libraries.&lt;br /&gt;
&lt;br /&gt;
3.Відкрити код безпосередньо з: File -&amp;gt; Example -&amp;gt;Adafruit_Fingerprint→fingerprint &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_Fingerprint.h&amp;gt;&lt;br /&gt;
#include &amp;lt;SoftwareSerial.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int getFingerprintIDez();&lt;br /&gt;
&lt;br /&gt;
// pin #2 is IN from sensor (GREEN wire)&lt;br /&gt;
// pin #3 is OUT from arduino  (WHITE wire)&lt;br /&gt;
SoftwareSerial mySerial(2, 3);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&amp;amp;mySerial);&lt;br /&gt;
&lt;br /&gt;
void setup()  &lt;br /&gt;
{&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  Serial.println(&amp;quot;fingertest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  // set the data rate for the sensor serial port&lt;br /&gt;
  finger.begin(57600);&lt;br /&gt;
  &lt;br /&gt;
  if (finger.verifyPassword()) {&lt;br /&gt;
    Serial.println(&amp;quot;Found fingerprint sensor!&amp;quot;);&lt;br /&gt;
  } else {&lt;br /&gt;
    Serial.println(&amp;quot;Did not find fingerprint sensor :(&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println(&amp;quot;Waiting for valid finger...&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()                     // run over and over again&lt;br /&gt;
{&lt;br /&gt;
  getFingerprintIDez();&lt;br /&gt;
  delay(50);            //don't ned to run this at full speed.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t getFingerprintID() {&lt;br /&gt;
  uint8_t p = finger.getImage();&lt;br /&gt;
  switch (p) {&lt;br /&gt;
    case FINGERPRINT_OK:&lt;br /&gt;
      Serial.println(&amp;quot;Image taken&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_NOFINGER:&lt;br /&gt;
      Serial.println(&amp;quot;No finger detected&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_PACKETRECIEVEERR:&lt;br /&gt;
      Serial.println(&amp;quot;Communication error&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_IMAGEFAIL:&lt;br /&gt;
      Serial.println(&amp;quot;Imaging error&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    default:&lt;br /&gt;
      Serial.println(&amp;quot;Unknown error&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // OK success!&lt;br /&gt;
&lt;br /&gt;
  p = finger.image2Tz();&lt;br /&gt;
  switch (p) {&lt;br /&gt;
    case FINGERPRINT_OK:&lt;br /&gt;
      Serial.println(&amp;quot;Image converted&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_IMAGEMESS:&lt;br /&gt;
      Serial.println(&amp;quot;Image too messy&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_PACKETRECIEVEERR:&lt;br /&gt;
      Serial.println(&amp;quot;Communication error&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_FEATUREFAIL:&lt;br /&gt;
      Serial.println(&amp;quot;Could not find fingerprint features&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_INVALIDIMAGE:&lt;br /&gt;
      Serial.println(&amp;quot;Could not find fingerprint features&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    default:&lt;br /&gt;
      Serial.println(&amp;quot;Unknown error&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // OK converted!&lt;br /&gt;
  p = finger.fingerFastSearch();&lt;br /&gt;
  if (p == FINGERPRINT_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Found a print match!&amp;quot;);&lt;br /&gt;
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {&lt;br /&gt;
    Serial.println(&amp;quot;Communication error&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  } else if (p == FINGERPRINT_NOTFOUND) {&lt;br /&gt;
    Serial.println(&amp;quot;Did not find a match&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  } else {&lt;br /&gt;
    Serial.println(&amp;quot;Unknown error&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  }   &lt;br /&gt;
  &lt;br /&gt;
  // found a match!&lt;br /&gt;
  Serial.print(&amp;quot;Found ID #&amp;quot;); Serial.print(finger.fingerID); &lt;br /&gt;
  Serial.print(&amp;quot; with confidence of &amp;quot;); Serial.println(finger.confidence); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// returns -1 if failed, otherwise returns ID #&lt;br /&gt;
int getFingerprintIDez() {&lt;br /&gt;
  uint8_t p = finger.getImage();&lt;br /&gt;
  if (p != FINGERPRINT_OK)  return -1;&lt;br /&gt;
&lt;br /&gt;
  p = finger.image2Tz();&lt;br /&gt;
  if (p != FINGERPRINT_OK)  return -1;&lt;br /&gt;
&lt;br /&gt;
  p = finger.fingerFastSearch();&lt;br /&gt;
  if (p != FINGERPRINT_OK)  return -1;&lt;br /&gt;
  &lt;br /&gt;
  // found a match!&lt;br /&gt;
  Serial.print(&amp;quot;Found ID #&amp;quot;); Serial.print(finger.fingerID); &lt;br /&gt;
  Serial.print(&amp;quot; with confidence of &amp;quot;); Serial.println(finger.confidence);&lt;br /&gt;
  return finger.fingerID; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.Завантажити код. Відкрийте монітор послідовного порту зі швидкістю 9600 бод і, коли буде запропоновано, розмістити свій палець на датчику, який вже був зарахований. &amp;lt;br&amp;gt;&lt;br /&gt;
Відбудеться наступне:&lt;br /&gt;
&lt;br /&gt;
[[Файл: SFGDemoV2.010.jpg | 600px]] &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Реєстрація з Arduino ===&lt;br /&gt;
1.З'єднання апаратних засобів &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Fingerprint Sensor hardware2.jpg |600px]]&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Завантажте бібліотеку Fingerprint Sensor library: [http://www.elecrow.com/wiki/index.php?title=File:Adafruit_Fingerprint.zip Fingerprint Sensor library] Розпакуйте її в бібліотеки файлів Arduino IDE шляхом: ..\arduino-1.0.1\libraries.&lt;br /&gt;
&lt;br /&gt;
3.Відкрити код безпосередньо з: File -&amp;gt; Example -&amp;gt;Adafruit_Fingerprint→enroll&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_Fingerprint.h&amp;gt;&lt;br /&gt;
#include &amp;lt;SoftwareSerial.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uint8_t getFingerprintEnroll(int id);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// pin #2 is IN from sensor (GREEN wire)&lt;br /&gt;
// pin #3 is OUT from arduino  (WHITE wire)&lt;br /&gt;
SoftwareSerial mySerial(2, 3);&lt;br /&gt;
&lt;br /&gt;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&amp;amp;mySerial);&lt;br /&gt;
&lt;br /&gt;
void setup()  &lt;br /&gt;
{&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  Serial.println(&amp;quot;fingertest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  // set the data rate for the sensor serial port&lt;br /&gt;
  finger.begin(57600);&lt;br /&gt;
  &lt;br /&gt;
  if (finger.verifyPassword()) {&lt;br /&gt;
    Serial.println(&amp;quot;Found fingerprint sensor!&amp;quot;);&lt;br /&gt;
  } else {&lt;br /&gt;
    Serial.println(&amp;quot;Did not find fingerprint sensor :(&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()                     // run over and over again&lt;br /&gt;
{&lt;br /&gt;
  Serial.println(&amp;quot;Type in the ID # you want to save this finger as...&amp;quot;);&lt;br /&gt;
  int id = 0;&lt;br /&gt;
  while (true) {&lt;br /&gt;
    while (! Serial.available());&lt;br /&gt;
    char c = Serial.read();&lt;br /&gt;
    if (! isdigit(c)) break;&lt;br /&gt;
    id *= 10;&lt;br /&gt;
    id += c - '0';&lt;br /&gt;
  }&lt;br /&gt;
  Serial.print(&amp;quot;Enrolling ID #&amp;quot;);&lt;br /&gt;
  Serial.println(id);&lt;br /&gt;
  &lt;br /&gt;
  while (!  getFingerprintEnroll(id) );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t getFingerprintEnroll(int id) {&lt;br /&gt;
  int p = -1;&lt;br /&gt;
  Serial.println(&amp;quot;Waiting for valid finger to enroll&amp;quot;);&lt;br /&gt;
  while (p != FINGERPRINT_OK) {&lt;br /&gt;
    p = finger.getImage();&lt;br /&gt;
    switch (p) {&lt;br /&gt;
    case FINGERPRINT_OK:&lt;br /&gt;
      Serial.println(&amp;quot;Image taken&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_NOFINGER:&lt;br /&gt;
      Serial.println(&amp;quot;.&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_PACKETRECIEVEERR:&lt;br /&gt;
      Serial.println(&amp;quot;Communication error&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_IMAGEFAIL:&lt;br /&gt;
      Serial.println(&amp;quot;Imaging error&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      Serial.println(&amp;quot;Unknown error&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // OK success!&lt;br /&gt;
&lt;br /&gt;
  p = finger.image2Tz(1);&lt;br /&gt;
  switch (p) {&lt;br /&gt;
    case FINGERPRINT_OK:&lt;br /&gt;
      Serial.println(&amp;quot;Image converted&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_IMAGEMESS:&lt;br /&gt;
      Serial.println(&amp;quot;Image too messy&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_PACKETRECIEVEERR:&lt;br /&gt;
      Serial.println(&amp;quot;Communication error&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_FEATUREFAIL:&lt;br /&gt;
      Serial.println(&amp;quot;Could not find fingerprint features&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_INVALIDIMAGE:&lt;br /&gt;
      Serial.println(&amp;quot;Could not find fingerprint features&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    default:&lt;br /&gt;
      Serial.println(&amp;quot;Unknown error&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  Serial.println(&amp;quot;Remove finger&amp;quot;);&lt;br /&gt;
  delay(2000);&lt;br /&gt;
  p = 0;&lt;br /&gt;
  while (p != FINGERPRINT_NOFINGER) {&lt;br /&gt;
    p = finger.getImage();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  p = -1;&lt;br /&gt;
  Serial.println(&amp;quot;Place same finger again&amp;quot;);&lt;br /&gt;
  while (p != FINGERPRINT_OK) {&lt;br /&gt;
    p = finger.getImage();&lt;br /&gt;
    switch (p) {&lt;br /&gt;
    case FINGERPRINT_OK:&lt;br /&gt;
      Serial.println(&amp;quot;Image taken&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_NOFINGER:&lt;br /&gt;
      Serial.print(&amp;quot;.&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_PACKETRECIEVEERR:&lt;br /&gt;
      Serial.println(&amp;quot;Communication error&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_IMAGEFAIL:&lt;br /&gt;
      Serial.println(&amp;quot;Imaging error&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    default:&lt;br /&gt;
      Serial.println(&amp;quot;Unknown error&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // OK success!&lt;br /&gt;
&lt;br /&gt;
  p = finger.image2Tz(2);&lt;br /&gt;
  switch (p) {&lt;br /&gt;
    case FINGERPRINT_OK:&lt;br /&gt;
      Serial.println(&amp;quot;Image converted&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
    case FINGERPRINT_IMAGEMESS:&lt;br /&gt;
      Serial.println(&amp;quot;Image too messy&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_PACKETRECIEVEERR:&lt;br /&gt;
      Serial.println(&amp;quot;Communication error&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_FEATUREFAIL:&lt;br /&gt;
      Serial.println(&amp;quot;Could not find fingerprint features&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    case FINGERPRINT_INVALIDIMAGE:&lt;br /&gt;
      Serial.println(&amp;quot;Could not find fingerprint features&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
    default:&lt;br /&gt;
      Serial.println(&amp;quot;Unknown error&amp;quot;);&lt;br /&gt;
      return p;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  // OK converted!&lt;br /&gt;
  p = finger.createModel();&lt;br /&gt;
  if (p == FINGERPRINT_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Prints matched!&amp;quot;);&lt;br /&gt;
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {&lt;br /&gt;
    Serial.println(&amp;quot;Communication error&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  } else if (p == FINGERPRINT_ENROLLMISMATCH) {&lt;br /&gt;
    Serial.println(&amp;quot;Fingerprints did not match&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  } else {&lt;br /&gt;
    Serial.println(&amp;quot;Unknown error&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  }   &lt;br /&gt;
  &lt;br /&gt;
  Serial.print(&amp;quot;ID &amp;quot;); Serial.println(id);&lt;br /&gt;
  p = finger.storeModel(id);&lt;br /&gt;
  if (p == FINGERPRINT_OK) {&lt;br /&gt;
    Serial.println(&amp;quot;Stored!&amp;quot;);&lt;br /&gt;
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {&lt;br /&gt;
    Serial.println(&amp;quot;Communication error&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  } else if (p == FINGERPRINT_BADLOCATION) {&lt;br /&gt;
    Serial.println(&amp;quot;Could not store in that location&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  } else if (p == FINGERPRINT_FLASHERR) {&lt;br /&gt;
    Serial.println(&amp;quot;Error writing to flash&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  } else {&lt;br /&gt;
    Serial.println(&amp;quot;Unknown error&amp;quot;);&lt;br /&gt;
    return p;&lt;br /&gt;
  }   &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.Завантажити код. Відкрийте монітор послідовного порту, він попросить вас ввести ID для реєстрації - використати верхнє поле, ввести номер і натиснути кнопку Send &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:SFGDemoV2.011.jpg | 600px]] &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.Потім пройти процес реєстрації, як зазначено. Коли він успішно зареєструє палець, він висвітить Stored!, тобто збережено. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл: SFGDemoV2.012.jpg | 600px]] &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Посилання ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.elecrow.com/wiki/index.php?title=File:Adafruit_Fingerprint.zip Fingerprint library]&lt;br /&gt;
*[http://www.elecrow.com/wiki/index.php?title=File:SFGDemoV2.0.zip SFGDemoV2.0]&lt;br /&gt;
*[http://www.elecrow.com/wiki/index.php?title=File:DY001fingerprint.pdf Datasheet]&lt;/div&gt;</summary>
		<author><name>Анатолій Шайкін</name></author>	</entry>

	</feed>