Пребарување код

Ардуино код и видео за тастатура со четири копчиња

Ардуино код и видео за тастатура со четири копчиња

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

4 key flixable keypad

Тастатурата со четири копчиња го поедноставува процесот на жицирање, бидејќи има заедничка врска што го намалува вкупниот број на потребни жици. Секое копче е поврзано со 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 wiring for 4 key keypad
Arduino wiring for 4 key keypad

За да ја жицирате тастатурата со четири копчиња на 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 - Тестирање на тастатурата

Слики

4 key flixable keypad
4 key flixable keypad
Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad
50-Arduino Code for 4 key keypad
Јазик: C++
++
/*
 * 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);
}

Работи што можеби ќе ви требаат

Ресурси и референци

Сè уште нема ресурси.

Датотеки📁

Arduino библиотеки (zip)