Bincika Lambar

Lambar Arduino da Bidiyo don Faɗin Maɓalli Hudu

Lambar Arduino da Bidiyo don Faɗin Maɓalli Hudu

A cikin wannan koyawa, za mu koyi yadda ake amfani da madannai mai maɓalli huɗu tare da Arduino. Wannan aikin yana da amfani musamman ga aikace-aikace inda kake buƙatar maɓalli da yawa amma kana son rage yawan wayoyin da ake amfani da su. Ta hanyar haɗa madannai ta wata hanya ta musamman, za mu iya samun ingantaccen saiti tare da wayoyi biyar kawai maimakon takwas.

4 key flixable keypad

Madannai mai maɓalli huɗu yana sauƙaƙa tsarin wayoyi, saboda yana da haɗin gama gari wanda ke rage yawan wayoyin da ake buƙata. Kowane maɓalli yana haɗa zuwa Arduino ta hanyar fil ɗin da aka keɓe, yana ba da damar mu'amala da sarrafawa cikin sauƙi. Wannan jagorar zai rufe wayoyi, lambar, da kuma yadda madannai zai yi aiki, don haka za ka iya maimaita aikin cikin nasara (a cikin bidiyo a 02:30).

Kayan Aiki Da Aka Bayyana

Babban abubuwan wannan aikin sun haɗa da madannai mai maɓalli huɗu da allon Arduino. Madannai yana ƙunshe da maɓalli huɗu, kuma kowane maɓalli yana haɗa zuwa Arduino ta hanyar wayoyi biyu—waya ɗaya gama gari da waya ta musamman ga kowane maɓalli. Wannan saitin yana ba da damar haɗi cikin sauƙi yayin da yake rage rikice-rikice.

Arduino yana fassara latsa maɓalli ta amfani da shigarwar dijital, yana dogaro da resistors na ciki don tabbatar da ingantaccen karatu. Lokacin da aka latsa maɓalli, yana haɗa fil ɗin da ya dace zuwa ƙasa, yana ba da damar Arduino ya gano canjin yanayin.

Cikakkun Bayanai na Datasheet

ManufacturerGeneric
Part number4-Key Keypad
Logic/IO voltage5 V
Supply voltage5 V
Number of keys4
Common pin typeActive-low
Button resistance1 kΩ (typ.)
PackageFlexible PCB
Notes / variantsAvailable in multiple layouts

  • Kowane maɓalli yana buƙatar haɗi biyu: ɗaya don maɓalli da ɗaya don ƙasa gama gari.
  • Amfani da resistors na ciki yana sauƙaƙa wayoyi kuma yana rage yawan kayan aiki.
  • Tabbatar an haɗa fil ɗin gama gari zuwa ƙasa don ingantaccen aiki.
  • Debounce latsa maɓalli a cikin software don guje wa karatun ƙarya.
  • Gwada aikin maɓalli tare da bugu na serial mai sauƙi don amsa.

Umarnin Wayoyi

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

Don haɗa madannai mai maɓalli huɗu zuwa Arduino, bi waɗannan matakan:

  • Haɗa wayar maɓalli ta farko zuwa fil 2 akan Arduino.
  • Haɗa wayar maɓalli ta biyu zuwa fil 3.
  • Haɗa wayar maɓalli ta uku zuwa fil 4.
  • Haɗa wayar maɓalli ta huɗu zuwa fil 5.
  • Haɗa wayar gama gari daga madannai zuwa fil ɗin ƙasa akan Arduino.

Tabbatar an haɗa kowace waya da kyau don guje wa haɗin da ba su da ƙarfi. Idan ka fuskanci matsala, sake duba kowane haɗi da fil ɗin da aka nuna a cikin bidiyo (a cikin bidiyo a 04:15).

Misalan Lamba & Jagora

Wannan ɓangaren lambar yana fara fil ɗin don madannai kuma yana saita su azaman shigarwa:

#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   
}

A cikin lambar da ke sama, an ayyana kowane maɓalli tare da lambar fil ɗin da ya dace. Yanayin INPUT_PULLUP yana tabbatar da cewa fil ɗin suna karanta high lokacin da ba a latsa su ba, yana sauƙaƙa gano latsa maɓalli.

Aikin loop yana karanta yanayin kowane maɓalli kuma yana buga saƙon da ya dace lokacin da aka latsa:

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 

  if(!key1S) {
    Serial.println("key 1 is pressed");
  }
  if(!key2S) {
    Serial.println("key 2 is pressed");
  }
  // Additional code for key3 and key4...
  delay(100);
}

Wannan ɓangaren lambar yana duba yanayin kowane maɓalli kuma yana buga saƙo zuwa serial monitor lokacin da aka latsa maɓalli. delay(100) yana ba da damar debounce, yana tabbatar da cewa ba a yi rijistar latsawa da yawa cikin sauri ba.

Nuni / Abin Da Za Ka Yi Tsammani

Bayan ka haɗa wayoyi da loda lambar zuwa Arduino cikin nasara, ya kamata ka yi tsammanin serial monitor zai nuna saƙonni waɗanda ke nuna wane maɓalli aka latsa. Latsa maɓalli na ɗaya zai fitar da "key 1 is pressed" da sauransu ga sauran maɓallan. Idan saƙonni ba su bayyana ba, duba wayoyinka kuma tabbatar an haɗa wayar gama gari zuwa ƙasa.

Yi hankali da haɗin da aka juyar da su, domin wannan na iya haifar da hali marar tsammani. Tabbatar cewa fil ɗin da aka yi amfani da su sun dace da waɗanda aka ayyana a cikin lambarka (a cikin bidiyo a 06:45).

Lokutan Bidiyo

  • 00:00 - Gabatarwa
  • 02:30 - Bayanin Wayoyi
  • 04:15 - Fil ɗin Ayyuka
  • 06:45 - Gwajin Madannai

Hotuna

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

Abin da zaka iya bukata

Albarkatun da kuma shafukan da za a duba

Babu kayan aiki tukuna.

Fayiloli📁

Littattafan Arduino (zip)