Подключаем экран WH1602A к микроконтроллеру Atmega8 через Arduino IDE.

В данном уроке мы подключим экран 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 и заливаем наше ПО.

На экране вы должны увидеть следующее: