Вывод UID карты на lcd экран

RockHammer
Offline
Зарегистрирован: 21.08.2017

У меня есть mfrc522 модуль и lcd экран. И я хочу чтобы при поднесении к считывателю карты высвечивалось на экране uid карты, а когда карту убираешь - uid исчезало.

Пробовал такой кусок кода:

mfrc522.PICC_DumpToSerial(&(mfrc522.uid));  // Выводим информацию о метке и считанную с нее информацию в монитор серийного порта
  lcd.print("UID is: ");
  lcd.print(&(mfrc522.uid));

И оно не работает, на последней строке выдает ошибку: call of overloaded 'print(MFRC522::Uid*)' is ambiguous

Как сделать так, чтобы оно работало? Заранее спасибо.

RockHammer
Offline
Зарегистрирован: 21.08.2017

Весь код, включая не рабочие элементы (внизу)

P.s. код ниже это слепок макетов для RFID и экрана с просторов интернета

#include <MFRC522.h>               // Подключаем библиотеку для работы с модулем RC522
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);

#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args)  write(args);
#else
#define printByte(args)  print(args,BYTE);
#endif

#define RST_PIN         9          // Пин подключения вывода RST модуля
#define SS_PIN          10         // Пин подключения SDA(SS) вывода модуля

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Создаем объект для работы с библиотекой MFRC522 и сообщаем ей пины подключения модуля

void setup() {
  lcd.init();
  lcd.backlight();
	Serial.begin(9600);		                                      // Инициализируем вывод данных на монитор серийного порта
	while (!Serial);		                                        // Ждем пока не инициализируется монитор серийного порта
	SPI.begin();			                                          // Инициализируем интерфейс SPI
	mfrc522.PCD_Init();		                                      // Инициализируем модуль MFRC522
  mfrc522.PCD_DumpVersionToSerial();	                        // Выводим версию прошивки модуля на монитор серийного порта
	Serial.println("Please, place RFID-label over the reader"); // Выводим сообщение о том, что модуль готов к считыванию и ожидает метку
  
  
}

void loop() {
// Ожидаем метку
	if (!mfrc522.PICC_IsNewCardPresent())       // Если метка не обнаружена, то
		return;                                   //  прерываем исполнение текущей петли (loop)

// Пытаемся прочитать метку
	if (!mfrc522.PICC_ReadCardSerial())         // Если не получается считать UID карты, то
		return;                                   //  прерываем исполнение текущей петли (loop)
                                              // в ином случае заполняется структура uid, которая используется в качестве аргумента в следующей строке данного скетча

	mfrc522.PICC_DumpToSerial(&(mfrc522.uid));  // Выводим информацию о метке и считанную с нее информацию в монитор серийного порта
  lcd.print("UID is: ");
  lcd.print(&(mfrc522.uid)); //не рабочие элементы
}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017
А так чо пишет?

  lcd.print("UID is: ");
  lcd.print(mfrc522.uid); //не рабочие элементы

 

RockHammer
Offline
Зарегистрирован: 21.08.2017

DetSimen пишет:

А так чо пишет?

  lcd.print("UID is: ");
  lcd.print(mfrc522.uid); //не рабочие элементы

 

да, забыл отписать что так тоже пробовал, такая же ошибка

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

Так Uid это структура, lcd.print и ругается, что не знает чего выводить. Подглядите как у них DumpToSerial устроен и по аналогии выведите нужные байты на экран.

RockHammer
Offline
Зарегистрирован: 21.08.2017

Можно уже готовое решение? Я не знаю, как в DumpToSerial смотреть, потому что мне нужно не в Serial выводить, а на монитор

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Готовые решения продаются в разделе "Ищу исполнителя".

RockHammer
Offline
Зарегистрирован: 21.08.2017

Я ищу помощи, про готовое решение я сказал "если можно".

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Вы просите не помощи, а готовое решение.

Это взаимоисключающие вещи.

И вообще: просить готовое решение на этом форуме в разделах кроме "Ищу исполнителя" считается дурным тоном.

RockHammer
Offline
Зарегистрирован: 21.08.2017

я четко ответил - "если можно". В топике я описываю ситуации и прошу совета. Не передергивайте.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Совет Вы получили в ответе №4.

Где можно получить готовый код, я уже написал, чего ж еще?

RockHammer
Offline
Зарегистрирован: 21.08.2017

andriano пишет:

Совет Вы получили в ответе №4.

Где можно получить готовый код, я уже написал, чего ж еще?

Я не знаю где смотреть "устройство" структуры DumpToSerial

Можно ссылку на статью или какую-то сопутствующую документацию

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

RockHammer пишет:

Я не знаю где смотреть "устройство" структуры DumpToSerial

Можно ссылку на статью или какую-то сопутствующую документацию

Ну какая статья, смотреть в исходном коде библиотеки MFRC522, разумеется! В каталоге, где она у Вас установлена. Сначала найдите, что из себя представляет UID. Дальше, если сразу не сообразите, как вывести на экран нужную информацию, найдите этот метод, которым в библиотеке uid выводится в сериал. Используйте его как пример. 

А что бы сделать для Вас готовый код, это же надо установить все библиотеки, иметь всё необходимое аппаратное обеспечение, чтобы код проверить. Ну кому оно надо?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

RockHammer пишет:

andriano пишет:

Совет Вы получили в ответе №4.

Где можно получить готовый код, я уже написал, чего ж еще?

Я не знаю где смотреть "устройство" структуры DumpToSerial

Можно ссылку на статью или какую-то сопутствующую документацию

Ссылку?

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

Нету никаких других "статей или сопутствующей документации".

Или Вы не знаете, как на своем компьютере просмотреть текстовый файл?