КУЛИБИН ПОМОГИТЕ Энкодер с выводом на ЛСД 1602

  • Последнее редактирование:
Последнее редактирование:
А я чего-то поторопился с ответом(n), думал дядька Robinson1957 перепутал с OLED. Везде (даже в OLED1306) тоже правильно ***.begin(), так же как и на LCD. Как бы теперь это сообщение удалить, дабы не вводить в заблуждение:oops:
 
Везде (даже в OLED1306) тоже правильно ***.begin(), так же как и на LCD.
Как правильно, лучше всегда смотреть в примерах (папка examples) к библиотеке или исходники самой библиотеки.
А вообще, может быть и так и этак, зависит от библиотеки.
Например, в одной библе создаётся экземпляр класса
C++:
LiquidCrystal_I2C lcd(0x27);
и иницилизируется в setup()
C++:
lcd.begin(16, 2);
а в другой, соответственно
C++:
LiquidCrystal_I2C lcd(0x27, 16, 2);
и
C++:
lcd.begin();
 
разобрался! плате индикатора крантец. продолжение запуска переносится на 25 июня
 
  • Последнее редактирование:
Последнее редактирование:
попытался в онлайн запустить
1687209243748.png

**Project Link:** Владимир - Wokwi ESP32, STM32, Arduino Simulator

Error message: /sketch/sketch_jun19a.ino: In function 'void setup()':
/sketch/sketch_jun19a.ino:11:6: error: redefinition of 'void setup()'
void setup() {
^~~~~
sketch.ino:1:6: note: 'void setup()' previously defined here
void setup() {
^~~~~
/sketch/sketch_jun19a.ino: In function 'void loop()':
/sketch/sketch_jun19a.ino:22:6: error: redefinition of 'void loop()'
void loop() {
^~~~
sketch.ino:6:6: note: 'void loop()' previously defined here
void loop() {
^~~~

Error during build: exit status 1



Владимир - Wokwi ESP32, STM32, Arduino Simulator
 
  • Последнее редактирование:
Последнее редактирование:
Может еще не все потеряно. Пробовал хоть настроиться сначала, прошивкой "Hello word" для I2C? И резюк покрутить? И почему на схеме SCL/SDA, на A4/А6?должны быть на А4/А5.
 
  • Последнее редактирование:
Последнее редактирование:
Дядя Вова , попробуй так :

Код:
#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);
int schetchik = 0;
int schetchik2 = 0;
bool enc_A=true;
bool enc_B=true;
bool enc_C=true;
bool enc_D=true;

void setup() {
  lcd.begin(16, 2);
  lcd.backlight(); //подсветка
  pinMode(11, INPUT);
  pinMode(12, INPUT);
  pinMode(9, INPUT);
  pinMode(10, INPUT);
  pinMode(7, INPUT);
  pinMode(8, INPUT);
}

void loop() {

  // Для первого энкодера
  static bool enc_prev = enc_A;  // Сохраняем текущее состояние энкодера A
  if ((!enc_A) && (enc_prev)) {
    if (enc_B) {
      if (schetchik + 1 > 0)
        schetchik += 1;
    } else {
      if (schetchik - 1 >= 0)
        schetchik -= 1;
    }
  }
  enc_prev = enc_A;  // Обновляем сохраненное состояние энкодера A

  float m = schetchik / 1.00;
  lcd.setCursor(10, 1);
  lcd.print(m);

  // Для второго энкодера
  static bool enc_prev2 = enc_C;  // Сохраняем текущее состояние энкодера C
  if ((!enc_C) && (enc_prev2)) {
    if (enc_D) {
      if (schetchik2 + 1 > 0)
        schetchik2 += 1;
    } else {
      if (schetchik2 - 1 >= 0)
        schetchik2 -= 1;
    }
  }
  enc_prev2 = enc_C;  // Обновляем сохраненное состояние энкодера C

  float m2 = schetchik2 / 1.00;
  lcd.setCursor(10, 0);
  lcd.print(m2);

  if (!digitalRead(7)) {
    schetchik = 0;  // Сброс счетчика schetchik при активации пина 7
  }

  if (!digitalRead(8)) {
    schetchik2 = 0;  // Сброс счетчика schetchik2 при активации пина 8
  }
}
 
  • Последнее редактирование:
Последнее редактирование:
И опять ни инициализации, ни включения подсветки.
:cool:

LiquidCrystal_I2C lcd(0x27, 16, 2); //создает объект класса , lcd.begin(16, 2); // инициализирует и запускает работу LCD-дисплея , lcd.backlight(); //подсветка (добавил)
Вроде все логично... Можно еще lcd.begin(16, 2); заменить на lcd.begin(); все равно раньше назначаем...
 
  • Последнее редактирование:
Последнее редактирование:
Может еще не все потеряно. Пробовал хоть настроиться сначала, прошивкой "Hello word" для I2C? И резюк покрутить? И почему на схеме SCL/SDA, на A4/А6?должны быть на А4/А5.
всяко может быть! Авторская:
Безымянный.png
надо будет в техсте библиотеки глянуть по выводам.
Вечером посижу!
Хотел в Протеусе сие воспроизвести. Библиотеки элементов не хватило, да и не до поиска было.
И еще! Новый дисплей будет без подсветки - зелёный.
В прежней плате даже без сильного перегрева обрывы в меж дорожками и пяточками. Обратил внимание, когда с подстроечного резюка на плате I2C не шло напряжения на подсветку. Светодиод на этой плате светился. Решил взять в сборе с платкой I2C.
На Яндексмаркете скидка вполне приличная, а сроки доставки от 1 до 5 дней.
 
Пин SDA должен быть подключен к пину A4
Пин SCL должен быть подключен к пину A5
Пин GND должен быть подключен к любому пину GND
Пин VCC к 5V пину на Arduino Nano.

Попробуйте вот этот код для начала, чтобы проверить дисплей:
Код:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Инициализация объекта lcd с адресом 0x27, 16 символами в строке и 2 строками

void setup() {
  lcd.begin();  // Инициализация LCD-дисплея без аргументов
  lcd.backlight();  // Включение подсветки LCD-дисплея
  lcd.setCursor(0, 0);
  lcd.print("Hello, World!");  // Вывод текста на дисплей
}

void loop() {
}
 
Обратил внимание, когда с подстроечного резюка на плате I2C не шло напряжения на подсветку.
А с какого побстроечник должен быть связан с подсветкой? Это совершенно разные цепи. Подстроечник служит для установки смещения на линии контрастности, а подсветка включается ключом микросхемы, к тому же на плате есть перемычка отключения подсветки.
 
А с какого побстроечник должен быть связан с подсветкой? Это совершенно разные цепи. Подстроечник служит для установки смещения на линии контрастности, а подсветка включается ключом микросхемы, к тому же на плате есть перемычка отключения подсветки.
Синенький такой на плате. Обрывы на этой же плате, где припаяны штырьки соединяющие плату с платой дисплея.
Перемычка для отключения подсветки - джампер слева? снимал и ставил.

1687261856497.png
lcm1602-iic-v1-5_1.JPG

Ваши сообщения автоматически объединены:

Попробуйте вот этот код для начала, чтобы проверить дисплей:
25-го! Онлайн сервис работает для членов клуба и сейчас сложности с регистрацией для россиян. Тот же гитхаб требует иностранный номер телефона.. У меня нет не российской симки.
Пора свой обменник делать и свои сервисы.
 
А вот здесь
не прокатит как прототип? Правда вывод на UART терминал, но это поменять мона...
Вообще у Климова есть что глянуть.
 
  • Последнее редактирование:
Последнее редактирование:
А вот здесь
не прокатит как прототип? Правда вывод на UART терминал, но это поменять мона...
Вообще у Климова есть что глянуть.
Через монитор порта?
1687275061759.png
Мне бы что бы дисплей заиграл монохромом!
На зеленом подсветка не понадобится.
И почему на схеме SCL/SDA, на A4/А6?должны быть на А4/А5.
скорее ДА. с новым подключу А4/А5. На других схемах нашел подтверждение.
Автор как в проге, так и в схеме подводных камней накидал для начинающих.
У А. Гивера есть отклонения от общепринятых схем включения, но всё разжованно и на вопросы отвечает. Повторил его проект с машинкой у которой можно управлять каждым колесом отдельно. Она не только поворачивает,а может двигаться в разные стороны или крутиться на месте. Проблемы были с приемником на 2,4 ггц.
Беру тайм аут на изучение других проектов.
 
Сверху Снизу