В данном уроке мы подключим экран Winstar WH1602A к микроконтроллеру Atmega8 используя среду программирования Arduino IDE.
Экран будем подключать через I2C модуль на микросхеме PCF8574TP:
Схема подключения (в некоторых модулях может отличатся распиновка):
Для работы с данным модулем нам необходимо скачать и установить библиотеку LiquidCrystal_I2C.h
Далее пишем программный код:
#include <Wire.h>
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x20/*0x27*/,16,2);// устанавливаем адрес модуля и тип экрана void setup(){ lcd.init();// подключаем экран lcd.backlight();// включаем подсветку lcd.print("Hello, world I2C!");// выводим надпись на экран delay(5000); } void loop(){ lcd.setCursor(0,1);// устанавливаем позицию курсора x.y lcd.print(millis()/1000);//выводим некоторое значение таймера lcd.setCursor(4,1); lcd.print("display 16x2"); delay(100); }
Рассмотрим другие функции данной библиотеки:
lcd.home() — возвращает курсор в начало экрана, не удаляя текст на экране.
lcd.clear() – возвращает курсор в начало экрана, удаляя текст на экране.
lcd.write(ch) – выводит одиночный символ ch на экран.
lsd.cursor() — показывает курсор на экране.
lsd.noCursor() – скрывает курсор на экране.
lsd.blink() — курсор мигает.
lsd.noBlink() – курсор не мигает.
lsd.display() — включает дисплей.
lsd.noDisplay() – отключает дисплей.
lsd.scrollDisplayLeft() — прокручивает экран на один знак влево.
lsd.scrollDisplayRight() – прокручивает экран на один знак вправо.
lsd.autoscroll() — включает режим автодвижение символа, каждый новый символ пишется в следующем поле.
lsd.noAutoscroll() – вsключает режим автодвижение символа, каждый новый символ пишется вместо написанного, без смещения.
lsd.leftToRight() — устанавливает направление текста слева на право.
lsd.rightToLeft() – устанавливает направление текста справа на лева.
lsd.createChar(ch, bitmap) – создает символ с кодом ch (0 – 7), используя массив битовых масок bitmap для создания черных и белых точек.
Для примера рассмотрим работу функции lsd.createChar(ch, bitmap) :
uint8_t bitmap[2][8] = {//Объявляем массив из 2 собственных символов, каждый символ состоит из 8 байт {0,0,18,20,24,20,18,0}, // символ к {0,0,17,19,21,25,17,0}}; // символ и ************************* lcd.createChar(1, bitmap[0]); //Загружаем 1 символ "к" в ОЗУ дисплея lcd.createChar(2, bitmap[1]); //Загружаем 2 символ "и" в ОЗУ дисплея lcd.setCursor(0, 0); lcd.print("simvol\1\2");
Для вывода символа с памяти мы указываем номер «ячейки» символом \ таким образом мы выводим оба символа помещенных под номером 1 и 2.
Так как мы хотим залить прошивку именно в микроконтроллер Atmega8, а не в Arduino плату, нам необходимо перед компиляцией выбрать плату Arduino NG и процессор Atmega8:
После чего, если у Вас есть переходник для Arduino IDE залить ПО как с обычной платой Arduino, если Вы до этого работали с Atmel studio, Вам необходимо после открытия Atmel studio выбрать запись данных в микроконтроллер нажав ctrl+shift+P, после в поле Memories выбираем путь *.hex файла который создала среда программирования Arduino IDE и заливаем наше ПО.
На экране вы должны увидеть следующее: