Добрый день! если коротко, то суть проблемы в следующем Новый MicroView OLED, только распаковал, попытался запустить, как описано тут для программирования использую MicroView-USB адаптер все контакты работают, программируются, с ножек сигналы входят/выходят, только не работает дисплей (чёрный, ничего не показивает, не светится) может я, конечно, что не так делаю, а может что-то и отошло внутри.. никто не сталкивался, что может быть?
Из общих соображений можно предположить что питание на дисплей не подается. Попробуйте подать питание на дисплей от другого источника и посмотреть. Хоть как-то, но светиться он должен.
у меня таже мысль, что просто конструктивно питание дисплея отошло. просто не хочется вскрывать, т.к. только что купил, именно эту попробую заменить а при покупки следующей попрошу сначала проверить, вдруг это целая партия бракованная.. для этого понадобиться вскрыть экран?
нет, я имел ввиду подать питание на один из выводов, который, в свою очередь, запитывает экран. Вскрывать думаю не стоит, тем более если обещают заменить.
Доброго времени суток! Простите за назойливость но (может я не прав): Сигнал "D4/3.3V_EN" не формируется ли программно при старте устройства?... а то я наблюдал на схеме, что дисплей питается именно от 3.3V. Самому интересно это утройство. Думаю ваша прошивка (программа) должна включить питание на дисплей при старте (помотрите на включаемый стабилизатор 3.3V). Ещё раз простите.
Это так и есть, питание включает библиотека MicroView.h в ней согласно коду на пине 4 и формируется 3.3В при старте. Так что отдельно в скетче, это видимо, прописывать не нужно.
Потому и говорю простите... но модет всё-таки диплей не всегда вработе (не для всех задач) и предусмотрено его включение при необходимости? Вы наверное нашли гарантированную часть кода, что включает именно при старте?
Тут же вынужден просить прощения: Код (C++): void MicroView::begin() { // default 5x7 font setFontType(0); setColor(WHITE); setDrawMode(NORM); setCursor(0,0); RESETLOW; // Enable 3.3V power to the display pinMode(OLEDPWR, OUTPUT); digitalWrite(OLEDPWR, HIGH); // Give some time for power to stabilise delay(10); RESETHIGH; delay(5); RESETLOW; // Setup SPI frequency MVSPI.setClockDivider(SPI_CLOCK_DIV2); // Initialise SPI MVSPI.begin(); delay(5); // bring out of reset RESETHIGH; delay(10); // Init sequence for 64x48 OLED module // command(DISPLAYOFF); // 0xAE // command(SETDISPLAYCLOCKDIV, 0x80); // 0xD5 / the suggested ratio 0x80 command(SETMULTIPLEX, 0x2F); // 0xA8 // command(SETDISPLAYOFFSET, 0x0); // 0xD3 / no offset // command(SETSTARTLINE | 0x0); // 0x40 / line #0 command(CHARGEPUMP, 0x14); // 0x8D / enable charge pump // command(NORMALDISPLAY); // 0xA6 // command(DISPLAYALLONRESUME); // 0xA4 command(SEGREMAP | 0x1); command(COMSCANDEC); // command(SETCOMPINS, 0x12); // 0xDA command(SETCONTRAST, 0x8F); // 0x81 command(SETPRECHARGE, 0xF1); // 0xD9 command(SETVCOMDESELECT, 0x40); // 0xDB command(DISPLAYON); //--turn on oled panel clear(ALL); // Erase hardware memory inside the OLED controller to avoid random data in memory. // Serial.begin(115200); // removed the Serial.begin() so that user can decide their own baud rate. } Как раз отрывок оттуда и вы соответственно запустили этот begin при старте. Извините!
в файле .cpp // Enable 3.3V power to the display pinMode(OLEDPWR, OUTPUT); digitalWrite(OLEDPWR, HIGH); в заголовочном файле .h я нашел что это 4 пин (строка 27): #define OLEDPWR 4 // 3.3V regulator enable так что в этой библиотеке и происходит выдача 3,3В на дисплей согласно схеме это четвертый пин D4.
да все нормально, если брак то должны вернуть. Правда его можно и самому испортить. В описании к модулю предупреждают: Внимание! Соблюдайте правильность выводов используя рисунок на программаторе. При неправильном подключении платформа или программатор может выйти из строя.
и uView.begin(); запускали? сделали как тут?: Код (C++): // библиотека для работы с платформой MicroView #include <MicroView.h> void setup() { // Начало работы с MicroView uView.begin(); // очищаем дисплей uView.clear(PAGE); // печатаем строку в буфер дисплея uView.print("HelloWorld"); // отображаем содержимое из буфера на экран uView.display(); } void loop() { } и не работает?
да.. именно с этого кода я и начал своё знакомство с MicroView ) .. и после того, как ничего не произошло, для проверки общей работоспособности попробывал запрограммировать сигналы на выходах, они работали ..
обидно, однако Недешевая штучка... Тоже глаз положил, но пока не решаюсь Отпишитесь, пжлст, чем закончится история...
Не сомневался в Амперке - там хорошая команда (имел честь немного пообщаться у них в офисе - впечатления только положительные). Отлично! Уже завидую