Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

дисплей от Nokia 1110 arduino

Вс фев 25, 2024 21:57:50

Добрый день, нашёл к себя дисплейчик от NOKIA 1110(PCF8814), и решил на его основе сделать что нибудь интересное. Порылся в интернете, нашел библиотек под него, на её основе написал простейший секундомер. Но столкнулся с проблемой, что дисплей не очищается, а лепит цифры друг на друга. И поэтому прошу помощи у знающих людей

Ссылку на библиотеку https://github.com/kashapovd/PCF8814-No ... CD-library


Код:
#include <Adafruit_GFX.h>
#include <PCF8814.h>

// PCF8814 display(ce, clk, mosi, rst)
PCF8814 display(3,7,6,4);

void setup() {
  display.begin();
  delay(2000); // Pause for 2 seconds
}

void loop() {
  display.display();
 
   display.setTextSize(3);             // Normal 1:1 pixel scale
  display.setTextColor(BLACK);        // Draw white text
  display.setCursor(0,0);             // Start at top-left corner
  display.println(millis() / 1000);
 
 
}

#include <Adafruit_GFX.h>
#include <PCF8814.h>

// PCF8814 display(ce, clk, mosi, rst)
PCF8814 display(3,7,6,4);

void setup() {
display.begin();
delay(2000); // Pause for 2 seconds
}

void loop() {
display.display();

display.setTextSize(3); // Normal 1:1 pixel scale
display.setTextColor(BLACK); // Draw white text
display.setCursor(0,0); // Start at top-left corner
display.println(millis() / 1000);


}[/code]

Re: дисплей от Nokia 1110 arduino

Пт мар 01, 2024 11:41:22

А ничего хитрого - дисплей то графический, то, что он на дисплей выводит, хранится попиксельно в ячейках его озу, пока туда не будут записаны новые данные или они не будут стерты, а вы просто пишете туда новые данные, не учитывая то, что там было да и получается аналог логической операции ИЛИ. Чтобы этого избежать можно использовать три варианта: перед каждым выводом нового значения очищать весь дисплей - операция достаточно долгая, а в случае с цветными TFT большого объёма крайне долгая - не советую такой вариант. Второй вариант это очистка небольшого текст-бокса перед выводом нового числа, путем заливки его прямоугольником с цветом фона - вариант быстрее, но если фон неравномерный, текстбокс будет заметен и может накладываться на фон. И третий вариант, самый быстрый, это стирание самого текста, путем вывода его в цвете фона а потом замена новым текстом с нужным цветом.

Добавлено after 14 minutes 18 seconds:
И да, сам код от идеала очень далек - процессор по сути все время только и делает, что пишет в дисплей данные. Если надо секунды считать, то это можно делать по-другому - во первых заставить себя отказаться от использования millis() и наконец то разобраться с таймерами и их прерывания, во вторых писать новые данные по необходимости, а не все время.
Ответить