Овој туторијал е дел од: Тастатури
Сите видеа на тастатурата се наведени овде.
Ардуино код и видео за тастатура со четири копчиња
Во ова упатство, ќе научиме како да користиме тастатура со четири копчиња со Arduino. Овој проект е особено корисен за апликации каде што ви требаат повеќе копчиња, но сакате да го минимизирате бројот на жици што се користат. Со поврзување на тастатурата на специфичен начин, можеме да постигнеме функционална поставеност со само пет жици наместо осум.

Тастатурата со четири копчиња го поедноставува процесот на жицирање, бидејќи има заедничка врска што го намалува вкупниот број на потребни жици. Секое копче е поврзано со Arduino преку одредени пинови, овозможувајќи лесна интеракција и контрола. Овој водич ќе ги покрие жицирањето, кодот и очекуваното однесување на тастатурата, за да можете успешно да го реплицирате проектот (во видео на 02:30).
Објаснување на хардверот
Главните компоненти на овој проект вклучуваат тастатура со четири копчиња и Arduino плоча. Тастатурата содржи четири копчиња, и секое копче се поврзува со Arduino преку две жици — една заедничка жица и една посветена жица за секое копче. Оваа поставеност овозможува јасни врски додека го минимизира нередот.
Arduino ги толкува притискањата на копчињата користејќи дигитални влезови, потпирајќи се на внатрешни pull-up отпорници за да обезбеди стабилни читања. Кога копчето е притиснато, ја поврзува соодветната пина со земја, овозможувајќи му на Arduino да ја детектира промената во состојбата.
Детали од техничкиот лист
| Производител | Генерички |
|---|---|
| Број на дел | Тастатура со 4 копчиња |
| Логички/IO напон | 5 V |
| Напон на напојување | 5 V |
| Број на копчиња | 4 |
| Тип на заедничка пина | Active-low |
| Отпорност на копчето | 1 kΩ (тип.) |
| Пакет | Флексибилна PCB |
| Белешки / варијанти | Достапна во повеќе распореди |
- Секое копче бара две врски: една за копчето и една за заедничката земја.
- Користењето внатрешни pull-up отпорници го поедноставува жицирањето и го намалува бројот на компоненти.
- Осигурете се дека заедничката пина е поврзана со земја за правилна работа.
- Дебounce притискањата на копчињата во софтверот за да избегнете лажни читања.
- Тестирајте ја функционалноста на копчињата со едноставен сериски печатеж за повратна информација.
Инструкции за жицирање

За да ја жицирате тастатурата со четири копчиња на Arduino, следете ги овие чекори:
- Поврзете ја првата жица на копчето со пина
2на Arduino. - Поврзете ја втората жица на копчето со пина
3. - Поврзете ја третата жица на копчето со пина
4. - Поврзете ја четвртата жица на копчето со пина
5. - Поврзете ја заедничката жица од тастатурата со пината за земја на Arduino.
Осигурете се дека секоја жица е безбедно поврзана за да избегнете лабави врски. Ако наидувате на проблеми, проверете ја секоја врска според доделените пинови прикажани во видеото (во видео на 04:15).
Примери на код и објаснување
Следниот фрагмент од код ги иницијализира пиновите за тастатурата и ги поставува како влезови:
#define key1 2 // поврзете ја жицата 1 со пина 2
#define key2 3 // поврзете ја жицата 2 со пина 3
#define key3 4 // поврзете ја жицата 3 со пина 4
#define key4 5 // поврзете ја жицата 4 со пина 5
void setup() {
Serial.begin(9600);
pinMode(key1, INPUT_PULLUP); // поставете ја пината како влез
pinMode(key2, INPUT_PULLUP); // поставете ја пината како влез
pinMode(key3, INPUT_PULLUP); // поставете ја пината како влез
pinMode(key4, INPUT_PULLUP); // поставете ја пината како влез
}
Во кодот погоре, секое копче е дефинирано со соодветен број на пина. Режимот INPUT_PULLUP осигурува дека пиновите читаат високо кога не се притиснати, поедноставувајќи ја детекцијата на притискање на копчето.
Функцијата loop ја чита состојбата на секое копче и печати соодветна порака кога е притиснато:
void loop() {
int key1S = digitalRead(key1); // читај дали key1 е притиснато
int key2S = digitalRead(key2); // читај дали key2 е притиснато
int key3S = digitalRead(key3); // читај дали key3 е притиснато
int key4S = digitalRead(key4); // читај дали key4 е притиснато
if(!key1S) {
Serial.println("копчето 1 е притиснато");
}
if(!key2S) {
Serial.println("копчето 2 е притиснато");
}
// Дополнителен код за key3 и key4...
delay(100);
}
Овој сегмент од код ја проверува состојбата на секое копче и печати порака на серискиот монитор кога копчето е притиснато. delay(100) овозможува debounce ефект, осигурувајќи дека повеќекратни притискања не се регистрираат во брза последователност.
Демонстрација / Што да очекувате
По успешното жицирање и поставување на кодот на вашиот Arduino, треба да очекувате серискиот монитор да прикажува пораки што означуваат кое копче е притиснато. Притискањето на копчето еден ќе излезе "копчето 1 е притиснато" и така натаму за другите копчиња. Ако пораките не се појавуваат, проверете го жицирањето и осигурете се дека заедничката жица е поврзана со земја.
Бидете внимателни со обратни врски, бидејќи тоа може да доведе до неочекувано однесување. Осигурете се дека користените пинови одговараат на оние дефинирани во вашиот код (во видео на 06:45).
Временски ознаки на видеото
- 00:00 - Вовед
- 02:30 - Објаснување на жицирањето
- 04:15 - Доделување на пинови
- 06:45 - Тестирање на тастатурата
Овој туторијал е дел од: Тастатури
- Користење на 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
- 1602 LCD Keypad Shield: Основен код
++
/*
* This is the Arduino code for a 4-key keypad.
* Watch the video for details and demo: https://youtu.be/BiOh_Z2N7kk
*
* Written by Ahmad Shamshiri for the Robojax Video channel,
get code, wiring diagram and resources at www.Robojax.com/RJT37
* Date: December 28, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code, given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
* This code has been downloaded from https://robojax.com
// Recorded December 28, 2017 for Robojax.com
#define key1 2 //connect wire 1 to pin 2
#define key2 3 //connect wire 2 to pin 3
#define key3 4 //connect wire 3 to pin 4
#define key4 5 //connect wire 4 to pin 5
void setup() {
Serial.begin(9600);
pinMode(key1, INPUT_PULLUP);// set pin as input
pinMode(key2, INPUT_PULLUP);// set pin as input
pinMode(key3, INPUT_PULLUP);// set pin as input
pinMode(key4, INPUT_PULLUP);// set pin as input
}
void loop() {
int key1S = digitalRead(key1);// read if key1 is pressed
int key2S = digitalRead(key2);// read if key2 is pressed
int key3S = digitalRead(key3);// read if key3 is pressed
int key4S = digitalRead(key4);// read if key4 is pressed
// Code written for Robojax.com video tutorial
if(!key1S){
Serial.println("key 1 is pressed");
}
if(!key2S){
Serial.println("key 2 is pressed");
}
if(!key3S){
Serial.println("key 3 is pressed");
}
if(!key4S){
Serial.println("key 4 is pressed");
}
delay(100);
}
Работи што можеби ќе ви требаат
-
Amazon
-
AliExpressBuy soft keypad from AliExpresss.click.aliexpress.com
Ресурси и референци
Сè уште нема ресурси.