Soek Kode

Arduino-kode en video vir 'n vier-sleutel-sleutelbord

Arduino-kode en video vir 'n vier-sleutel-sleutelbord

In hierdie tutoriaal gaan ons leer hoe om 'n vier-sleutel sleutelbord met 'n Arduino te gebruik. Hierdie projek is veral nuttig vir toepassings waar jy veelvuldige knoppies nodig het maar die aantal drade wat gebruik word, wil minimaliseer. Deur die sleutelbord op 'n spesifieke manier te koppel, kan ons 'n funksionele opstelling met net vyf drade in plaas van agt bereik.

4 key flixable keypad

Die vier-sleutel sleutelbord vereenvoudig die bedradingsproses, aangesien dit 'n gemeenskaplike verbinding het wat die totale aantal drade wat benodig word, verminder. Elke sleutel is gekoppel aan die Arduino deur aangewese penne, wat maklike interaksie en beheer moontlik maak. Hierdie gids sal die bedrading, kode en verwagte gedrag van die sleutelbord dek, sodat jy die projek suksesvol kan herhaal (in video by 02:30).

Hardeware Verduidelik

Die hoofkomponente van hierdie projek sluit 'n vier-sleutel sleutelbord en 'n Arduino-bord in. Die sleutelbord bevat vier knoppies, en elke knoppie verbind aan die Arduino via twee drade—een gemeenskaplike draad en een toegewyde draad vir elke knoppie. Hierdie opstelling maak voorsiening vir eenvoudige verbindings terwyl rommel geminimaliseer word.

Die Arduino interpreteer die knoppiedrukke met behulp van digitale insette, en maak staat op interne optrek-weerstande om stabiele lesings te verseker. Wanneer 'n knoppie gedruk word, verbind dit die ooreenstemmende pen aan grond, wat die Arduino in staat stel om die verandering in toestand op te spoor.

Datablad Besonderhede

VervaardigerGeneries
Deelnommer4-Sleutel Sleutelbord
Logika/IO-spanning5 V
Toevoerspanning5 V
Aantal sleutels4
Gemeenskaplike pen tipeAktief-laag
Knoppieweerstand1 kΩ (tip.)
PakketBuigsame PCB
Notas / varianteBeskikbaar in veelvuldige uitlegte

  • Elke knoppie benodig twee verbindings: een vir die knoppie en een vir die gemeenskaplike grond.
  • Die gebruik van interne optrek-weerstande vereenvoudig bedrading en verminder komponenttelling.
  • Maak seker die gemeenskaplike pen is aan grond gekoppel vir korrekte werking.
  • Ontklits knoppiedrukke in sagteware om vals lesings te vermy.
  • Toets knoppiefunksionaliteit met 'n eenvoudige reeksdruk vir terugvoer.

Bedradingsinstruksies

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

Om die vier-sleutel sleutelbord aan die Arduino te bedraad, volg hierdie stappe:

  • Koppel die eerste sleuteldraad aan pen 2 op die Arduino.
  • Koppel die tweede sleuteldraad aan pen 3.
  • Koppel die derde sleuteldraad aan pen 4.
  • Koppel die vierde sleuteldraad aan pen 5.
  • Koppel die gemeenskaplike draad van die sleutelbord aan die grondpen op die Arduino.

Maak seker dat elke draad veilig gekoppel is om los verbindings te vermy. As jy probleme ervaar, kontroleer elke verbinding teen die pen-toewysings wat in die video gewys word (in video by 04:15).

Kode Voorbeelde & Deurloop

Die volgende kodestuk initialiseer die penne vir die sleutelbord en stel hulle as insette:

#define key1 2 //koppel draad 1 aan pen 2
#define key2 3 //koppel draad 2 aan pen 3
#define key3 4 //koppel draad 3 aan pen 4
#define key4 5 //koppel draad 4 aan pen 5

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP); // stel pen as inset
 pinMode(key2, INPUT_PULLUP); // stel pen as inset
 pinMode(key3, INPUT_PULLUP); // stel pen as inset
 pinMode(key4, INPUT_PULLUP); // stel pen as inset   
}

In die kode hierbo word elke sleutel met 'n ooreenstemmende penommer gedefinieer. Die INPUT_PULLUP-modus verseker dat die penne hoog lees wanneer nie gedruk nie, wat die knoppiedruk-opsporing vereenvoudig.

Die lusfunksie lees die toestand van elke sleutel en druk die ooreenstemmende boodskap wanneer gedruk:

void loop() {
  int key1S = digitalRead(key1); // lees of key1 gedruk is
  int key2S = digitalRead(key2); // lees of key2 gedruk is
  int key3S = digitalRead(key3); // lees of key3 gedruk is
  int key4S = digitalRead(key4); // lees of key4 gedruk is 

  if(!key1S) {
    Serial.println("sleutel 1 is gedruk");
  }
  if(!key2S) {
    Serial.println("sleutel 2 is gedruk");
  }
  // Bykomende kode vir key3 en key4...
  delay(100);
}

Hierdie segment van kode kontroleer die toestand van elke sleutel en druk 'n boodskap na die reeksmonitor wanneer 'n sleutel gedruk word. Die delay(100) maak voorsiening vir 'n ontklitseffek, wat verseker dat veelvuldige drukke nie in vinnige opeenvolging geregistreer word nie.

Demonstrasie / Wat om te Verwags

Na suksesvolle bedrading en oplaai van die kode na jou Arduino, moet jy verwag dat die reeksmonitor boodskappe vertoon wat aandui watter sleutel gedruk is. Druk sleutel een sal "sleutel 1 is gedruk" uitset en so aan vir die ander sleutels. As die boodskappe nie verskyn nie, kontroleer jou bedrading en maak seker die gemeenskaplike draad is aan grond gekoppel.

Wees versigtig vir omgekeerde verbindings, aangesien dit tot onverwagte gedrag kan lei. Maak seker dat die penne wat gebruik word ooreenstem met dié wat in jou kode gedefinieer is (in video by 06:45).

Video Tydstempels

  • 00:00 - Inleiding
  • 02:30 - Bedrading Verduideliking
  • 04:15 - Pen Toewysings
  • 06:45 - Toets die Sleutelbord

Beelde

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

Goedere wat jy dalk nodig het

Hulpbronne en verwysings

Geen hulpbronne nog.

Lêers📁

Arduino Biblioteke (zip)