СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

H Подключение дисплея Nokia 5110 к Arduino Uno в черновиках Tutorial

Доброго времени суток уважаемые хабравцы! Эта небольшая статья для начинающих, тех кто только начал осваивать 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)

0
eta4ever ,  
У меня такое двоякое чувство. С одной стороны, вроде, сто раз это уже было сделано. А с другой, в качестве лаконичного материала «совсем для чайника» ни разу не видел. Дописали бы, что ли, теории чуток, про SPI.
0
stas3k ,  
Материал будет полезен людям, которым уже по 50 лет, которые всю жизнь занимались электроникой и пайкой. Я заметил что у таких людей сложности с компьютерами и современными технологиями, но желание заниматься с той же ардуинкой есть. Поэтому, думаю простая подача материала будет полезна не только тем, кто не особо знает английский язык, но и тем, кто с паяльником на ты, а в программировании не особо.
0
eta4ever ,  
Я думаю, таким людям было бы очень интересно, почему мы подключаем CE к D4, а DC к D5 и т.д.
0
stas3k ,  
вы имеете ввиду про эту часть кода?

Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
0
eta4ever ,   * (был изменён)
Я имею в виду не код, а железо. Что такое DC, Din, CE, Clk.
Хотя бы так www.robokits.co.nz/dl/images/products/glsd-pinouts.png
+4
dannyzubarev ,   * (был изменён)
В чем суть туториала, если уже существует очень подробный от самих же Adafruit? Более того, оригинальный туториал содержит важную информацию о питании и logic level shifting, о которых вы не упомянули ни слова, к сожалению.

learn.adafruit.com/nokia-5110-3310-monochrome-lcd
0
eta4ever ,  
Ну, не все могут в английский. А вот про уровни — да, неплохо бы тоже написать.
+4
eta4ever ,   * (был изменён)
Также неплохо бы рассказать, почему вы подключаете 3.3-вольтовый дисплей напрямую к ардуине, у которой пятивольтовые выходы.
0
valfrom ,  
Забавно, как раз недавно крутил библиотеку для nokia5110 (ardino тоже поддерживается), цель была — впихнуть в attiny13: github.com/valfrom/nokia-lcd-5110-arduino-lib