Цена:
Технические характеристики
Любое интерактивное приложение с микропроцессорным управлением не может существовать без индивидуальных средств общения с внешним миром, представляющих разнообразные радиоэлектронные компоненты ввода-вывода информации. Даже такому простому и распространённому проекту, как домашняя метеостанция, с которого довольно часто начинается погружение в изучение основ программирования микроконтроллерных платформ, необходима демонстрация результатов измерения температуры и давления. Развитое приложение в составе с несколькими датчиками или сенсорами, выполняющими оценку состояния воздуха или нахождение уровня окружающего шума/освещения, может потребовать значимой, или даже всей области свободного пространства на цифровом экране для отображения имеющихся значений и параметров. Чтобы не столкнуться с условиями нехватки ресурсов экрана, опытные разработчики выбирают наиболее подходящее решение из нескольких вариантов - увеличение размеров/разрешения экрана (не всегда лучший путь), минимизация/урезание возможностей графического интерфейса, создание многостраничного меню, и так далее.
Модуль расширения DFRobot LCD12864 создан для задач программирования интерактивных приложений с чистого листа. Устанавливается модуль поверх соединительных разъёмов микроконтроллера. На плате представлены монохромный ЖК дисплей с драйвером ST7565 и управляемой светодиодной подстветкой, белым фоном и чёрным шрифтом, разрешением 128 х 64 графических точек (они же пикселы). Дисплей способен выводить абсолютно любые текстовые, символьные и графические данные, образованные алгоритмами приложения. Кроме 2.1-дюймового COG-экрана, в схему платы расширения интегрирован механический 5-позиционный микро-джойстик, поддерживающий 4 направления (влево, вправо, вверх, вниз) и нажатие по центру подобно обычной кнопке. Джойстик по праву считается удобнейшим инструментом навигации между графическими объектами на экране, включая перемещение по спискам с выделением элементов (например, строки или разделы графического меню приложения).
Занимая в форм-факторе UNO R3 все доступные операционные порты подключения периферии, модуль расширения DFRobot Gravity LCD12864 Shield использует для себя лишь часть из них. Задействованы линии D10, D11 и D13 интерфейса SPI, а также D7-D9 для управления драйвером и светодиодной подсветкой ЖК-экрана. Микро-джойстик подведён к аналоговому выводу А0. Остальные свободные цифровые и цифро-аналоговые вводы-выводы Arduino-совместимого микроконтроллера, в том числе шины последовательной передачи данных UART на выводах D0-D1 и I2C на вывода A4-A5, скомбинированы в 3-пиновые разъёмы с линиями питания 5В, и разведены на плате в две раздельные группы J5, J6 и J7, J8, J10. Штыри этих групп окрашены в зелёный и синий цвета соотвественно, порты пронумерованы шелкографией. Шаг между контактами 2.54 мм (или 0,1 дюйма) позволяет выполнять проводные соединения с другими совместимыми модулями на этапах прототипирования или отладки приложения.
Модулю расширения DFRobot Gravity LCD12864 Shield для работы требуется два источника постоянного напряжения с 3.3-вольтовым и 5-вольтовым потенциалом, присутствующие в схеме распределения электроэнергии у микроконтроллерных плат формата UNO R3. Встроенный индикатор питания и аналоговый джойстик модуля расширения LCD12864 Gravity Shield сопряжены с контуром 5В, а монохромный COG экран — с контуром 3.3В. Дополнительно на плате есть физическая кнопка Reset для сброса микроконтроллера
Компоненты и интерфейсы платы расширения DFRobot LCD12864
Пример программы управления джойстиком с подключением библиотеки U8g2 для вывода изображения на экран
// Подключение библиотеки
#include <Arduino.h>
#include <U8g2lib.h>
// Перемененные и определения
#define joystickPin 0
#define RIGHT 1
#define UP 2
#define LEFT 3
#define DOWN 4
#define PUSH 5
#define MID 0
bool joystickChange;
// Инициализация графического драйвера
U8G2_ST7565_NHD_C12864_F_4W_SW_SPI u8g2(U8G2_R2, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
// Процедура считывания состояния джойстика
int readJoystick(void) {
int key_value = 0;
int stickRaw = analogRead(joystickPin);
delay(10);
static int keyValueLast = 0;
if(stickRaw < 100)
key_value = 3; // влево
else if(100 <= stickRaw && stickRaw < 300)
key_value = 5; // нажатие
else if(300 <= stickRaw && stickRaw < 500)
key_value = 4; // вниз
else if(500 <= stickRaw && stickRaw < 700)
key_value = 1; // вправо
else if(700 <= stickRaw && stickRaw < 900)
key_value = 2; // вверх
else
key_value = 0; // в центре
if (keyValueLast != key_value){joystickChange = true;keyValueLast = key_value;}
return key_value;
}
// Процедура оценки состояния джойстика
boolean joystickAvailable(void){
readJoystick();
delay(10);
boolean temp=joystickChange;
joystickChange=false;
return temp;
}
// Процедура заполнения буфера
void draw(void) {
u8g2.setFont(u8g2_font_ncenB08_tr); // Выбор подходящего шрифта
u8g2.drawStr(0,20,"www.DFRobot.com"); // Запись во внутреннюю память
u8g2.drawStr(0,40,"Joystick is: ");
if (joystickAvailable()) {
switch (readJoystick()) {
case RIGHT:
u8g2.drawStr(70,40,"RIGHT");
break;
case LEFT:
u8g2.drawStr(70,40,"LEFT");
break;
case UP:
u8g2.drawStr(70,40,"UP");
break;
case DOWN:
u8g2.drawStr(70,40,"DOWN");
break;
case PUSH:
u8g2.drawStr(70,40,"PUSH");
break;
case MID:
u8g2.drawStr(70,40,"MID");
break;
};
}
}
void setup(void) {
u8g2.begin();
u8g2.setContrast(50); // Настройка контрастности экрана 0-255
pinMode(joystickPin, INPUT); // Аналоговый вход 0 в состояние приёма данных
}
void loop(void) {
u8g2.clearBuffer(); // Очистка внутренней памяти
draw();
u8g2.sendBuffer(); // Вывод содержимого внутренней памяти на экран
delay(500);
}
Электрическая принципиальная схема Gravity LCD12864 Shield
Программное обеспечение
Техническая документация
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru