Arduino 3 Wire Matrix Keypad: 4 na Hakbang

Arduino 3 Wire Matrix Keypad: 4 na Hakbang

Talaan ng mga Nilalaman:

Anonim

Ang keypad konektado sa 3 wires lamang sa Arduino.

Background:

Ang isang matrix keypad ay maaaring konektado sa isang Arduino board upang ang numerical data ay maaaring maipasok ng user.

May mga tagubilin sa iba't ibang mga forum kung paano ito gagawin. Ang pangunahing problema ay na ito ay karaniwang gumagamit ng isang kabuuang 7 ng iyong mga digital input / output pin.

Ang problema:

Para sa akin ito ay isang malaking problema hangga't gusto ko ang mga pin na ito ay libre upang kontrolin ang mga panlabas na mga aparato tulad ng solenoid valves at actuators. Kailangan ko rin ang ilan na magpadala ng data sa isang serial LCD display.

Ang mga pagpipilian ay alinman

a) Gumamit ng Arduino Mega na may maraming iba pang mga pin o

b) Maghanap ng isang paraan ng interfacing ng isang keypad na gumagamit ng mas kaunting input pins.

Solusyon:

Sa pamamagitan ng paggamit ng ONE single pin input pin at isang grid ng mga resistors, maaari naming wire up ang mga pindutan sa keypad tulad na kapag ang bawat ay pinindot ng ibang boltahe ay ipinadala sa analog input pin.

Kahit na ito ay isang problema magpakabit sa lahat ng mga resistors, ang malaking kalamangan ay ang lahat ng iyong mga digital na pin ay mananatiling libre upang magamit para sa iba pang mga bagay.

Ito ay inilarawan bago sa mga forum ng AVR ngunit inangkop ko ito para sa Arduino at isinulat ang ilang mga code para sa iyo upang makapagsimula.


Mga Kagamitan:

Hakbang 1: Kilalanin ang mga Keypad na Pins

Sa base ng keypad ay 7 solder terminals.

Ang keypad ay maituturing na may 3 "haligi" at 4 na "mga hanay" - tingnan ang larawan.

Unang hakbang ay upang magtrabaho kung aling solder terminal ang kumakatawan sa bawat hilera at na kumakatawan sa bawat haligi. Isulat ang lahat ng bagay habang nagpapatuloy ka, napakadaling ihalo ang lahat ng bagay.

Ito ay inilarawan at kailangan mong sundin ang mga tagubilin kung paano gawin ito na ibinigay sa Arduino na keypad tutorial na ito:

www.arduino.cc/playground/Main/KeypadTutorial

Hakbang 2: Pag-istoryahan ang Mga Resistors

Ang susunod na bagay ay ang wire up ang matris ng resistors.

Tulad ng makikita mo mayroong isang solong wire sa analog input pin 0 sa Arduino plus isang koneksyon sa + 5V sa Arduino at isa din sa GND (lupa) …. 3 wires sa kabuuan.

Kung nagawa mo ang iyong mga hilera at hanay ng mga wire, kailangan mong sundin ang diagram na ito.

Gumagamit ako ng ribbon cable dahil gumagawa ito ng mga bagay (relatibong) malinis.

Ang maliit na kapasitor ay may upang maiwasan ang panghihimasok sapilitan sa mga wire na ipinadala bilang isang boltahe sa analog input paggawa error.

Hakbang 3: Subukan Ito!

Kung i-download mo ang unang Arduino sketch sa pahina ng pamagat ng Instructable na ito, naka-attach din sa pahinang ito, makakakuha ka ng isang simpleng gawain na nagpapakita ng halaga na "binasa" ng analog pin 0 (sa isang sukat ng 0 - 1023) na kumakatawan sa 0 - 5V sa serial viewer window ng iyong PC na kailangan mong itakda sa 9600 Baud.

Magkakaroon ng kaunti pagkakaiba depende sa mga tolerance ng resistors ngunit ang mga halaga na nakukuha mo ay dapat na halos kapareho sa mga nakuha ko.

Hakbang 4: Isulat ang Software upang Basahin ang Iyong Kepad

Kung i-download mo ang pangalawang Arduino sketch sa pahina ng pamagat ng Instructable na ito, naka-attach din sa pahinang ito, binibigyan ka nito ng ideya kung paano sumulat ng code upang basahin ang keypad at gumawa ng mga kapaki-pakinabang na bagay sa mga halaga na nakuha.

Sa halimbawang ito, kapag pinindot mo ang isang key, ang halaga sa bawat key ay lilitaw sa window ng viewer ng serial (ibig sabihin 0 - 9) sa iyong PC.

Maaari mong makita na may ilang mga code na tumatagal ang halaga, pagkatapos ay naghihintay para sa iyo upang palabasin ang susi bago magpatuloy, upang maiwasan ang isang buong pagkakasunod-sunod na lumilitaw ng parehong halaga.

Ang code ay isang bit clunky ngunit ito gumagana. Kailangan mong iakma ito para sa iyong sariling mga application ngunit dapat itong makapagsimula ka.

Ang variable na "keypressed" ay ang halaga ng 0 - 9 na maaari mong gamitin sa natitirang bahagi ng iyong programa.

Magsaya ka.