Arduino Nano I2C OLED-дисплей 0,96 дюйма 128x64 пикселей
arduino-nano
oled
У меня возникла странная проблема при попытке запустить код hello world на arduino nano, подключенном к OLED-дисплею.
Это код, который я использовал:
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void setup() {
// SSD1306_SWITCHCAPVCC = генерировать напряжение дисплея от 3,3В внутри
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x32
display.display();
delay(2000);
display.clearDisplay(); //this line to clear previous logo
display.setTextColor(WHITE); //without this no display
display.print("Hello World!");//your TEXT here
display.display(); //to shows or update your TEXT
}
void loop() {
}
Но я вижу это на дисплее.
Есть идеи, чего мне может не хватать?
Спасибо!
@zanga, 👍1
Обсуждение1 ответ
Лучший ответ:
▲ 1
Тайна разгадана :)
После еще некоторого чтения выясняется, что драйвер дисплея на самом деле SH1106, поэтому после использования правильной библиотеки я заставил дисплей работать.
,
@zanga
Смотрите также:
- Случайные артефакты на OLED-экране SSD1306
- Программа Arduino, использующая i2c, перестает работать после нескольких раз печати на OLED
- Платы Arduino не работают с powerbanks!
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Питание светодиодной ленты - Сколько ампер?
У вас есть ссылка на продукт на вашем дисплее?, @Fahad
У меня был этот дисплей, который лежал некоторое время, к сожалению, я не могу найти ссылку на продукт., @zanga
Является ли драйвер IC SSD1306? Вы видите это на задней панели дисплея?, @Fahad
Не зная, где я могу это увидеть, я добавил картинку с обратной стороны., @zanga
Почему вы используете библиотеку Adafruit_SSD1306? Возможно, драйвер дисплея не является SSD1306. Кроме того, на вашей второй картинке видно, что адрес "0x78". В коде вы используете " 0x3C`. Кроме того, покажите нам, как вы подключили дисплей к Arduino Nano., @Fahad
Кроме того, проверьте, есть ли подтягивания на выводах I2C дисплея., @Fahad
@Fahad Это не похоже на проблему I2C, а скорее что-то с обработкой шрифтов (обратите внимание, что "H" и "W" правильные, но остальные буквы несколько не в порядке (L=E, S=L и т. Д.) Я бы попробовал переустановить библиотеку., @PMF
Хорошая мысль. Я видел, как другие люди говорили, что иногда дисплей китайского производства имеет адрес "0x7A", но работает с "0x3C". Но подтягивание может стать проблемой. Если подтягивания нет, плавающее состояние может генерировать данные "мусора"., @Fahad
0x7A равно 0x3C << 1 что верно. Адреса I2C имеют 7 бит, а 8-й бит (самый правый) используется в качестве флага R/W. Таким образом, вы сдвигаете адрес I2C на один влево, а затем добавляете 1 или 0 слева для операции чтения/записи (я забыл, как это обойти). Библиотека Arduino делает это за вас, поэтому вам нужно указать "нешифрованный" адрес 0x3C., @Majenko