OLED-дисплей выходит из строя при подключении USB

Я приобрел OLED-дисплей 16x2 (DEP 16201-Y, совместимый с контроллером HD44780) для своего Arduino Uno и заставил его работать в 4-битном режиме, но только если USB не подключен и он питается от источника питания 9 В.

Итак, моя рутина такова:

  • Подключите USB и блок питания
  • Загрузить код
  • --> Не работает
  • Отключите USB и блок питания
  • Просто подключите питание
  • --> Работы
  • Подключите USB
  • --> Сбои в работе дисплея

Итак, вкратце: если Arduino подключена к моему ПК через USB, с дополнительным источником питания или без него, дисплей не будет работать должным образом, произойдет сбой или Arduino даже перезагрузится. (какая-то ошибка памяти?)

У меня нет возможного объяснения этому..

Спасибо за помощь.

ПРАВКА: Я использую Ubuntu Mate Kernel 4.4.0-43-generic 64bit

Если я подключаю кабель без питания, дисплей работает нормально. Если я подключаю кабель с напряжением 5 В, но ПК выключен, то дисплей работает нормально. Чтобы дисплей вышел из строя, компьютер должен быть запущен.

Тестовый код:

#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

void setup()
{
    //lcd.clear();
    lcd.begin(16, 2);
    lcd.clear();
    lcd.setCursor(0,1);
    lcd.print("Hello there");
    delay(1000);
}

void loop()
{
    lcd.setCursor(0,1);
    lcd.print("Hello World");

    lcd.setCursor(0,0);
    lcd.print("ABCDEFGHIJKLM");

    delay(1800);

    lcd.clear();

}

До После

, 👍4

Обсуждение

Это происходит только если ваш ПК работает? Если да: какую ОС вы используете?, @zimmerrol


1 ответ


0

У меня была та же проблема, но я решил ее с помощью следующего кода:
noDisplay(); display();, похоже, сбрасывает экран в правильное положение.

void LCDInit()
{
  lcd.begin(DISPLAY_LINE_LENGHT, DISPLAY_LINES);  
  // Нам нужно сделать это, чтобы сбросить настройки OLED-дисплея
  lcd.noDisplay();  
  lcd.display();
  lcd.clear();  
}
,