Search Code

Arduino көмегімен 4x3 пернетақтаны қолдану

Arduino көмегімен 4x3 пернетақтаны қолдану

Бұл оқулықта біз Arduino-мен 4x3 пернетақтаны қалай қолдануға болатынын зерттейміз, пернелерді басуды оқу үшін. Бұл пернетақта әртүрлі жобаларда қолданылуы мүмкін, мысалы, қауіпсіздік жүйесі үшін қарапайым кіріс интерфейсін жасау немесе пайдаланушы кірісін қажет ететін кез келген қолданба. Осы нұсқаулықтың соңында сіз пернелерді басуды оқып, нақты пернелерге жауап бере аласыз.

Сымдарды қосу және кодты іске асырудың көрнекі демонстрациясы үшін ілеспе бейнені тексеруді ұмытпаңыз (бейнеде 00:00).

Аппараттық құрал түсіндірмесі

Бұл жобаның негізгі компоненттеріне 4x3 пернетақта және Arduino тақтасы кіреді. Пернетақта 4 қатар мен 3 бағанға орналасқан түймелер матрицасынан тұрады. Түйме басылғанда, ол белгілі бір қатарды белгілі бір бағанға қосады, бұл Arduino-ға қай түйменің басылғанын анықтауға мүмкіндік береді.

Arduino тақтасы пернетақта кірістерін оқитын орталық басқарушы ретінде әрекет етеді. Ол матрицалық пернетақтаны басқару процесін жеңілдететін және пернелерді басуды анықтауды оңайлататын Keypad кітапханасын пайдаланады.

Деректер парағының мәліметтері

ӨндірушіӘртүрлі
Бөлшек нөмірі4x3 Пернетақта
Логикалық кернеу5 В
Жұмыс токы≤ 20 мА
Перненің қызмет ету мерзімі≥ 1,000,000 басу
ҚаптамаМатрицалық пернетақта

  • Пернетақта түйреуіштерін Arduino-ның цифрлық түйреуіштеріне дұрыс қосыңыз.
  • Орнатуыңызға байланысты қажет болса, жоғары тарту немесе төмен тарту резисторларын қолданыңыз.
  • Arduino IDE-ге Keypad кітапханасының қосылғанына көз жеткізіңіз.
  • Қайталанатын оқуларды болдырмау үшін бағдарламалық қамтамасыз етуде пернелерді басуды кідіртіңіз (debounce).
  • Әр пернені дұрыс сым қосылуын және жұмысын растау үшін сынаңыз.

Сымдарды қосу нұсқаулары

Arduino_wiring_4x3_keypad

4x3 пернетақтаны Arduino-ға қосу үшін пернетақтаның қатар және баған түйреуіштерін Arduino-дағы цифрлық түйреуіштерге қосасыз. Қатар түйреуіштерін (әдетте 4 түйреуіш) Arduino-дағы 2, 3, 4 және 5 түйреуіштеріне қосыңыз. Баған түйреуіштері (әдетте 3 түйреуіш) 6, 7 және 8 түйреуіштеріне қосылуы керек.

Пернетақтаның жер түйреуішін Arduino-ның жеріне және қуат түйреуішін 5V шығысына қосқаныңызға көз жеткізіңіз. Бұл орнату Arduino-ға әр перне басылғанда оның күйін оқуға мүмкіндік береді, матрицаны сканерлеуді өңдеу үшін Keypad кітапханасын пайдаланады.

Код мысалдары және түсіндірме

Келесі код пернетақтаны инициализациялайды және басылған пернені сериялық мониторға басып шығарады. Перне мәндері символдар массивінде сақталады.

const byte ROWS = 4; //төрт қатар
const byte COLS = 3; //үш баған
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

keys массиві пернетақтаның орналасуын анықтайды, бұл пернелердің физикалық орналасуына сәйкес келеді. Әр символ пернетақтадағы түймені білдіреді.

Әрі қарай, біз setup() функциясында пернетақтаны орнатамыз:

void setup(){
  Serial.begin(9600);
  Serial.println("Robojax 4x3 пернетақта");
}

Бұл бөлік сериялық байланысты 9600 бод жылдамдығында инициализациялайды, бұл бізге пернелерді басуды сериялық мониторда көруге мүмкіндік береді.

Соңында, цикл пернелерді басуды тексереді және сәйкесінше жауап береді:

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  } 
  if (key =='4'){
    Serial.println("4 пернесі басылды");
  } 
}

Мұнда бағдарлама keypad.getKey() арқылы қандай да бір перненің басылғанын тексереді. Егер перне басылса, ол перненің мәнін басып шығарады. Сонымен қатар, егер '4' пернесі басылса, арнайы хабарлама көрсетіледі.

Демонстрация / Не күтуге болады

Орнату аяқталғанда, пернетақтадағы кез келген пернені басу сериялық мониторға сәйкес символды шығаруы керек. Егер '4' пернесі басылса, сол перненің іске қосылғанын көрсететін арнайы хабарлама басып шығарылады. Бұл функционалдылық күрделірек қолданбалар үшін осы негізді құруға мүмкіндік береді.

Тұрақсыз әрекетке әкелуі мүмкін қалқымалы кірістерден сақ болыңыз. Барлық қосылымдардың сенімді екеніне көз жеткізіңіз және дұрыс жұмысты растау үшін әр пернені сынаңыз (бейнеде 00:00).

Суреттер

4x3_kaypad-1
4x3_kaypad-1
4x3_kaypad-2
4x3_kaypad-2
4x3_kaypad-3
4x3_kaypad-3
4x3_kaypad-4
4x3_kaypad-4
4x3_kaypad-5
4x3_kaypad-5
Arduino_wiring_4x3_keypad
Arduino_wiring_4x3_keypad
128-Ardunino code for 4x3 keypad
Тіл: C++
/*
 * Library taken from: https://playground.arduino.cc/Code/Keypad
 * This is the Arduino code for a 4x3 keypad.
 * Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
resources page: www.Robojax.com/RJT104
 * 
 * Modified by Ahmad Shamshiri for the Robojax Video channel: www.Robojax.com/RJT104
 * Date: July 11, 2018 at 19:56 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
 * Watch video instructions for this code: 
 * 
 */
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  // Robojax 4x3 keypad test
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}
  
void loop(){
  // Robojax 4x3 keypad test
  char key = keypad.getKey();
    // Just print the pressed key
   if (key){
    Serial.println(key);
  } 
   // This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
  if (key =='4'){
    // If key matches what you are looking for
    Serial.println("Key 4 is pressed");
  } 

}

Сізге қажет болуы мүмкін нәрселер

Ресурстар мен сілтемелер

Әлі ресурстар жоқ.

Файлдар📁

Fritzing файлы

Басқа файлдар