КУЛИБИН ПОМОГИТЕ Энкодер с выводом на ЛСД 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 ггц.
Беру тайм аут на изучение других проектов.
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать