Talaan ng mga Nilalaman:
- Hakbang 1: Pagsisimula
- Hakbang 2: Paggamit ng isang 12 Digit Keypad
- Hakbang 3: Paggamit ng isang 16 Digit Keypad
- Hakbang 4: Halimbawa ng Proyekto - PIN Access System
Video: Paggamit ng Numeric Keypads Sa Arduino: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Ang mga numerong keypad ay maaaring magbigay ng isang simpleng kahalili ng end-user para sa iba't ibang mga interface para sa iyong mga proyekto. O kung kailangan mo ng maraming mga pindutan, maaari ka nilang makatipid ng maraming oras patungkol sa konstruksyon. Tumatakbo kami sa pamamagitan ng pagkonekta sa kanila, gamit ang Arduino library at pagkatapos ay tapusin sa isang kapaki-pakinabang na halimbawa ng sketch.
Hakbang 1: Pagsisimula
Hindi alintana kung saan mo nakuha ang iyong mga keypad, siguraduhing makukuha mo ang sheet ng data - sapagkat mapapadali nito ang buhay kapag nag-wire up ang mga ito. Halimbawa - ang imahe sa hakbang na ito.
Mahalaga ang sheet ng data dahil sasabihin nito sa iyo kung aling mga pin o konektor sa keypad ang para sa mga hilera at haligi. Kung wala kang data sheet - kakailanganin mong manu-manong matukoy kung aling mga contact ang para sa mga hilera at haligi.
Maaari itong magawa gamit ang pagpapatuloy na pagpapaandar ng isang multimeter (ang buzzer). Magsimula sa pamamagitan ng paglalagay ng isang probe sa pin 1, ang iba pang pagsisiyasat sa pin 2, at pindutin ang isa-isa ng mga pindutan. Gumawa ng isang tala kung kailan nakumpleto ng isang pindutan ang circuit, pagkatapos ay lumipat sa susunod na pin. Malapit mong malaman ang alin. Halimbawa, sa halimbawang keypad pin 1 at 5 ay para sa pindutang “1 ″, 2 at 5 para sa“4 ″, atbp…
Sa puntong ito mangyaring mag-download at mag-install ng keypad Arduino library. Ipapakita namin ngayon kung paano gamitin ang parehong mga keypad sa simpleng mga halimbawa.
Hakbang 2: Paggamit ng isang 12 Digit Keypad
Gagamitin namin ang maliit na itim na keypad, isang Arduino Uno-compatible at isang LCD na may isang interface ng I2C para sa mga layuning ipakita. Kung wala kang isang LCD maaari mong palaging ipadala ang teksto sa serial monitor sa halip.
Wire up ang iyong LCD pagkatapos ikonekta ang keypad sa Arduino sa sumusunod na pamamaraan: Keypad row 1 hanggang Arduino digital 5Keypad row 2 to Arduino digital 4Keypad row 3 to Arduino digital 3Keypad row 4 to Arduino digital 2Keypad column 1 to Arduino digital 8Keypad column 2 to Arduino digital 7Keypad haligi 3 hanggang Arduino digital 6 Kung ang iyong keypad ay naiiba sa amin, tandaan ang mga linya sa sketch mula sa:
// kahulugan ng uri ng keypad
Tulad ng kailangan mong baguhin ang mga numero sa mga arrays rowPins [ROWS] at colPins [COLS]. Ipasok mo ang mga digital na numero ng pin na konektado sa mga hilera at haligi ng keypad ayon sa pagkakabanggit.
Bukod dito, ang mga array key ay nag-iimbak ng mga halagang ipinapakita sa LCD kapag ang isang partikular na pindutan ay pinindot. Makikita mong naitugma namin ito sa ginamit na pisikal na keypad, subalit maaari mo itong palitan sa anumang kailangan mo. Ngunit sa ngayon, ipasok at i-upload ang sumusunod na sketch kapag nasiyahan ka sa mga paglalaan ng row / pin number:
/ * Numeric keypad at I2C LCD https://tronixstuff.com Gumagamit ng library ng Keypad para sa Arduino https://www.arduino.cc/playground/Code/Keypad ni Mark Stanley, Alexander Brevig * /
# isama ang "Keypad.h"
# isama ang "Wire.h" // para sa I2C LCD # isama ang "LiquidCrystal_I2C.h" // para sa I2C bus LCD module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // itakda ang LCD address sa 0x27 para sa isang 16 chars at 2 line display
// kahulugan ng uri ng keypad
const byte ROWS = 4; // four row const byte COLS = 3; // three columns char keys [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
byte rowPins [ROWS] = {
5, 4, 3, 2}; // kumonekta sa mga row ng pinout ng keypad byte colPins [COLS] = {8, 7, 6}; // kumonekta sa mga pinout ng haligi ng keypad
int count = 0;
Keypad keypad = Keypad (makeKeymap (key), rowPins, colPins, ROWS, COLS);
walang bisa ang pag-setup ()
{lcd.init (); // ipasimula ang lcd lcd.backlight (); // i-on ang LCD backlight}
walang bisa loop ()
{char key = keypad.getKey (); kung (key! = NO_KEY) {lcd.print (key); bilangin ++; kung (count == 17) {lcd.clear (); bilangin = 0; }}}
At ang mga resulta ng sketch ay ipinapakita sa video. Kaya't nakikita mo ngayon kung paano maisasalin ang mga pagpindot sa pindutan sa data para magamit sa isang sketch. Uulitin namin ngayon ang demonstrasyong ito sa mas malaking keypad.
Hakbang 3: Paggamit ng isang 16 Digit Keypad
Gagamitin namin ang mas malaking 4 × 4 keypad, isang Arduino Uno-compatible at para sa pagbabago ng I2C LCD mula sa Akafugu para sa mga layuning ipakita. Muli, kung wala kang isang LCD maaari mong palaging ipadala ang teksto sa serial monitor sa halip. I-wire ang LCD at pagkatapos ay ikonekta ang keypad sa Arduino sa sumusunod na pamamaraan:
- Ang row ng Keypad 1 (i-pin ang walo) sa Arduino digital 5
- Ang row ng Keypad 2 (pin 1) sa Arduino digital 4
- Keypad row 3 (pin 2) sa Arduino digital 3
- Ang row ng Keypad 4 (pin 4) sa Arduino digital 2
- Ang haligi ng Keypad 1 (pin 3) sa Arduino digital 9
- Ang haligi ng Keypad 2 (pin 5) sa Arduino digital 8
- Ang haligi ng Keypad 3 (pin 6) sa Arduino digital 7
- Ang haligi ng Keypad 4 (pin 7) sa Arduino digital 6
Ngayon para sa sketch - tandaan kung paano namin tinanggap para sa mas malaking numerong keypad: ang sobrang haligi sa mga array char key ang sobrang pin sa array colPins at ang byte COLS = 4.
/ * Numeric keypad at I2C LCD https://tronixstuff.com Gumagamit ng library ng Keypad para sa Arduino https://www.arduino.cc/playground/Code/Keypad ni Mark Stanley, Alexander Brevig * /
# isama ang "Keypad.h"
# isama ang "Wire.h" // para sa I2C LCD # isama ang "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const byte ROWS = 4; // apat na hilera
const byte COLS = 4; // four columns char keys [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // kumonekta sa mga row ng pinout ng keypad byte colPins [COLS] = {9, 8, 7, 6}; // kumonekta sa mga pinout ng haligi ng keypad int count = 0;
Keypad keypad = Keypad (makeKeymap (key), rowPins, colPins, ROWS, COLS);
walang bisa ang pag-setup ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Keypad test!"); pagkaantala (1000); lcd.clear (); }
walang bisa loop ()
{char key = keypad.getKey (); kung (key! = NO_KEY) {lcd.print (key); Serial.print (key); bilangin ++; kung (count == 17) {lcd.clear (); bilangin = 0; }}}
At muli mong makikita ang mga resulta ng sketch sa itaas sa video.
Ngayon para sa isang halimbawa ng proyekto, isa na marahil ang pinaka-hiniling na paggamit ng numerong keypad …
Hakbang 4: Halimbawa ng Proyekto - PIN Access System
Ang pinakahihiling na paggamit para sa isang numerong keypad ay tila isang application na "PIN" na istilo, kung saan ang Arduino ay inatasan na gumawa ng isang bagay batay sa isang tamang numero na ipinasok sa keypad. Ang sumusunod na sketch ay gumagamit ng hardware na inilarawan para sa nakaraang sketch at nagpapatupad ng isang anim na digit na sistema ng pagpasok ng PIN.
Ang mga pagkilos na magaganap ay maaaring ipasok sa mga pagpapaandar na tamangPIN () at malingPIN (). At ang PIN ay nakatakda sa array char PIN [6]. Sa isang maliit na labis na trabaho maaari kang lumikha ng iyong sariling pag-andar din ng PIN-pagbabago.
// PIN switch with 16-digit numeric keypad // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const byte ROWS = 4; // apat na hilera
const byte COLS = 4; // four columns char keys [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // kumonekta sa mga row ng pinout ng keypad byte colPins [COLS] = {9, 8, 7, 6}; // kumonekta sa mga pinout ng haligi ng keypad
Keypad keypad = Keypad (makeKeymap (key), rowPins, colPins, ROWS, COLS);
char PIN [6] = {
'1', '2', 'A', 'D', '5', '6'}; // our secret (!) number char trial [6] = {'0', '0', '0', '0', '0', '0'}; // ginamit para sa paghahambing int z = 0;
walang bisa ang pag-setup ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN Lock"); pagkaantala (1000); lcd.clear (); lcd.print ("Enter PIN…"); }
void correctPIN () // gawin ito kung ang tamang PIN ay ipinasok
{lcd.print ("* Tamang PIN *"); pagkaantala (1000); lcd.clear (); lcd.print ("Enter PIN…"); }
walang bisaPIN () // gawin ito kung maling PIN ang ipinasok
{lcd.print ("* Subukang muli *"); pagkaantala (1000); lcd.clear (); lcd.print ("Enter PIN…"); }
walang bisa ang checkPIN ()
{int tama = 0; int i; para sa (i = 0; i <6; i ++) {
kung (pagtatangka == PIN )
{tama ++; }} kung (tama == 6) {correctPIN (); } iba pa {maliPIN (); }
para sa (int zz = 0; zz <6; zz ++) {pagtatangka [zz] = '0'; }}
walang bisa ang readKeypad ()
{char key = keypad.getKey (); kung (key! = NO_KEY) {pagtatangka [z] = key; z ++; switch (key) {case '*': z = 0; pahinga; kaso '#': z = 0; pagkaantala (100); // para sa dagdag na debounce lcd.clear (); checkPIN (); pahinga; }}}
walang bisa loop ()
{readKeypad (); }
Ang proyekto ay ipinakita sa video.
Kaya ngayon mayroon kang kakayahang gumamit ng labing dalawa at labing-anim na mga pindutan ng keypad sa iyong mga system ng Arduino. Sigurado akong makakaisip ka ng isang bagay na kapaki-pakinabang at kawili-wili gamit ang mga keypad sa malapit na hinaharap.
Ang post na ito ay dinala sa iyo ng pmdway.com - lahat para sa mga tagagawa ng tagahanga at electronics, na may libreng paghahatid sa buong mundo.
Inirerekumendang:
Pagsubaybay sa Bilis ng Paggamit ng Raspberry Pi at AIS328DQTR Paggamit ng Python: 6 Hakbang
Pagsubaybay sa Bilis ng Paggamit ng Raspberry Pi at AIS328DQTR Paggamit ng Python: Ang pagpapabilis ay may hangganan, sa palagay ko ayon sa ilang mga batas ng Physics.- Terry Riley Ang isang cheetah ay gumagamit ng kamangha-manghang pagpabilis at mabilis na mga pagbabago sa bilis kapag humabol. Ang pinaka dalubhasang nilalang sa pampang nang minsan ay gumagamit ng pinakamataas na bilis upang mahuli ang biktima. Ang
Neopixel Ws2812 Rainbow LED Glow With M5stick-C - Tumatakbo ang Rainbow sa Neopixel Ws2812 Paggamit ng M5stack M5stick C Paggamit ng Arduino IDE: 5 Hakbang
Neopixel Ws2812 Rainbow LED Glow With M5stick-C | Pagpapatakbo ng Rainbow sa Neopixel Ws2812 Paggamit ng M5stack M5stick C Paggamit ng Arduino IDE: Kumusta mga tao sa mga itinuturo na ito matututunan natin kung paano gamitin ang neopixel ws2812 LEDs o led strip o led matrix o led ring na may m5stack m5stick-C development board na may Arduino IDE at gagawin namin isang pattern ng bahaghari kasama nito
RF 433MHZ Radio Control Paggamit ng HT12D HT12E - Paggawa ng isang Rf Remote Control Paggamit ng HT12E & HT12D Sa 433mhz: 5 Hakbang
RF 433MHZ Radio Control Paggamit ng HT12D HT12E | Ang paggawa ng isang Rf Remote Control Paggamit ng HT12E & HT12D Sa 433mhz: Sa itinuturo na ito ipapakita ko sa iyo kung paano gumawa ng isang remote control ng RADIO gamit ang 433mhz transmitter receiver module na may HT12E encode & HT12D decoder IC. Sa itinuturo na ito maaari kang magpadala at makatanggap ng data gamit ang napaka murang mga KOMPONENS Tulad: HT
Pagdidisenyo ng PCB at Paghiwalay ng Paggamit ng Paggamit lamang ng Libreng Software: 19 Hakbang (na may Mga Larawan)
Pagdidisenyo at Pag-iisa ng PCB Paggamit ng Tanging Libreng Software: Sa Instructable na ito ipapakita ko sa iyo kung paano mag-disenyo at gumawa ng iyong sariling mga PCB, eksklusibong gumagamit ng libreng software na tumatakbo sa Windows pati na rin sa isang Mac. Mga bagay na kailangan mo: computer na may koneksyon sa internet cnc galingan / router, mas tumpak ang pusta
DHT 11 Paggamit ng Paggamit ng Arduino: 5 Hakbang
DHT 11 Gamit ang Paggamit ng Arduino: Hai, Sa itinuturo na ito ay gagawa kami ng DHT 11 gamit ang arduino at serial monitor. Ang DHT11 ay isang pangunahing, sobrang murang digital na temperatura ng digital at sensor ng halumigmig. Gumagamit ito ng capacitive sensor ng kahalumigmigan at isang thermistor upang masukat ang nakapalibot na hangin,