Breadcrumbs

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: ARDUINO | NOKIA 5110 display | подключение + аппаратный SPI

ARDUINO | NOKIA 5110 display | подключение + аппаратный SPI 2 года 5 мес. назад #65

  • Михаил
  • Михаил аватар
  • Не в сети
  • Администратор
  • Сообщений: 103
  • Спасибо получено: 17
  • Репутация: 1
Решил запостить эту тему, т.к. было необходимо подключить экран не к тем пинам которые описаны на практически всех сайтах и освободить пины с шим.
Стандартное подключение дисплея, как указано на всех сайтах:


#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
Adafruit_PCD8544 display = Adafruit_PCD8544(7,6,5,4,3);

void setup() 
{ 
  display.begin(); // инициализируем дисплей
  display.setContrast(60);  // устанавливаем контраст LCD
  display.clearDisplay();   // очищаем экран
} 
void loop() 
{ 
  display.clearDisplay();
  display.setTextSize(1);
  display.print("  NOKIA");   //строка без переноса (display.print)
  display.println("  5110");   //строка с переносом (display.println)
  display.display();
}

получим на экране надпись " NOKIA 5110"

Но в данной схеме заняты 5й и 6й пины с ШИМ.
Итак, можно ли подключить экран к другим пинам? Да. Экран будет работать и на пинах без шим, вот так - Adafruit_PCD8544 display = Adafruit_PCD8544(12, 8, 7, 4, 2);

SPI (Serial Peripheral Interface)

Принцип работы SPI: SCLK задает такт, MOSI/MISO передача бит за такт, SS в high - конец передачи для этого устройства(сколько устройств - столько SS). Подробней в поисковиках - SPI. Также ссылка на ветку форума где мне помогали по этому вопросу и не только (благодарю за помощь).

Библиотека с поддержкой SPI (папка NEW в архиве), в том же архиве папка OLD со старой библиотекой.

подключаем экран: CLK - 13, DIN - 11, DC - 5, CE - 4, RST - 3

код:
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
Adafruit_PCD8544 display = Adafruit_PCD8544(5, 4, 3);


void setup() 
{ 
  display.begin(); // инициализируем дисплей
  display.setContrast(60);  // устанавливаем контраст LCD
  display.clearDisplay();   // очищаем экран
} 
void loop() 
{ 
  display.clearDisplay();
  display.setTextSize(1);
  display.println("  --------- ");
  display.print("DISTSYS ");
  display.println(".RU");
  display.display();
}
Последнее редактирование: 1 год 11 мес. назад от Михаил.
Администратор запретил публиковать записи гостям.