B01111110, B11111111,

B00110011, B10011111,

B00011111, B11111100,

B00001101, B01110000,

B00011011, B10100000,

B00111111, B11100000,

B00111111, B11110000,

B01111100, B11110000,

B01110000, B01110000,

B00000000, B00110000

};

void setup() {

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay();

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(0,0);

display.println("Hello, world!");

display.drawBitmap(2, 14, logo16_glcd_bmp, 16, 16, 1);

display.drawLine(0, 40, 128, 40, WHITE);

display.drawLine(10, 50, 118, 50, WHITE);

display.display();

}

void loop() {

}

Разберем код подробнее.

Переменная display хранит объект, содержащий все методы для работы с дисплеем. Далее объявляется битовый массив PROGMEM logo16_glcd_bmp, который, как нетрудно догадаться, хранит непосредственно изображение - один бит соответствует одному пикселу. В функции setup происходит инициализация дисплея, там же указывается адрес 0xC3, который мы нашли ранее. Затем вызываются функции clearDisplay, setTextSize, println, назначение которых понятно из названия. При вызове всех этих функций данные заносятся в промежуточный блок памяти. И лишь при вызове метода display() эти данные реально переносятся на экран. Такая технология называется “двойной буфер”, она позволяет избежать мерцания при обновлении экрана.

Результат - загружаем программу в Arduino и видим запрограммированную нами картинку.

Самостоятельная работа: Вывести на экран переменную в различных форматах. Для этого воспользоваться функцией println, аналог которой для последовательного порта выглядит так:

int value = 24;

Serial.println(value);

Serial.println(value, DEC);

Serial.println(value, HEX);

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату