Овој туторијал е дел од: Тастатури
Сите видеа на тастатурата се наведени овде.
1602 LCD Keypad Shield: Основен код
Во ова упатство, ќе истражиме како да програмираме и користиме 1602 LCD Keypad Shield со Arduino. Овој штит има дисплеј со 16 карактери и 2 линии и тастатура што овозможува различни функции за внес. До крајот на овој водич, ќе можете да прикажувате пораки и ефикасно да одговарате на притискањата на копчињата.
Фокусот ќе биде на создавање едноставна програма што детектира притискања на копчиња и прикажува соодветни пораки на LCD-то. Можете да го следите видеото за визуелна демонстрација (во видео на 03:00).
Објаснување на хардверот
Примарната компонента во оваа изработка е 1602 LCD Keypad Shield. Овој штит се поврзува директно на Arduino плочата и обезбедува и дисплеј и тастатура за интеракција со корисникот. LCD-то може да прикажува текстуални пораки, додека тастатурата им овозможува на корисниците да избираат опции преку различни копчиња.
Тастатурата работи со аналоген влез, кој Arduino го чита за да одреди кое копче е притиснато. Секое копче има уникатен отпор, што му овозможува на микроконтролерот да го идентификува копчето врз основа на аналогната вредност добиена од сензорот.
Детали од техничката документација
| Производител | Генерички |
|---|---|
| Број на дел | 1602 LCD Keypad Shield |
| Логички/IO напон | 5 V |
| Напон на напојување | 5 V |
| Излезна струја (по канал) | 2 mA |
| Врвна струја (по канал) | 20 mA |
| Насоки за PWM фреквенција | Н/П |
| Прагови на влезна логика | 0.3 Vcc до 0.7 Vcc |
| Пад на напон / RDS(on) / заситување | Н/П |
| Термички граници | 70 °C |
| Пакет | Формат на штит |
| Белешки / варијанти | Компатибилен со Arduino Uno |
- Осигурете се дека LCD-то е напојувано со 5 V за да избегнете оштетување.
- Користете соодветни pull-up отпорници за тастатурата ако е потребно.
- Дебансирајте ги притискањата на копчињата во кодот за да избегнете повеќекратни активации.
- Внимавајте на границите на струјата за да избегнете прегревање.
- Тестирајте ги врските пред да го напојувате колото.
Инструкции за поврзување
За да го поврзете 1602 LCD Keypad Shield, едноставно приклучете го директно на Arduino плочата. Штитот е дизајниран да се усогласи со пинската конфигурација на Arduino Uno. Осигурете се дека пиновите се безбедно поврзани.
Копчињата на тастатурата се поврзуваат со аналогниот влезен пин A0. Линиите за податоци на LCD-то се управуваат внатрешно од библиотеката што се користи, така што нема да треба да ги поврзувате одделно. Штитот исто така користи неколку дигитални пинови за контрола на позадинското осветлување и други функции, кои се претходно дефинирани во библиотеката. Ако ја следите документацијата на библиотеката, ќе откриете дека таа обично ги управува овие врски автоматски.
Примери на код и објаснување
Во кодот, прво ја вклучуваме потребната библиотека за контрола на LCD-то:
#include <LCD4Bit_mod.h>
Оваа библиотека ја олеснува комуникацијата со 1602 LCD-то. Потоа создаваме инстанца на LCD објектот со наведен број на линии.
Следно, го иницијализираме LCD-то во функцијата setup():
lcd.init();
Оваа линија го подготвува LCD-то за употреба. По иницијализацијата, можеме да прикажеме тест порака користејќи ја функцијата lcd.printIn().
Во главната јамка, го читаме аналогниот влез за да детектираме притискања на копчиња:
adc_key_in = analogRead(0);
Оваа линија ја чита вредноста од тастатурата. Вредноста помага да се одреди кое копче е притиснато користејќи ја функцијата get_key() што ја претвора ADC вредноста во број на копче.
Демонстрација / Што да очекувате
Кога ќе го стартувате кодот, притискањето на копчињата ќе прикажува пораки што одговараат на притиснатото копче на LCD-то. На пример, притискањето на десното копче ќе прикаже „Right Key OK“ на дисплејот (во видео на 05:30). Ако детекцијата на копчиња не функционира правилно, проверете ги врските и осигурете се дека соодветните библиотеки се вклучени во вашата Arduino IDE.
Временски ознаки од видеото
- 00:00 - Вовед
- 03:00 - Преглед на кодот
- 05:30 - Демонстрација на притискање на копчиња
Овој туторијал е дел од: Тастатури
- Користење на 4x3 тастатура со Arduino
- Ардуино код и видео за тастатура со четири копчиња
- Ардуино код и видео: 4x4 матрична црна тастатура
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Како да користите 4x4 мек тастатура со Arduino
- How to Use a 5x4 20-Key Keypad with Arduino to Detect Strings
- Lesson 67: Controlling an 8-Channel Relay with a Keypad Using Arduino
// Example use of LCD4Bit_mod library
// Downloaded from https://github.com/douggilliland/lb-Arduino-Code/tree/master/libraries/LCD4Bit_mod
// October 1, 2017. This example will work with a 1602 LCD keypad shield.
// Code used for a YouTube video for the Robojax channel
// Watch the video https://youtu.be/naSSiS_9rEw
#include <LCD4Bit_mod.h>
// Create an object to control an LCD.
// Number of lines in display = 1
LCD4Bit_mod lcd = LCD4Bit_mod(2);
// Key messages
char msgs[5][15] = {"Right Key OK ",
"Up Key OK ",
"Down Key OK ",
"Left Key OK ",
"Select Key OK" };
int adc_key_val[5] ={30, 150, 360, 535, 760 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;
void setup() {
pinMode(13, OUTPUT); // We'll use the debug LED to output a heartbeat
lcd.init();
// Optionally, now set up our application-specific display settings, overriding whatever the LCD did in lcd.init()
// lcd.commandWrite(0x0F);// Cursor on, display on, blink on. (Nasty!)
lcd.clear();
lcd.printIn("Robojax.com Testing");
}
void loop() {
adc_key_in = analogRead(0); // Read the value from the sensor
digitalWrite(13, HIGH);
key = get_key(adc_key_in); // Convert into key press
if (key != oldkey) // If keypress is detected
{
delay(50); // Wait for debounce time
adc_key_in = analogRead(0); // Read the value from the sensor
key = get_key(adc_key_in); // Convert into key press
if (key != oldkey)
{
oldkey = key;
if (key >=0){
lcd.cursorTo(2, 0); // Line = 2, x = 0
lcd.printIn(msgs[key]);
}
}
}
//delay(1000);
digitalWrite(13, LOW);
}
// Convert ADC value to key number
int get_key(unsigned int input)
{
int k;
for (k = 0; k < NUM_KEYS; k++)
{
if (input < adc_key_val[k])
{
return k;
}
}
if (k >= NUM_KEYS)
k = -1; // No valid key pressed
return k;
}
Ресурси и референци
-
НадворешноArduino Library LCD4Bit_mod (GitHub)github.com
Датотеки📁
Нема достапни датотеки.