#1 2025-03-09 22:09:55

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Потрібна допомога з скетчем розхідоміра рідини

Готовий скетч взятий з нета не компілюється
контроллер Ардуіно нано дисплей 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)

Неактивний

#2 2025-03-09 22:32:47

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Re: Потрібна допомога з скетчем розхідоміра рідини

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()'

Неактивний

#3 2025-03-09 22:50:59

jokeer
Гість

Re: Потрібна допомога з скетчем розхідоміра рідини

Ви знайшли не підходящу лібу для цього коду. або код не від цієї ліби. помилка в тому, що немає в тій лібі методу begin ().

#4 2025-03-09 23:03:01

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 316

Re: Потрібна допомога з скетчем розхідоміра рідини

Boing_777 пише:

#include <LCD_1602_RUS_ALL.h>

Що це за LCD_1602_RUS, звідки воно? Якщо це бібліотека, як ви її встановлювали?

Boing_777 пише:

//Тип подключения дисплея: 1 - по шине I2C, 2 - десятиконтактное. Обязательно указывать ДО подключения библиотеки

#include - це НЕ "підключення бібліотеки", це включення файла в поточну одиницю компіляції.

Неактивний

#5 2025-03-09 23:09:33

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Re: Потрібна допомога з скетчем розхідоміра рідини

Що це за LCD_1602_RUS, звідки воно? Якщо це бібліотека, як ви її встановлювали?

Скетч , далі включити бібліотеку   ,LCD_1602_RUS

Неактивний

#6 2025-03-09 23:14:36

jokeer
Гість

Re: Потрібна допомога з скетчем розхідоміра рідини

https://github.com/ssilver2007/LCD_1602_RUS_ALL походу
header only ліба, зручне.
треба подивитися на приклади використання.

#7 2025-03-09 23:19:10

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Re: Потрібна допомога з скетчем розхідоміра рідини

#include - це НЕ "підключення бібліотеки", це включення файла в поточну одиницю компіляції


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

    lcd.begin();                 // инициализация дисплея

Неактивний

#8 2025-03-09 23:20:46

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Re: Потрібна допомога з скетчем розхідоміра рідини

jokeer пише:

Ви знайшли не підходящу лібу для цього коду. або код не від цієї ліби. помилка в тому, що немає в тій лібі методу begin ().

  на прикладах працює ,я додати той метод

Неактивний

#9 2025-03-09 23:27:53

jokeer
Гість

Re: Потрібна допомога з скетчем розхідоміра рідини

не знаю навіщо. є метод init, його використовуйте.

#10 2025-03-09 23:30:53

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 316

Re: Потрібна допомога з скетчем розхідоміра рідини

Boing_777 пише:

Скетч , далі включити бібліотеку   ,LCD_1602_RUS

Так звідки ви її взяли? Схоже, що та бібліотека - якась обгортка для Adafruit SSD1306, а ви їй даєте LiquidCrystal_I2C.

Якщо назгрібати якогось сміття з інтернету, то не варто сподіватись, що воно скомпілюється. А якщо і скомпілюється, то не факт, що буде працювати як треба.

Неактивний

#11 2025-03-09 23:34:54

jokeer
Гість

Re: Потрібна допомога з скетчем розхідоміра рідини

https://github.com/ssilver2007/LCD_1602_RUS_ALL/blob/master/examples/HelloWorldCustom_I2C/HelloWorldCustom_I2C.ino

Мабуть, дивіться сюди і робіть як задумане автором.

#12 2025-03-09 23:44:37

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Re: Потрібна допомога з скетчем розхідоміра рідини

Все звідси 
https://youtu.be/iJ0ry5Euy7Y
і біблітеки може багато зайвих


Робив подібне на Ардуіно  УНО  R3 все працює тільки там нема з кнопок установки літражу

Неактивний

#13 2025-03-10 00:15:19

jokeer
Гість

Re: Потрібна допомога з скетчем розхідоміра рідини

якщо Ви вже робили подібне, і воно у вас працювало, то порівняйте з тим що було.

#14 2025-03-10 00:17:57

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Re: Потрібна допомога з скетчем розхідоміра рідини

Переписав begin на    init  і начебто вийшло завантажило завтра підключу кнопки та датчик протока води та відпишусь

Неактивний

#15 2025-03-10 00:21:41

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 316

Re: Потрібна допомога з скетчем розхідоміра рідини

dimich пише:

Схоже, що та бібліотека - якась обгортка для Adafruit SSD1306, а ви їй даєте LiquidCrystal_I2C.

А, вже бачу, що до SSD1306 воно не має відношення, а це обгортка для LiquidCrystal_I2C.

Подивіться же в приклад до тієї бібліотеки: examples/HelloWorld/HelloWorld.ino.

Там використовується метод init(), ніякого begin() там немає. Звідки воно взялося у вашому коді? Якщо це не ваш код, то питайте у автора, яка саме бібліотека якої версії тому коду потрібна. Але у LCD_1602_RUS немає метода begin().

Неактивний

#16 2025-03-10 00:24:50

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Re: Потрібна допомога з скетчем розхідоміра рідини

Учусь потихеньку методом тика smile

Неактивний

#17 2025-03-10 08:29:08

jokeer
Гість

Re: Потрібна допомога з скетчем розхідоміра рідини

Навіщо методом тика, якщо є цілий інтернет з літературою? Прочитайте будь яку книгу про ардуїно для початківців і не треба буде стрьомної магії

#18 2025-03-10 09:08:10

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Re: Потрібна допомога з скетчем розхідоміра рідини

Та отож потратити багато часу на танці з бубном  замість того щоб почитати  .Головне щоб все вийшло в кінцевому результаті. smile

Неактивний

#19 2025-03-10 10:06:29

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 316

Re: Потрібна допомога з скетчем розхідоміра рідини

jokeer пише:

Прочитайте будь яку книгу про ардуїно для початківців

Тут нічого специфічного для ардуіно, тут основи C++. В ардуіно хоч і недо-, але все таки підмножина С++. Потрібно навчитись читати код і діагностику компілятора, він же все підказує.

А якщо мета - навчитись програмувати, то вивчати C++ на прикладі ардуінівських бібліотек категорично не рекомендую.

Неактивний

#20 2025-03-10 10:17:14

Boing_777
Учасник
З Полтава
Зареєстрований: 2025-03-09
Повідомлень: 12

Re: Потрібна допомога з скетчем розхідоміра рідини

Дякую за підтримку

Остання редакція Boing_777 (2025-03-10 10:17:32)

Неактивний

#21 2025-03-10 10:33:03

jokeer
Гість

Re: Потрібна допомога з скетчем розхідоміра рідини

- в одну руку Хоровіца з Хіллом, в другу Страуструпа - і по голові!
- а можна мені іншого ментора? smile

#22 2025-03-10 10:55:48

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 316

Re: Потрібна допомога з скетчем розхідоміра рідини

jokeer пише:

- в одну руку Хоровіца з Хіллом, в другу Страуструпа - і по голові!

Кнутом потрібно! big_smile

PS: Метод кнута і пряника: метод, винайдений Д. Кнутом і вдосконалений Пряником.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму