Помоги разобраться в скетче.На Arduino Uno. Я столкнулася с такой проблеймой exit status 1 Arduino Uno

Николь
Offline
Зарегистрирован: 11.03.2020

Я столкнулася с такой проблеймой exit status 1 Arduino Uno. Все библиотеки скачала, прибор собрала верна соберала с этого сайта и взяла скетч а там такая ошибочка. Сылка на сайт  https://usamodelkina.ru/11809-skaner-otpechatkov-palcev-upravlenie-jelektrozamkom.html . Помогите разобраться буду очень благодарна))) Скетч тут 

#include <Adafruit_Fingerprint.h>

/***************************************************
  This is a library for our optical Fingerprint sensor

  Designed specifically to work with the Adafruit Fingerprint sensor
  ----> http://www.adafruit.com/products/751

  These displays use TTL Serial to communicate, 2 pins are required to
  interface
  Adafruit invests time and resources providing this open source code,
  please support Adafruit and open-source hardware by purchasing
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.
  BSD license, all text above must be included in any redistribution
 ****************************************************/

#include "Adafruit_Fingerprint.h"
#if defined(__AVR__) || defined(ESP8266)
#include <SoftwareSerial.h>
#endif

//#define FINGERPRINT_DEBUG

#if ARDUINO >= 100
#define SERIAL_WRITE(...) mySerial->write(__VA_ARGS__)
#else
#define SERIAL_WRITE(...) mySerial->write(__VA_ARGS__, BYTE)
#endif

#define SERIAL_WRITE_U16(v) SERIAL_WRITE((uint8_t)(v>>8)); SERIAL_WRITE((uint8_t)(v & 0xFF));

#define GET_CMD_PACKET(...) \
  uint8_t data[] = {__VA_ARGS__}; \
  Adafruit_Fingerprint_Packet packet(FINGERPRINT_COMMANDPACKET, sizeof(data), data); \
  writeStructuredPacket(packet); \
  if (getStructuredPacket(&packet) != FINGERPRINT_OK) return FINGERPRINT_PACKETRECIEVEERR; \
  if (packet.type != FINGERPRINT_ACKPACKET) return FINGERPRINT_PACKETRECIEVEERR;

#define SEND_CMD_PACKET(...) GET_CMD_PACKET(__VA_ARGS__); return packet.data[0];

/***************************************************************************
  PUBLIC FUNCTIONS
 ***************************************************************************/


#if defined(__AVR__) || defined(ESP8266)
/**************************************************************************/
/*!
    @brief  Instantiates sensor with Software Serial
    @param  ss Pointer to SoftwareSerial object
    @param  password 32-bit integer password (default is 0)
*/
/**************************************************************************/
Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial *ss, uint32_t password) {
  thePassword = password;
  theAddress = 0xFFFFFFFF;

  hwSerial = NULL;
  swSerial = ss;
  mySerial = swSerial;
}
#endif

/**************************************************************************/
/*!
    @brief  Instantiates sensor with Hardware Serial
    @param  hs Pointer to HardwareSerial object
    @param  password 32-bit integer password (default is 0)

*/
/**************************************************************************/
Adafruit_Fingerprint::Adafruit_Fingerprint(HardwareSerial *hs, uint32_t password) {
  thePassword = password;
  theAddress = 0xFFFFFFFF;

#if defined(__AVR__) || defined(ESP8266)
  swSerial = NULL;
#endif
  hwSerial = hs;
  mySerial = hwSerial;
}

/**************************************************************************/
/*!
    @brief  Initializes serial interface and baud rate
    @param  baudrate Sensor's UART baud rate (usually 57600, 9600 or 115200)
*/
/**************************************************************************/
void Adafruit_Fingerprint::begin(uint32_t baudrate) {
  delay(1000);  // one second delay to let the sensor 'boot up'

  if (hwSerial) hwSerial->begin(baudrate);
#if defined(__AVR__) || defined(ESP8266)
  if (swSerial) swSerial->begin(baudrate);
#endif
}

/**************************************************************************/
/*!
    @brief  Verifies the sensors' access password (default password is 0x0000000). A good way to also check if the sensors is active and responding
    @returns True if password is correct
*/
/**************************************************************************/
boolean Adafruit_Fingerprint::verifyPassword(void) {
  return checkPassword() == FINGERPRINT_OK;
}

uint8_t Adafruit_Fingerprint::checkPassword(void) {
  GET_CMD_PACKET(FINGERPRINT_VERIFYPASSWORD,
                 (uint8_t)(thePassword >> 24), (uint8_t)(thePassword >> 16),
                 (uint8_t)(thePassword >> 8), (uint8_t)(thePassword & 0xFF));
  if (packet.data[0] == FINGERPRINT_OK)
    return FINGERPRINT_OK;
  else
    return FINGERPRINT_PACKETRECIEVEERR;
}

/**************************************************************************/
/*!
    @brief   Ask the sensor to take an image of the finger pressed on surface
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_NOFINGER</code> if no finger detected
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
    @returns <code>FINGERPRINT_IMAGEFAIL</code> on imaging error
*/
/**************************************************************************/
uint8_t Adafruit_Fingerprint::getImage(void) {
  SEND_CMD_PACKET(FINGERPRINT_GETIMAGE);
}

/**************************************************************************/
/*!
    @brief   Ask the sensor to convert image to feature template
    @param slot Location to place feature template (put one in 1 and another in 2 for verification to create model)
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_IMAGEMESS</code> if image is too messy
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
    @returns <code>FINGERPRINT_FEATUREFAIL</code> on failure to identify fingerprint features
    @returns <code>FINGERPRINT_INVALIDIMAGE</code> on failure to identify fingerprint features
*/
uint8_t Adafruit_Fingerprint::image2Tz(uint8_t slot) {
  SEND_CMD_PACKET(FINGERPRINT_IMAGE2TZ, slot);
}

/**************************************************************************/
/*!
    @brief   Ask the sensor to take two print feature template and create a model
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
    @returns <code>FINGERPRINT_ENROLLMISMATCH</code> on mismatch of fingerprints
*/
uint8_t Adafruit_Fingerprint::createModel(void) {
  SEND_CMD_PACKET(FINGERPRINT_REGMODEL);
}


/**************************************************************************/
/*!
    @brief   Ask the sensor to store the calculated model for later matching
    @param   location The model location #
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_BADLOCATION</code> if the location is invalid
    @returns <code>FINGERPRINT_FLASHERR</code> if the model couldn't be written to flash memory
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
*/
uint8_t Adafruit_Fingerprint::storeModel(uint16_t location) {
  SEND_CMD_PACKET(FINGERPRINT_STORE, 0x01, (uint8_t)(location >> 8), (uint8_t)(location & 0xFF));
}

/**************************************************************************/
/*!
    @brief   Ask the sensor to load a fingerprint model from flash into buffer 1
    @param   location The model location #
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_BADLOCATION</code> if the location is invalid
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
*/
uint8_t Adafruit_Fingerprint::loadModel(uint16_t location) {
  SEND_CMD_PACKET(FINGERPRINT_LOAD, 0x01, (uint8_t)(location >> 8), (uint8_t)(location & 0xFF));
}

/**************************************************************************/
/*!
    @brief   Ask the sensor to transfer 256-byte fingerprint template from the buffer to the UART
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
*/
uint8_t Adafruit_Fingerprint::getModel(void) {
  SEND_CMD_PACKET(FINGERPRINT_UPLOAD, 0x01);
}

/**************************************************************************/
/*!
    @brief   Ask the sensor to delete a model in memory
    @param   location The model location #
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_BADLOCATION</code> if the location is invalid
    @returns <code>FINGERPRINT_FLASHERR</code> if the model couldn't be written to flash memory
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
*/
uint8_t Adafruit_Fingerprint::deleteModel(uint16_t location) {
  SEND_CMD_PACKET(FINGERPRINT_DELETE, (uint8_t)(location >> 8), (uint8_t)(location & 0xFF), 0x00, 0x01);
}

/**************************************************************************/
/*!
    @brief   Ask the sensor to delete ALL models in memory
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_BADLOCATION</code> if the location is invalid
    @returns <code>FINGERPRINT_FLASHERR</code> if the model couldn't be written to flash memory
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
*/
uint8_t Adafruit_Fingerprint::emptyDatabase(void) {
  SEND_CMD_PACKET(FINGERPRINT_EMPTY);
}

/**************************************************************************/
/*!
    @brief   Ask the sensor to search the current slot 1 fingerprint features to match saved templates. The matching location is stored in <b>fingerID</b> and the matching confidence in <b>confidence</b>
    @returns <code>FINGERPRINT_OK</code> on fingerprint match success
    @returns <code>FINGERPRINT_NOTFOUND</code> no match made
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
*/
/**************************************************************************/
uint8_t Adafruit_Fingerprint::fingerFastSearch(void) {
  // high speed search of slot #1 starting at page 0x0000 and page #0x00A3
  GET_CMD_PACKET(FINGERPRINT_HISPEEDSEARCH, 0x01, 0x00, 0x00, 0x00, 0xA3);
  fingerID = 0xFFFF;
  confidence = 0xFFFF;

  fingerID = packet.data[1];
  fingerID <<= 8;
  fingerID |= packet.data[2];

  confidence = packet.data[3];
  confidence <<= 8;
  confidence |= packet.data[4];

  return packet.data[0];
}

/**************************************************************************/
/*!
    @brief   Ask the sensor for the number of templates stored in memory. The number is stored in <b>templateCount</b> on success.
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
*/
/**************************************************************************/
uint8_t Adafruit_Fingerprint::getTemplateCount(void) {
  GET_CMD_PACKET(FINGERPRINT_TEMPLATECOUNT);

  templateCount = packet.data[1];
  templateCount <<= 8;
  templateCount |= packet.data[2];

  return packet.data[0];
}

/**************************************************************************/
/*!
    @brief   Set the password on the sensor (future communication will require password verification so don't forget it!!!)
    @param   password 32-bit password code
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_PACKETRECIEVEERR</code> on communication error
*/
/**************************************************************************/
uint8_t Adafruit_Fingerprint::setPassword(uint32_t password) {
  SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
}

/**************************************************************************/
/*!
    @brief   Helper function to process a packet and send it over UART to the sensor
    @param   packet A structure containing the bytes to transmit
*/
/**************************************************************************/

void Adafruit_Fingerprint::writeStructuredPacket(const Adafruit_Fingerprint_Packet & packet) {
  SERIAL_WRITE_U16(packet.start_code);
  SERIAL_WRITE(packet.address[0]);
  SERIAL_WRITE(packet.address[1]);
  SERIAL_WRITE(packet.address[2]);
  SERIAL_WRITE(packet.address[3]);
  SERIAL_WRITE(packet.type);

  uint16_t wire_length = packet.length + 2;
  SERIAL_WRITE_U16(wire_length);

  uint16_t sum = ((wire_length) >> 8) + ((wire_length) & 0xFF) + packet.type;
  for (uint8_t i = 0; i < packet.length; i++) {
    SERIAL_WRITE(packet.data[i]);
    sum += packet.data[i];
  }

  SERIAL_WRITE_U16(sum);
  return;
}

/**************************************************************************/
/*!
    @brief   Helper function to receive data over UART from the sensor and process it into a packet
    @param   packet A structure containing the bytes received
    @param   timeout how many milliseconds we're willing to wait
    @returns <code>FINGERPRINT_OK</code> on success
    @returns <code>FINGERPRINT_TIMEOUT</code> or <code>FINGERPRINT_BADPACKET</code> on failure
*/
/**************************************************************************/
uint8_t Adafruit_Fingerprint::getStructuredPacket(Adafruit_Fingerprint_Packet * packet, uint16_t timeout) {
  uint8_t byte;
  uint16_t idx = 0, timer = 0;

  while (true) {
    while (!mySerial->available()) {
      delay(1);
      timer++;
      if ( timer >= timeout) {
#ifdef FINGERPRINT_DEBUG
        Serial.println("Timed out");
#endif
        return FINGERPRINT_TIMEOUT;
      }
    }
    byte = mySerial->read();
#ifdef FINGERPRINT_DEBUG
    Serial.print("<- 0x"); Serial.println(byte, HEX);
#endif
    switch (idx) {
      case 0:
        if (byte != (FINGERPRINT_STARTCODE >> 8))
          continue;
        packet->start_code = (uint16_t)byte << 8;
        break;
      case 1:
        packet->start_code |= byte;
        if (packet->start_code != FINGERPRINT_STARTCODE)
          return FINGERPRINT_BADPACKET;
        break;
      case 2:
      case 3:
      case 4:
      case 5:
        packet->address[idx - 2] = byte;
        break;
      case 6:
        packet->type = byte;
        break;
      case 7:
        packet->length = (uint16_t)byte << 8;
        break;
      case 8:
        packet->length |= byte;
        break;
      default:
        packet->data[idx - 9] = byte;
        if ((idx - 8) == packet->length)
          return FINGERPRINT_OK;
        break;
    }
    idx++;
  }
  // Shouldn't get here so...
  return FINGERPRINT_BADPACKET;
}

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а сам код ошибки? копипастом

Николь
Offline
Зарегистрирован: 11.03.2020

Вот код ошибки

Николь
Offline
Зарегистрирован: 11.03.2020

Библиотеки все установленые

kalapanga
Offline
Зарегистрирован: 23.10.2016

Николь, Вы первый раз за всё это взялись? В окошке, где написано про "exit status 1" скроллбар видите? Там выше ещё много текста есть. Там написано в каком файле в какой строке и какая именно ошибка найдена. Этот текст вас и просят показать. Только не картинкой, а именно текстом. Чтобы весь его скопировать предназначена специальная кнопка (справа на оранжевой полосе).

И ещё. То что приведено в начальном сообщении - это не скетч. Это какой-то файл библиотеки. Возможно, нужный для работы скетча. Но это не сам скетч. Кстати, по ссылке я скетча тоже не нашёл. Похоже, что автор той статьи забыл его выложить. Так что, сообщение об ошибке ничем не поможет - скетч писать надо!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

мартышка к старости слаба глазами стала )))

"Шахерезада вместо ласки, ему всю ночь рассказывала сказки"... я о том, что в статье выложили не скетч, а библиотеку... )))

Николь
Offline
Зарегистрирован: 11.03.2020

Там целая красная страницаю))) Сможешь ли ты какото помочь со скетчем. Младшему брату я обещала помочь)))

E:\sketch_mar11a\sketch_mar11a.ino: In member function 'uint8_t Adafruit_Fingerprint::setPassword(uint32_t)':
 
E:\sketch_mar11a\sketch_mar11a.ino:270:54: warning: narrowing conversion of '(password >> 24)' from 'uint32_t {aka long unsigned int}' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
                                            ~~~~~~~~~~^~~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:35:21: note: in definition of macro 'GET_CMD_PACKET'
 
   uint8_t data[] = {__VA_ARGS__}; \
 
                     ^~~~~~~~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:270:3: note: in expansion of macro 'SEND_CMD_PACKET'
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
   ^~~~~~~~~~~~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:270:72: warning: narrowing conversion of '(password >> 16)' from 'uint32_t {aka long unsigned int}' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
                                                              ~~~~~~~~~~^~~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:35:21: note: in definition of macro 'GET_CMD_PACKET'
 
   uint8_t data[] = {__VA_ARGS__}; \
 
                     ^~~~~~~~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:270:3: note: in expansion of macro 'SEND_CMD_PACKET'
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
   ^~~~~~~~~~~~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:270:90: warning: narrowing conversion of '(password >> 8)' from 'uint32_t {aka long unsigned int}' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
                                                                                ~~~~~~~~~~^~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:35:21: note: in definition of macro 'GET_CMD_PACKET'
 
   uint8_t data[] = {__VA_ARGS__}; \
 
                     ^~~~~~~~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:270:3: note: in expansion of macro 'SEND_CMD_PACKET'
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
   ^~~~~~~~~~~~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:35:32: warning: narrowing conversion of 'password' from 'uint32_t {aka long unsigned int}' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
 
   uint8_t data[] = {__VA_ARGS__}; \
 
                                ^
 
E:\sketch_mar11a\sketch_mar11a.ino:41:30: note: in expansion of macro 'GET_CMD_PACKET'
 
 #define SEND_CMD_PACKET(...) GET_CMD_PACKET(__VA_ARGS__); return packet.data[0];
 
                              ^~~~~~~~~~~~~~
 
E:\sketch_mar11a\sketch_mar11a.ino:270:3: note: in expansion of macro 'SEND_CMD_PACKET'
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
   ^~~~~~~~~~~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp: In member function 'uint8_t Adafruit_Fingerprint::setPassword(uint32_t)':
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:265:54: warning: narrowing conversion of '(password >> 24)' from 'uint32_t {aka long unsigned int}' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
                                            ~~~~~~~~~~^~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:30:21: note: in definition of macro 'GET_CMD_PACKET'
 
   uint8_t data[] = {__VA_ARGS__}; \
 
                     ^~~~~~~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:265:3: note: in expansion of macro 'SEND_CMD_PACKET'
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
   ^~~~~~~~~~~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:265:72: warning: narrowing conversion of '(password >> 16)' from 'uint32_t {aka long unsigned int}' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
                                                              ~~~~~~~~~~^~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:30:21: note: in definition of macro 'GET_CMD_PACKET'
 
   uint8_t data[] = {__VA_ARGS__}; \
 
                     ^~~~~~~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:265:3: note: in expansion of macro 'SEND_CMD_PACKET'
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
   ^~~~~~~~~~~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:265:90: warning: narrowing conversion of '(password >> 8)' from 'uint32_t {aka long unsigned int}' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
                                                                                ~~~~~~~~~~^~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:30:21: note: in definition of macro 'GET_CMD_PACKET'
 
   uint8_t data[] = {__VA_ARGS__}; \
 
                     ^~~~~~~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:265:3: note: in expansion of macro 'SEND_CMD_PACKET'
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
   ^~~~~~~~~~~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:30:32: warning: narrowing conversion of 'password' from 'uint32_t {aka long unsigned int}' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
 
   uint8_t data[] = {__VA_ARGS__}; \
 
                                ^
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:36:30: note: in expansion of macro 'GET_CMD_PACKET'
 
 #define SEND_CMD_PACKET(...) GET_CMD_PACKET(__VA_ARGS__); return packet.data[0];
 
                              ^~~~~~~~~~~~~~
 
C:\Users\777az\Documents\Arduino\libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp:265:3: note: in expansion of macro 'SEND_CMD_PACKET'
 
   SEND_CMD_PACKET(FINGERPRINT_SETPASSWORD, (password >> 24), (password >> 16), (password >> 8), password);
 
   ^~~~~~~~~~~~~~~
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::Adafruit_Fingerprint(HardwareSerial*, unsigned long)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::Adafruit_Fingerprint(HardwareSerial*, unsigned long)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::begin(unsigned long)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::writeStructuredPacket(Adafruit_Fingerprint_Packet const&)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::getStructuredPacket(Adafruit_Fingerprint_Packet*, unsigned int)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::checkPassword()'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::verifyPassword()'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::getImage()'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::image2Tz(unsigned char)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::createModel()'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::storeModel(unsigned int)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::loadModel(unsigned int)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::getModel()'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::deleteModel(unsigned int)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::emptyDatabase()'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::fingerFastSearch()'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
Декілька бібліотек було знайдено для «SoftwareSerial.h»
(.text+0x0): multiple definition of `Adafruit_Fingerprint::getTemplateCount()'
 
 Використано: C:\Users\777az\Downloads\arduino-nightly-windows\arduino-nightly\hardware\arduino\avr\libraries\SoftwareSerial
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
 Не використовується: C:\Users\777az\Documents\Arduino\libraries\EspSoftwareSerial
libraries\Adafruit_Fingerprint_Sensor_Library\Adafruit_Fingerprint.cpp.o (symbol from plugin): In function `Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*, unsigned long)':
 
(.text+0x0): multiple definition of `Adafruit_Fingerprint::setPassword(unsigned long)'
 
sketch\sketch_mar11a.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
 
C:\Users\777az\AppData\Local\Temp\ccpR0L9N.ltrans0.ltrans.o: In function `main':
 
C:\Users\777az\Downloads\arduino-nightly-windows\arduino-nightly\hardware\arduino\avr\cores\arduino/main.cpp:43: undefined reference to `setup'
 
C:\Users\777az\Downloads\arduino-nightly-windows\arduino-nightly\hardware\arduino\avr\cores\arduino/main.cpp:46: undefined reference to `loop'
 
collect2.exe: error: ld returned 1 exit status
 
exit status 1
Помилка компіляції для плати Arduino Uno.
ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

там нет скетча, вас обманули

kalapanga
Offline
Зарегистрирован: 23.10.2016

Николь, Вам самое простое найти аналогичный проект, в котором есть всё необходимое. Например в статье по ссылке в конце есть видео с ютуба. Если перейти на ютуб, то там в рекомендациях сразу несколько подобных проектов появится. Вот например пара проектов - вроде что-то подобное и со всеми исходниками (но сильно я не вникал):

https://www.youtube.com/watch?v=7xickzmn49M

https://www.instructables.com/id/How-to-Setup-Fingerprint-Sensor-With-Arduino/

Здесь в целом больше любят, когда со своим скетчем приходят. А если кто-то с вопросами по чужому проекту обращается, то его обычно или к автору проекта посылают или в коммерческий раздел "Ищу исполнителя".

И ещё. На форуме были темы про датчик отпечатка пальца. Сверху в поиске Fingerprint введите - может среди результатов что-то полезное найдётся.

Николь
Offline
Зарегистрирован: 11.03.2020

Вы мне очень помогли уже. Да эта тема очень похожа https://www.youtube.com/watch?v=7xickzmn49M, но же собирала по другому принципу через транзистор и акумулятор. Может ли  свами связаться напрямую в телеграме например если вы согласные. Так как я не опытная и могу что-то в скетче написать не так. А вы разбираетесь в этом.

kalapanga
Offline
Зарегистрирован: 23.10.2016

Николь пишет:

Вы мне очень помогли уже. Да эта тема очень похожа https://www.youtube.com/watch?v=7xickzmn49M, но же собирала по другому принципу через транзистор и акумулятор. Может ли  свами связаться напрямую в телеграме например если вы согласные. Так как я не опытная и могу что-то в скетче написать не так. А вы разбираетесь в этом.

Я этот сканер отпечатка пальца только на картинках и видел. Так что вряд ли сильно помочь могу.

Теоретически, скетч из вот этого проекта на ютубе должен работать и с Вашей схемой. Там даже одни и те же пины задействованы. Так что заливайте его в ардуину. Может и сразу заработает! Если нет, рассказывайте здесь, что не так. Может кому ещё пригодится.

Николь
Offline
Зарегистрирован: 11.03.2020

Скетч то я заливаю в ардуинку(тот другой), но замок не открываеться. я чуть не рыдаю- ни*** не получаеться. Замок как не открывался так и не открываеться. Может ли вы знаете кто может помочь написать скетч???

kalapanga
Offline
Зарегистрирован: 23.10.2016

Николь пишет:

Скетч то я заливаю в ардуинку(тот другой), но замок не открываеться. я чуть не рыдаю- ни*** не получаеться. Замок как не открывался так и не открываеться. Может ли вы знаете кто может помочь написать скетч???

Можете попробовать создать тему в разделе ищу исполнителя. Напишите что-то типа - есть такое-то железо требуется помощь в сборке и написание скетча.

А палец-то в сенсор записать удалось? Там в видео всё есть. Сначала надо с помощью скетча-примера от библиотеки записать в сенсор отпечаток пальца. Это сделали? А потом уж заливать скетч для работы с замком.

Николь
Offline
Зарегистрирован: 11.03.2020

да все записала

Николь
Offline
Зарегистрирован: 11.03.2020

я покдлючала через транзистор, не знаю почему не работает 

kalapanga
Offline
Зарегистрирован: 23.10.2016

Николь пишет:

да все записала

Уже хорошо. Скетч для работы с замком должен в монитор порта выводить информацию. Показывайте, что он там пишет.

Сначала должен написать, что сенсор найден, далее, что сенсор содержит столько-то шаблонов, далее что ждёт палец. И если приложен правильный палец, то тоже об этом сообщается.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

kalapanga пишет:

...далее что ждёт палец. И если приложен правильный палец, то тоже об этом сообщается.

а как он узнаёт, что палец правильный?
По ссылке, что вы приводили вроде всё описано )))

А для того, чтобы помочь как минимум надо иметь под рукой такой девайс...

Николь
Offline
Зарегистрирован: 11.03.2020

работает ))) надо было поменять транзистор полюсами. провтикала!!! сейчас другая проблема замок не розмыкаеться когда палец забирать ))))

Николь
Offline
Зарегистрирован: 11.03.2020

надо думаю с делеем поработать ))

Николь
Offline
Зарегистрирован: 11.03.2020

Удачи. спасибо что помогал !!! ты очень помог !!!!)))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Николь пишет:

надо думаю с делеем поработать ))

а пальчик внесли в базу, по методике пункта 6?

Step 6: Enroll the Finger Prints

Enroll the Finger Prints
Enroll the Finger Prints
Enroll the Finger Prints
2 More Images

first we need to enroll the fingers into the EPROM of our Sensor module, so we will follow these steps to enroll our fingerprints.

  1. open arduino IDE
  2. under the FILE menu, and Examples, find the adafruits finger print library.
  3. select the enroll example.
  4. upload the enroll example.
  5. open the Serial Monitor.
  6. select the baud rate to be 9600.
  7. Enter the Finger Print ID number when the serial monitor prompts to enter the fingerprint id number.
  8. place the finger you need to enroll on the sensor.
  9. place the finger again on the sensor once prompted by serial monitor.

 

 

Николь
Offline
Зарегистрирован: 11.03.2020

Уже работает)) только размыкаеться ))) но не размикаеться ))) Типу открываеться но не закрываеться если палец убрать))) меняла делей не помогло) код тут

// Made by Rupak Poddar
// Watch my videos on- www.youtube.com/RupakPoddar

/* PINOUT
 *  Fingerprint Sensor      Arduino
 *  Vcc(red)----------------> 5v
 *  Gnd(Black)--------------> Gnd
 *  Tx(green)---------------> Pin 2
 *  Rx(white)---------------> Pin 3
 */

 // Connect the Door Lock on digital pin 12
 
#include <Adafruit_Fingerprint.h>
int electronic_lock = 12; 
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino  (WHITE wire)
SoftwareSerial mySerial(2, 3);// Tx, Rx

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()  
{
  pinMode(12, OUTPUT);
  Serial.begin(9600);
  while (!Serial);
  delay(100);
  // set the data rate for the sensor serial port
  finger.begin(57600);
  
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor");
  } else {
    Serial.println("Did not find fingerprint sensor");
    while (1) { delay(1); }
  }

  finger.getTemplateCount();
  Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" template(s)");
  Serial.println("Waiting for valid finger...");
}

void loop()             // run over and over again
{
  getFingerprintIDez();
  delay(50);            //don't ned to run this at full speed.
}

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;
  
  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID); 
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
  digitalWrite(electronic_lock, HIGH);
  delay(300);                        //Change the door lock delay from here
  digitalWrite(electronic_lock, LOW);
  Serial.println("Unlocked");
  return finger.fingerID; 
}

 

Николь
Offline
Зарегистрирован: 11.03.2020

не знаю почему если палец убрать напряжения не падает???

kalapanga
Offline
Зарегистрирован: 23.10.2016

А транзистор и его включение точно такие как в исходном проекте описаны? 

Есть у меня одно предположение, но не очень представляю как такое можно было достичь. Короче, интересно было бы убедиться каким уровнем (HIGH или LOW) на управляющем пине (electronic_lock) замок открывается, а каким закрывается?

Можно в скетч после строки 24  добавить строчку один раз digitalWrite(12, HIGH); а другой раз digitalWrite(12, LOW); и посмотреть в каком состоянии будет замок в первом и во втором случае. Если в первом открыт, а во втором закрыт, то значит всё правильно - должно работать. А если будет наоборот, то в строках 62 и 64 поменять местами HIGH и LOW.