OLED дисплей 0.96" I2C 128x64
- Войдите на сайт для отправки комментариев
Вс, 02/01/2022 - 17:37
Имеется OLED дисплей 0.96" I2C 128x64. Подключил его работает. Но не могу привязать его к работающему скетчу дисплей 1602. Это контроллер точечной сварки. Может кто нибудь поможет.
#include <LiquidCrystal.h> int bta = 13; //Вывод к котрому подключен симистор int svarka = 8; // Вывод клавиши сварки int secplus = 9; // Вывод клавиши увеличении времени варки int secminus = 10; // Вывод клавиши уменьшении времени варки int razplus = 11; // Вывод клавиши увеличения количества проварок int razminus = 12; // Вывод клавиши уменьшении количества проварок int lastReportedPos = 1; int lastReportedPos2 = 1; volatile int sec = 40; volatile int raz = 0; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); void setup() { pinMode(svarka, INPUT); pinMode(secplus, INPUT); pinMode(secminus, INPUT); pinMode(razplus, INPUT); pinMode(razminus, INPUT); pinMode(bta, OUTPUT); lcd.begin(12, 2); // Указываем какой установлен индикатор lcd.setCursor(2, 0); // Устанавливаем курсор в начало 1 строки lcd.print("Svarka v.1.0"); // Выводим текст lcd.setCursor(2, 1); // Устанавливаем курсор в начало 2 строки lcd.print("Tehnopage.ru"); // Выводим текст delay(3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Delay: Ms"); lcd.setCursor(0, 1); lcd.print("Repeat: times"); } void fire() { for (int i = 1; i <= raz; i++) { digitalWrite(bta, HIGH); delay (sec); digitalWrite(bta, LOW); delay (sec); } delay(1000); } void loop() { if (sec <= 9 ) { sec = 10; lastReportedPos = 11; } if (sec >= 201 ) { sec = 200; lastReportedPos = 199; } else { if (lastReportedPos != sec) { lcd.setCursor(7, 0); lcd.print(" "); lcd.setCursor(7, 0); lcd.print(sec); lastReportedPos = sec; } } if (raz <= 0 ) { raz = 1; lastReportedPos2 = 2; } if (raz >= 11 ) { raz = 10; lastReportedPos2 = 9; } else { if (lastReportedPos2 != raz) { lcd.setCursor(8, 1); lcd.print(" "); lcd.setCursor(8, 1); lcd.print(raz); lastReportedPos2 = raz; } } if (digitalRead(secplus) == HIGH ) { sec += 1; delay(250); } if (digitalRead(secminus) == HIGH ) { sec -= 1; delay(250); } if (digitalRead(razplus) == HIGH ) { raz += 1; delay(250); } if (digitalRead(razminus) == HIGH ) { raz -= 1; delay(250); } if (digitalRead(svarka) == HIGH ) { fire(); } }
Воспользуйтесь библиотеками для SSD1306, например https://github.com/adafruit/Adafruit_SSD1306
В папке examples примеры использования, подключите #include <***.h> и замените свой объект lcd на oled из подключённой библиотеки и замените методы на используемые в библиотеке, экран подключается к А4, А5.
А где код с попытками «привязки»?
А где код с попытками «привязки»?
тут начало )))
Вот на чем застрял.
Ну выше же дали ссылку на библиотеку, как подключать, что подключать, ну посмотри примеры, например: https://github.com/adafruit/Adafruit_SSD1306/blob/master/examples/ssd1306_128x32_i2c/ssd1306_128x32_i2c.ino
ну и так далее, изучай....