Привет Хабр! Эта очень маленькая статья для начинающих, тех кто только начал осваивать Arduino и её программирование. Я искал информацию о том, как подключить дисплей от Nokia 5110 к Arduino Uno, но как-то все было не до конца понятно. Информации на русском мало, поэтому прошу сильно не закидывать помидорами. После поисков и экспериментов решил написать свою простую инструкцию, надеюсь кому пригодиться.

image

Итак, будем делать все в Windows, так как в данный момент у меня она.

Для начала нам надо скачать библиотеку https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library

Теперь распаковываем это все в папку C:\Program Files (x86)\Arduino\libraries или C:\Program Files\Arduino\libraries в зависимости от того где у вас программа Arduino.

В папке C:\Program Files (x86)\Arduino\libraries\Adafruit-PCD8544-Nokia-5110-LCD-library-master должны после всех манипуляций появится следующие файлы:

image

Теперь надо правильно подключить ардуинку к дисплейчику. Вот правильная распиновка:

RST -> D3
CE -> D4
DC -> D5
Din -> D6
Clk -> D7
Vcc -> 3.3V
BL -> 5V
Gnd -> GND

Слева контакты дисплея, справа ардуино.

После того как все подключили можно запустить пример из папки examples и сразу залить его на Arduino Uno. После окончания можем созерцать красивую анимацию. Всё это конечно красиво, но много чего бесполезного. Что если нам надо просто выводить какой-то текст и показания в виде цифр? Ниже обрезанный код-шаблон для ваших последующих разработок. В нём убрано все лишнее, отображается на дисплее только текст и цифры меняются в цикле loop(). Можете выводить какую угодно информацию теперь в цикле. В данном случае задержка итерации цикла составляет 1 секунду.

Код:

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

void setup() {
    display.begin();
    display.clearDisplay();
}

void loop() {
    display.setTextSize(1); // размер текста 1
    display.setTextColor(BLACK); // цвет текста темный
    display.println("Hello, world!"); // отображаем надпись
    display.setTextSize(2); // увеличиваем шрифт на 1
    display.println(random(1,10000)); // выводим число от 1 до 10000
    display.setTextSize(3);
    display.print(random(1,10000));
    display.display();
    delay(1000); // задержка в секунду
    display.clearDisplay(); // очищаем дисплей
}

Комментарии (9)


  1. eta4ever
    12.06.2015 12:55

    У меня такое двоякое чувство. С одной стороны, вроде, сто раз это уже было сделано. А с другой, в качестве лаконичного материала «совсем для чайника» ни разу не видел. Дописали бы, что ли, теории чуток, про SPI.


    1. stas3k Автор
      12.06.2015 13:55
      -1

      Материал будет полезен людям, которым уже по 50 лет, которые всю жизнь занимались электроникой и пайкой. Я заметил что у таких людей сложности с компьютерами и современными технологиями, но желание заниматься с той же ардуинкой есть. Поэтому, думаю простая подача материала будет полезна не только тем, кто не особо знает английский язык, но и тем, кто с паяльником на ты, а в программировании не особо.


      1. eta4ever
        12.06.2015 14:18

        Я думаю, таким людям было бы очень интересно, почему мы подключаем CE к D4, а DC к D5 и т.д.


        1. stas3k Автор
          12.06.2015 14:20

          вы имеете ввиду про эту часть кода?

          Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);


          1. eta4ever
            12.06.2015 14:23

            Я имею в виду не код, а железо. Что такое DC, Din, CE, Clk.
            Хотя бы так www.robokits.co.nz/dl/images/products/glsd-pinouts.png


  1. dannyzubarev
    12.06.2015 12:55
    +4

    В чем суть туториала, если уже существует очень подробный от самих же Adafruit? Более того, оригинальный туториал содержит важную информацию о питании и logic level shifting, о которых вы не упомянули ни слова, к сожалению.

    learn.adafruit.com/nokia-5110-3310-monochrome-lcd


    1. eta4ever
      12.06.2015 12:57

      Ну, не все могут в английский. А вот про уровни — да, неплохо бы тоже написать.


  1. eta4ever
    12.06.2015 14:52
    +5

    Также неплохо бы рассказать, почему вы подключаете 3.3-вольтовый дисплей напрямую к ардуине, у которой пятивольтовые выходы.


  1. valfrom
    12.06.2015 21:52
    +1

    Забавно, как раз недавно крутил библиотеку для nokia5110 (ardino тоже поддерживается), цель была — впихнуть в attiny13: github.com/valfrom/nokia-lcd-5110-arduino-lib