Ви не увійшли.
Готовий скетч взятий з нета не компілюється
контроллер Ардуіно нано дисплей 1602 І2С
Приклад оцей працює
//Пример для подключения дисплея по шине I2C
//
//Тип подключения дисплея: 1 - по шине I2C, 2 - десятиконтактное. Обязательно указывать ДО подключения библиотеки
//Если этого не сделать, при компиляции возникнет ошибка: "LCD type connect has not been declared"
#define _LCD_TYPE 1
#include <LCD_1602_RUS_ALL.h>
LCD_1602_RUS <LiquidCrystal_I2C> lcd(0x27, 16, 2);
void setup()
{
String str;
str = "язык";
lcd.init(); // Инициализация LCD
// Печать сообщения на LCD
lcd.backlight();
lcd.setCursor(4, 0);
lcd.print("Русский");
lcd.setCursor(6, 1);
lcd.print(str);
}
void loop()
{
А оце сам скетч
#include <EEPROM.h>
#include "LCD_1602_RUS.h"
#include "GyverButton.h"
LCD_1602_RUS lcd(0x3f, 16, 2);
boolean Pusk = 0;
boolean Meny = 0;
float obyem; //переменная прошедшего ОБЪЕМА
float zad_obyem = 0;
float rashod; //расход воды в минуту
volatile unsigned long lastflash, flash;
volatile unsigned long impuls = 0; //число импульсов расходомера
unsigned long Taimer1;
unsigned long Taimer2;
float ves_impulsa = 2.40; //вес одного импульса
//Настройка кнопок
#define BTN1 4 //Кнопка БОЛЬШЕ
#define BTN2 5 //Кнопка МЕНЬШЕ
#define BTN3 6 //Кнопка СТАРТ
#define BTN4 7 //Кнопка СТОП
GButton bol(BTN1);
GButton men(BTN2);
GButton Start(BTN3);
GButton Stop(BTN4);
#define ADDR 10 //ячейка с ключем первого запуска
#define KEY 15 //ключь первого запуска
void setup() {
Serial.begin(9600);
if (EEPROM.read(ADDR) != KEY) { //если во время первого запуска в ячейке 10 ключь не совподает то записывает в 10 ячейку ключь
EEPROM.write(ADDR, KEY);
EEPROM.put(0, ves_impulsa);
} //также записываем стандартный весс импульса. 2,40
EEPROM.get(0, ves_impulsa);
pinMode (3, OUTPUT); // Настраиваем 3 цифровой порт на выход
digitalWrite (3, LOW); // подать на 3 порт 0 Вольт.
attachInterrupt(0, sens, RISING); // подключить прерывание на 2 пин при повышении сигнала
lcd.begin(); // инициализация дисплея
lcd.backlight(); // включить подсветку
bol.setTickMode(AUTO); //Функция опроса кнопки БОЛЬШЕ
men.setTickMode(AUTO); //Функция опроса кнопки МЕНЬШЕ
Start.setTickMode(AUTO); //Функция опроса кнопки СТАРТ
Stop.setTickMode(AUTO); //Функция опроса кнопки СТОП
}
void sens() {
flash = micros() - lastflash; // вычислить время между двумя импульсами
lastflash = micros(); // запомнить время последнего импульса
impuls++;
}
void loop()
Видає таку помилку
C:UserslenovoDocumentsArduinorashodomer_s_knopkami_kalibrovkarashodomer_s_knopkami_kalibrovka.ino: In function 'void setup()':
C:UserslenovoDocumentsArduinorashodomer_s_knopkami_kalibrovkarashodomer_s_knopkami_kalibrovka.ino:40:13: error: no matching function for call to 'LCD_1602_RUS::begin()'
lcd.begin(); // инициализация дисплея
^
In file included from c:UserslenovoDocumentsArduinolibrariesLCD_1602_RUS/LCD_1602_RUS.h:1:0,
from C:UserslenovoDocumentsArduinorashodomer_s_knopkami_kalibrovkarashodomer_s_knopkami_kalibrovka.ino:2:
c:UserslenovoDocumentsArduinolibrariesLiquidCrystal_I2C_V112/LiquidCrystal_I2C.h:58:8: note: candidate: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)
void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );
^~~~~
c:UserslenovoDocumentsArduinolibrariesLiquidCrystal_I2C_V112/LiquidCrystal_I2C.h:58:8: note: candidate expects 3 arguments, 0 provided
exit status 1
Compilation error: no matching function for call to 'LCD_1602_RUS::begin()'
Може якісь бібліотеки конфліктують?
Остання редакція Boing_777 (2025-03-10 00:23:02)
Неактивний
auto_awesome
Добавив бібліотеки такі помилки через перекладач
Язык оригинала: английский
1 002 / 5 000
C:UserslenovoDocumentsArduinorashodomer_s_knopkami_kalibrovkarashodomer_s_knopkami_kalibrovka.ino: у функції 'void setup()':
C:UserslenovoDocumentsArduinorashodomer_s_knopkami_kalibrovkarashodomer_s_knopkami_kalibrovka.ino:48:13: помилка: немає відповідної функції для виклику 'LCD_1602_RUS::begin()'
lcd.begin(); // ініціалізація дисплея
^
У файлі, включеному з C:UserslenovoDocumentsArduinorashodomer_s_knopkami_kalibrovkarashodomer_s_knopkami_kalibrovka.ino:1:0:
c:UserslenovoDocumentsArduinolibrariesLiquidCrystal_I2C_V112/LiquidCrystal_I2C.h:58:8: примітка: кандидат: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)
void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );
^~~~~
c:UserslenovoDocumentsArduinolibrariesLiquidCrystal_I2C_V112/LiquidCrystal_I2C.h:58:8: примітка: кандидат очікує 3 аргументи, надано 0
статус виходу 1
Помилка компіляції: немає відповідної функції для виклику 'LCD_1602_RUS::begin()'
Неактивний
Ви знайшли не підходящу лібу для цього коду. або код не від цієї ліби. помилка в тому, що немає в тій лібі методу begin ().
#include <LCD_1602_RUS_ALL.h>
Що це за LCD_1602_RUS, звідки воно? Якщо це бібліотека, як ви її встановлювали?
//Тип подключения дисплея: 1 - по шине I2C, 2 - десятиконтактное. Обязательно указывать ДО подключения библиотеки
#include - це НЕ "підключення бібліотеки", це включення файла в поточну одиницю компіляції.
Неактивний
https://github.com/ssilver2007/LCD_1602_RUS_ALL походу
header only ліба, зручне.
треба подивитися на приклади використання.
#include - це НЕ "підключення бібліотеки", це включення файла в поточну одиницю компіляції
Новачок може що не розумію як правильно підключити бібліотеку пише постійно помилка
lcd.begin(); // инициализация дисплея
Неактивний
Ви знайшли не підходящу лібу для цього коду. або код не від цієї ліби. помилка в тому, що немає в тій лібі методу begin ().
на прикладах працює ,я додати той метод
Неактивний
не знаю навіщо. є метод init, його використовуйте.
Скетч , далі включити бібліотеку ,LCD_1602_RUS
Так звідки ви її взяли? Схоже, що та бібліотека - якась обгортка для Adafruit SSD1306, а ви їй даєте LiquidCrystal_I2C.
Якщо назгрібати якогось сміття з інтернету, то не варто сподіватись, що воно скомпілюється. А якщо і скомпілюється, то не факт, що буде працювати як треба.
Неактивний
https://github.com/ssilver2007/LCD_1602_RUS_ALL/blob/master/examples/HelloWorldCustom_I2C/HelloWorldCustom_I2C.ino
Мабуть, дивіться сюди і робіть як задумане автором.
якщо Ви вже робили подібне, і воно у вас працювало, то порівняйте з тим що було.
Схоже, що та бібліотека - якась обгортка для Adafruit SSD1306, а ви їй даєте LiquidCrystal_I2C.
А, вже бачу, що до SSD1306 воно не має відношення, а це обгортка для LiquidCrystal_I2C.
Подивіться же в приклад до тієї бібліотеки: examples/HelloWorld/HelloWorld.ino.
Там використовується метод init(), ніякого begin() там немає. Звідки воно взялося у вашому коді? Якщо це не ваш код, то питайте у автора, яка саме бібліотека якої версії тому коду потрібна. Але у LCD_1602_RUS немає метода begin().
Неактивний
Навіщо методом тика, якщо є цілий інтернет з літературою? Прочитайте будь яку книгу про ардуїно для початківців і не треба буде стрьомної магії
Прочитайте будь яку книгу про ардуїно для початківців
Тут нічого специфічного для ардуіно, тут основи C++. В ардуіно хоч і недо-, але все таки підмножина С++. Потрібно навчитись читати код і діагностику компілятора, він же все підказує.
А якщо мета - навчитись програмувати, то вивчати C++ на прикладі ардуінівських бібліотек категорично не рекомендую.
Неактивний
- в одну руку Хоровіца з Хіллом, в другу Страуструпа - і по голові!
- а можна мені іншого ментора?
- в одну руку Хоровіца з Хіллом, в другу Страуструпа - і по голові!
Кнутом потрібно!
PS: Метод кнута і пряника: метод, винайдений Д. Кнутом і вдосконалений Пряником.
Неактивний