Arduone kit
Урок №10 Жидко Кристаллический Индикатор
В этом опыте Вам предстоит освоить ЖКИ (LCD*)
В этом опыте Вам предстоит освоить ЖКИ (LCD*). ЖКИ, или жидкокристаллический дисплей, является простым дисплеем, который может отображать выполнение команд, выводить информацию от различных датчиков - все зависит от того, как Вы запрограммируете свою плату Arduino. Вы узнаете основные принципы работы с ЖКИ: как подключить, как настроить, как использовать ЖКИ в Ваших проектах с Arduino. ЖКИ модуль поставляется отдельно от разъема и если у вас возникнут сложности с его пайкой, - обратитесь за помощью к знающему человеку, или специалисту.

*LCD Liquid Crystal Display (eng.)
Схема подключения
Скетч
// Подгузка библиотеки LiquidCrystal.h, которая даст нам
// возможность взаимодействия с ЖКИ без лишних сложностей:

#include <LiquidCrystal.h>


// Инициализация портов, которые мы применяем. Обратите внимание,
// вы можете использовать различные порты, те которые необходимы.
// Для дополнительной информации Вы можете посмотреть:
// http://arduino.cc/en/Reference/LiquidCrystal

LiquidCrystal lcd(12,11,5,4,3,2);

void setup()
{
// Библиотека LiquidCrystal.h может использоваться с различными
// типами ЖК устройств. Мы используем двухстрочный, шестнадцати
// символьный ЖК индикатор. Поэтому здесь, ниже, мы информируем
// об этом Arduino, укажем ей с какой частью библиотеки работаем:
  
  lcd.begin(16, 2); // устанавливаем кол-во столбцов и строк

// Данные отправленные на дисплей будут там оставаться, пока не
// будут перезаписаны новой информацией, или до отключении питания.
// Это может стать проблемой, - вы загружаете новый скетч в Arduino,
// а на ЖК дисплее все еще видны данные от старой программы. Поэтому,
// давайте очистим ЖК с помощью команды clear(),
// из библиотеки LiquidCrystal:

  lcd.clear();
  
// Теперь мы будем отображать сообщения на ЖК-дисплее!
  
// Так же, как в любом мониторе, у ЖК есть курсор, который
// определяет, в каком месте должны появится нужные данных. По умолчанию
// этот курсор невидим, хотя вы можете сделать его видимым, но для
// этого нужно использовать дополнительные команды библиотеки.
  
// Когда дисплее включается, невидимый курсор устанавливается
// в верхнем ряду, первого столбца.
  
  lcd.print("hello, world!"); // печать на ЖКИ сообщения

// Регулировка контрастности (ВАЖНО!)
  
// При запуске скетча (программы) впервые, есть шанс
// что вы ничего не увидите на ЖК-дисплее. Это может произойти
// потому, что контрастность еще не отрегулирована.
// Не волнуйтесь, это легко исправить, и как только вы установите
// нужные параметры, больше уже менять ничего не понадобится.

// Запустите скетч, затем покрутите потенциометр, в разные стороны
// пока на ЖК дисплее не появится текст "Hello, World!".
// Если вы все еще не видете текст, проверить все соединения и
// убедитесь, что скетч был успешно загружен в Arduino.    
  
}

void loop()
{
  
// Можно поместить невидимый курсор в любое место на ЖК дисплее
// перед передачей данных. Местоположение определяется от нулевого
// символа верхней строки. Верхняя строка - 0, нижняя строка - 1. 
// Столбцы считаются с нулевого символа с лева, до 15-го справа.

// В дополнение к "Hello, World!"(привет, мир!) напечатанных ранее, 
// выведем на экран время в секундах, от последнего сброса Arduino.
// Не забудьте, что данные, которые Вы отправляете на дисплей,
// остаются там, пока Вы их не сотрете, командой "lcd.clear()",
// или не отключите питание.

// Здесь мы устанавливаем невидимый курсор в первый столбец (столбец 0),
// второй строки (строка 1):
  
  lcd.setCursor(0,1);

// Теперь выведем на экран число секунд (millis() / 1000),
// которое проработала Arduino от последнего перезапуска:

  lcd.print(millis()/1000);

// ПОДСКАЗКА: Так как увеличение чисел всегда растет в длину,
// (1..10..20...100....1000) то новые посланные, всегда,
// будут перекрывать предыдущие. Но, если Вы решите вывести на
// экран уменьшение чисел (пример - обратный отсчет), то Вы
// увидите на дисплее артефакты, как бы зависшие символы, это
// происходит если новое значение короче старого.
  
// Чтобы этого не происходило, Вы должны сначало стереть старое,
// прежде чем записать новое. Это можно сделать перезаписав последнее
// число пробелами. 
// Если Вы сотрете старое число и сразу запишете новое, никто, даже Вы
// этого не заметит. Вот типичная последовательность кода:  
  
// lcd.setCursor(0,1);   // устанавливаем курсор в 0-ом столбце, 1 строка
// lcd.print("       "); // стираем самое длинное число
// lcd.setCursor(0,1);   // устанавливаем курсор в 0-ом столбце, 1 строка
// lcd.print(millis()/1000); // печатаем число секунд после сброса
  
// ДАЛЬНЕЙШИЕ ШАГИ:

// Вы узнали основы, о том как присоединить жидкокристаллический дисплей 
// к Arduino, и как отправить текст или числовые данные на дисплей!

// У LCD библиотеки есть множество команд которые позволяют управлять ЖКИ:
// показать, спрятать курсор, прокрутить его, прокрутить экран вверх или вниз и т. д.
// для получения дополнительной информации:
// http://arduino.cc/en/Reference/LiquidCrystal
  
// Arduino IDE идет с множеством дополнительных библиотек, после установки
// их можно найти в c:\Program Files\Arduino\libraries\
// Примеры библиотеки LiquidCrystal, с которыми вы можете "поиграть" находятся:
// c:\Program Files\Arduino\libraries\LiquidCrystal\examples\

// Весело и с интересом проведите время, и сообщите нам о том, что Вы создаете!
// Ваши друзья - ArduinoKit.Ru.
  
}
Что вы должны увидеть:
Первоначально на дисплее вы должны увидеть слова "hello, world!", неожиданно появившиеся на вашем дисплее. Помните?, вы можете настроить контрастность с помощью ручки потенциометра, если слова на дисплее не очень разборчивы. Если возникли сложности, убедитесь, что код программы написан правильно, и дважды проверьте правильность всех соединений.
Возможные трудности:
Экран ярко светится
Попытайтесь отрегулировать яркость ручкой потенциометра, в противном случае вы не сможете прочесть текст на экране ЖК. Вообще не работает
Тщательно проверьте правильность написания кода программы, в частности подключение библиотеки LiquidCrystal.
Мерцание экрана
Тщательно проверьте правильность соединения вашей платы и Arduino, а также цепей питания.
Применение в жизни:
ЖК дисплеи сегодня есть везде! Часы на вашей руке, табло в микроволновке, даже современный телевизор есть не что иное, как Жидкокристалический Дисплей!