Search Code

Arduino kod i video za tastaturu sa četiri tipke

Arduino kod i video za tastaturu sa četiri tipke

U ovom tutorijalu naučit ćemo kako koristiti tastaturu sa četiri tipke s Arduino pločom. Ovaj projekat je posebno koristan za aplikacije gdje su vam potrebna višestruka dugmad, ali želite smanjiti broj žica koje se koriste. Povezivanjem tastature na specifičan način, možemo postići funkcionalnu postavku sa samo pet žica umjesto osam.

4 key flixable keypad

Tastatura sa četiri tipke pojednostavljuje proces povezivanja, jer ima zajedničku vezu koja smanjuje ukupan broj potrebnih žica. Svaka tipka je povezana s Arduino pločom preko određenih pinova, omogućavajući laku interakciju i kontrolu. Ovaj vodič će pokriti povezivanje, kod i očekivano ponašanje tastature, tako da možete uspješno replicirati projekat (u videu na 02:30).

Objašnjenje hardvera

Glavne komponente ovog projekta uključuju tastaturu sa četiri tipke i Arduino ploču. Tastatura sadrži četiri dugmeta, a svako dugme se povezuje s Arduino pločom preko dvije žice—jedne zajedničke žice i jedne namjenske žice za svako dugme. Ova postavka omogućava jednostavne veze uz minimaliziranje nereda.

Arduino interpretira pritiske dugmadi koristeći digitalne ulaze, oslanjajući se na interne pull-up otpornike kako bi osigurao stabilna očitavanja. Kada je dugme pritisnuto, povezuje odgovarajući pin s masom, omogućavajući Arduinu da detektuje promjenu stanja.

Detalji iz tehničke dokumentacije

ProizvođačGenerički
Broj dijelaTastatura sa 4 tipke
Logički/IO napon5 V
Napon napajanja5 V
Broj tipki4
Tip zajedničkog pinaAktivan-nizak
Otpornost dugmeta1 kΩ (tip.)
PakovanjeFleksibilna PCB ploča
Napomene / varijanteDostupno u više rasporeda

  • Svako dugme zahtijeva dvije veze: jednu za dugme i jednu za zajedničku masu.
  • Korištenje internih pull-up otpornika pojednostavljuje povezivanje i smanjuje broj komponenti.
  • Osigurajte da je zajednički pin povezan s masom za ispravan rad.
  • Izvršite debouncing pritisaka dugmadi u softveru kako biste izbjegli lažna očitavanja.
  • Testirajte funkcionalnost dugmadi jednostavnim serijskim ispisom za povratnu informaciju.

Upute za povezivanje

Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad

Za povezivanje tastature sa četiri tipke na Arduino, slijedite ove korake:

  • Spojite prvu žicu tipke na pin 2 na Arduinu.
  • Spojite drugu žicu tipke na pin 3.
  • Spojite treću žicu tipke na pin 4.
  • Spojite četvrtu žicu tipke na pin 5.
  • Spojite zajedničku žicu s tastature na pin mase na Arduinu.

Provjerite da je svaka žica čvrsto povezana kako biste izbjegli labave veze. Ako naiđete na probleme, provjerite svaku vezu prema dodijeljenim pinovima prikazanim u videu (u videu na 04:15).

Primjeri koda i objašnjenje

Sljedeći isječak koda inicijalizira pinove za tastaturu i postavlja ih kao ulaze:

#define key1 2 //spojite žicu 1 na pin 2
#define key2 3 //spojite žicu 2 na pin 3
#define key3 4 //spojite žicu 3 na pin 4
#define key4 5 //spojite žicu 4 na pin 5

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP); // postavi pin kao ulaz
 pinMode(key2, INPUT_PULLUP); // postavi pin kao ulaz
 pinMode(key3, INPUT_PULLUP); // postavi pin kao ulaz
 pinMode(key4, INPUT_PULLUP); // postavi pin kao ulaz   
}

U gornjem kodu, svaka tipka je definirana s odgovarajućim brojem pina. INPUT_PULLUP način rada osigurava da pinovi očitavaju visoko stanje kada nisu pritisnuti, pojednostavljujući detekciju pritiska dugmeta.

Funkcija loop čita stanje svake tipke i ispisuje odgovarajuću poruku kada je pritisnuta:

void loop() {
  int key1S = digitalRead(key1); // čitaj da li je key1 pritisnut
  int key2S = digitalRead(key2); // čitaj da li je key2 pritisnut
  int key3S = digitalRead(key3); // čitaj da li je key3 pritisnut
  int key4S = digitalRead(key4); // čitaj da li je key4 pritisnut 

  if(!key1S) {
    Serial.println("tipka 1 je pritisnuta");
  }
  if(!key2S) {
    Serial.println("tipka 2 je pritisnuta");
  }
  // Dodatni kod za key3 i key4...
  delay(100);
}

Ovaj segment koda provjerava stanje svake tipke i ispisuje poruku na serijski monitor kada je tipka pritisnuta. delay(100) omogućava efekat debouncinga, osiguravajući da se višestruki pritisci ne registruju u brzom slijedu.

Demonstracija / Šta očekivati

Nakon uspješnog povezivanja i uploada koda na vaš Arduino, trebali biste očekivati da serijski monitor prikazuje poruke koje označavaju koja je tipka pritisnuta. Pritisak na tipku jedan će prikazati "tipka 1 je pritisnuta" i tako dalje za ostale tipke. Ako se poruke ne pojavljuju, provjerite svoje povezivanje i osigurajte da je zajednička žica povezana s masom.

Budite oprezni s obrnutim vezama, jer to može dovesti do neočekivanog ponašanja. Osigurajte da korišteni pinovi odgovaraju onima definiranim u vašem kodu (u videu na 06:45).

Vremenske oznake videa

  • 00:00 - Uvod
  • 02:30 - Objašnjenje povezivanja
  • 04:15 - Dodjela pinova
  • 06:45 - Testiranje tastature

Images

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
Language: 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);
}

Things you might need

Resources & references

No resources yet.

Files📁

Arduino Libraries (zip)