Мазмуну:
- 1 -кадам: Баштоо
- 2 -кадам: 12 цифралуу баскычтопту колдонуу
- 3 -кадам: 16 цифралуу баскычтопту колдонуу
- 4 -кадам: Долбоордун мисалы - PINге кирүү тутуму
Video: Сандык баскычтопту Arduino менен колдонуу: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Сандык баскычтоптор сиздин долбоорлоруңуз үчүн ар кандай интерфейстер үчүн жөнөкөй акыркы колдонуучу альтернативасын бере алат. Же сизге көп баскычтар керек болсо, алар курулушка байланыштуу сизге көп убакытты үнөмдөй алышат. Биз аларды бириктирип, Arduino китепканасын колдонуп, андан кийин пайдалуу мисалдын эскизин бүтүрөбүз.
1 -кадам: Баштоо
Баскычтопту кайдан алсаңыз да, маалымат баракчасын алууну тактаңыз - бул аларды туташтырууда жашоону жеңилдетет. Мисалы - бул кадамдагы сүрөт.
Маалымат баракчасы маанилүү, анткени ал саптар жана мамылар үчүн клавиатурада кайсы казык же туташтыргычтар бар экенин айтып берет. Эгерде сизде маалымат баракчасы жок болсо - саптар жана мамылар үчүн кайсы байланыштар бар экенин кол менен аныктооңуз керек болот.
Бул мультиметрдин үзгүлтүксүздүгүн (ызылдагыч) колдонуу менен жасалышы мүмкүн. Бир зондду 1 -пинге, экинчисин 2 -пинге коюп, ачкычтарды бирден басыңыз. Бир баскычтын схеманы бүтүргөнүн жазып алыңыз, андан кийин кийинки пинге өтүңүз. Көп өтпөй кайсынысы экенин билесиз. Мисалы, мисалда 1 жана 5 клавиатура төөнөгүчтөрү "1 ″, 2 жана 5" 4 ″ ж.
Бул жерде сураныч, Arduino китепканасынын баскычтопун жүктөп алып, орнотуңуз. Эми биз жөнөкөй мисалдарда эки баскычтопту кантип колдонууну көрсөтөбүз.
2 -кадам: 12 цифралуу баскычтопту колдонуу
Биз кичинекей кара баскычтопту, Arduino Uno менен шайкеш келгенди жана дисплей максаттары үчүн I2C интерфейси бар LCDди колдонобуз. Эгерде сизде ЖК жок болсо, анын ордуна текстти сериялык мониторго дайыма жөнөтө аласыз.
ЖКны зым менен кошуп, клавиатураны Arduino менен төмөнкүдөй туташтырыңыз: Ариптакта 1 -сап Arduino санариптик 5Кейпад 2 -катар Arduino санариптик 4Кейпад катар 3 Ардуино санарип 3Кейпад катар 4 Arduino санарип 7Keypad тилкеси 3 Arduino санарип 6га чейин Эгерде сиздин баскыч баскычыңыз биздикинен айырмаланса, анда эскиздеги сызыктарга көңүл буруңуз:
// баскычтоптун түрүн аныктоо
Сиз катарлардагы сандарды rowPins [ROWS] жана colPins [COLS] өзгөртүшүңүз керек. Тиешелүү түрдө баскычтоптун саптарына жана мамыларына туташкан санарип пин номерлерин киргизиңиз.
Мындан тышкары, массив баскычтары белгилүү бир баскыч басылганда ЖКда көрсөтүлгөн баалуулуктарды сактайт. Сиз аны колдонулган физикалык баскычтоп менен дал келтиргенибизди көрө аласыз, бирок аны керектүү нерсеге өзгөртө аласыз. Азырынча, катар/пин номеринин бөлүштүрүлүшүнө ыраазы болгондон кийин, төмөнкү эскизди киргизиңиз жана жүктөңүз:
/ * Сандык баскычтоп жана I2C LCD https://tronixstuff.com Arduino үчүн баскычтоп китепканасын колдонот https://www.arduino.cc/playground/Code/Keypad by Mark Stanley, Alexander Brevig */
#"Keypad.h" кошуу
#кошуу "Wire.h" // I2C LCD үчүн #кошуу "LiquidCrystal_I2C.h" // I2C шинасынын LCD модулу үчүн // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // 16 дарек жана 2 саптуу дисплей үчүн ЖК дарегин 0x27 деп коюңуз
// баскычтоптун түрүн аныктоо
const байт ROWS = 4; // төрт катар const байт COLS = 3; // үч мамыча char баскычтары [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
байт rowPins [ROWS] = {
5, 4, 3, 2}; // баскычтоптун байт colPins'инин катарына туташуу [COLS] = {8, 7, 6}; // баскычтоптун мамычанын пинуттарына туташуу
int count = 0;
Баскычтоп баскычы = Баскычтоп (makeKeymap (баскычтар), rowPins, colPins, ROWS, COLS);
жараксыз орнотуу ()
{lcd.init (); // lcd lcd.backlight инициализациялоо (); // LCD арткы жарыгын күйгүзүү}
боштук цикл ()
{char key = keypad.getKey (); if (key! = NO_KEY) {lcd.print (key); count ++; if (count == 17) {lcd.clear (); count = 0; }}}
Ал эми эскиздин жыйынтыгы видеодо көрсөтүлгөн. Ошентип, азыр сиз баскычты басууну эскизде колдонуу үчүн маалыматка кантип которууга болорун көрө аласыз. Эми бул демонстрацияны чоңураак баскыч менен кайталайбыз.
3 -кадам: 16 цифралуу баскычтопту колдонуу
Биз чоңураак 4 × 4 баскычтопту колдонобуз, Arduino Uno менен шайкеш келет жана дисплей максаттары үчүн Akafuguдан I2C ЖКны өзгөртүү үчүн. Дагы, эгерде сизде ЖК жок болсо, анын ордуна текстти дайыма сериялык мониторго жөнөтө аласыз. ЖКны зым менен кошуп, андан кийин баскычтопту Arduino менен төмөнкүдөй туташтырыңыз:
- Баскычтоп 1 -катар (8 -пин) Arduino санарип 5ке
- Ариптакта 2 (пин 1) Arduino санарип 4
- Ариптакта 3 -сап (2 -пин) Arduino санарип 3
- Ариптакта 4 (пин 4) Arduino санарип 2ге
- Ариптакта 1 (пин 3) Arduino санарип 9га
- Ариптакта 2 (пин 5) Arduino санарип 8ге
- Ариптакта 3 (пин 6) Arduino санарип 7ге
- Баскычтоп мамычасы 4 (пин 7) Arduino санарип 6га
Эми эскиз үчүн - биз чоңураак сандык баскычтопту кантип жайгаштырганыбызга көңүл буруңуз: массивдеги кошумча тилке char баскычтары colPins массивиндеги кошумча пин жана COLS = 4 байты.
/ * Сандык баскычтоп жана I2C LCD https://tronixstuff.com Arduino үчүн баскычтоп китепканасын колдонот https://www.arduino.cc/playground/Code/Keypad by Mark Stanley, Alexander Brevig */
#"Keypad.h" кошуу
#clude "Wire.h" // I2C LCD үчүн #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const байт ROWS = 4; // төрт катар
const байт COLS = 4; // төрт мамычанын чар баскычтары [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; байт rowPins [ROWS] = {5, 4, 3, 2}; // баскычтоптун байт colPins'инин катарына туташуу [COLS] = {9, 8, 7, 6}; // клавиатуранын мамыча түйүндөрүнө туташуу int count = 0;
Баскычтоп баскычы = Баскычтоп (makeKeymap (баскычтар), rowPins, colPins, ROWS, COLS);
жараксыз орнотуу ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Баскычтопту текшерүү!"); кечигүү (1000); lcd.clear (); }
боштук цикл ()
{char key = keypad.getKey (); if (key! = NO_KEY) {lcd.print (key); Serial.print (key); count ++; if (count == 17) {lcd.clear (); count = 0; }}}
Жана дагы видеодон жогорудагы эскиздин жыйынтыгын көрө аласыз.
Эми мисал проекти үчүн, балким, сандык баскычтоптун эң көп суралган колдонулушу …
4 -кадам: Долбоордун мисалы - PINге кирүү тутуму
Сандык баскычтоп үчүн эң көп колдонулган нерсе "PIN" стилиндеги колдонмо окшойт, мында Arduino клавиатурага туура номердин негизинде бир нерсе кылууга буйрук берилет. Төмөнкү эскиз мурунку эскиз үчүн сүрөттөлгөн аппараттык жабдууларды колдонот жана алты орундуу PIN киргизүү системасын ишке ашырат.
Иш -аракеттерди туураPIN () жана туура эмес PIN () функцияларына киргизсе болот. Жана PIN массив char PIN [6] коюлган. Бир аз кошумча иш менен сиз өзүңүздүн PIN-өзгөртүү функцияңызды түзө аласыз.
// 16 орундуу сандык баскыч менен PIN которгуч // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const байт ROWS = 4; // төрт катар
const байт COLS = 4; // төрт мамычанын чар баскычтары [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; байт rowPins [ROWS] = {5, 4, 3, 2}; // баскычтоптун байт colPins'инин катарына туташуу [COLS] = {9, 8, 7, 6}; // баскычтоптун мамычанын пинуттарына туташуу
Баскычтоп баскычы = Баскычтоп (makeKeymap (баскычтар), rowPins, colPins, ROWS, COLS);
char PIN [6] = {
'1', '2', 'A', 'D', '5', '6'}; // биздин жашыруун (!) сандык чар аракети [6] = {'0', '0', '0', '0', '0', '0'}; // салыштыруу үчүн колдонулат int z = 0;
жараксыз орнотуу ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN Lock"); кечигүү (1000); lcd.clear (); lcd.print ("PIN кодду киргизиңиз …"); }
void correctPIN () // туура PIN киргизилген болсо, муну жасаңыз
{lcd.print (" * Туура PIN *"); кечигүү (1000); lcd.clear (); lcd.print ("PIN кодду киргизиңиз …"); }
туура эмес PIN киргизилген болсо, муну жасаңыз
{lcd.print (" * Кайталап көрүңүз *"); кечигүү (1000); lcd.clear (); lcd.print ("PIN кодду киргизиңиз …"); }
жараксыз checkPIN ()
{int туура = 0; int i; үчүн (i = 0; i <6; i ++) {
эгер (аракет == PIN )
{туура ++; }} if (туура == 6) {correctPIN (); } else {туура эмесPIN (); }
for (int zz = 0; zz <6; zz ++) {аракет [zz] = '0'; }}
жараксыз окууKeypad ()
{char key = keypad.getKey (); if (key! = NO_KEY) {аракет [z] = ачкыч; z ++; switch (key) {case '*': z = 0; тыныгуу; case '#': z = 0; кечиктирүү (100); // кошумча чыгаруу үчүн lcd.clear (); checkPIN (); тыныгуу; }}}
боштук цикл ()
{readKeypad (); }
Долбоор видеодо көрсөтүлгөн.
Ошентип, азыр сиз Arduino системаңыз менен он эки жана он алты баскычтуу баскычтарды колдоно аласыз. Мен ишенем, сиз жакын арада клавиатураларды колдонуу менен пайдалуу жана кызыктуу нерсени ойлоп табасыз.
Бул билдирүү сизге pmdway.com тарабынан жеткирилген - бүткүл дүйнө жүзү боюнча бекер жеткирүү менен, өндүрүүчүлөр жана электроника ышкыбоздору үчүн.
Сунушталууда:
CircuitPython менен 4x4 баскычтопту колдонуу: 4 кадам
4x4 баскычтопту CircuitPython менен колдонуу: Бул арзан баскычтоп CircuitPython долбоорлоруңузга сандык киргизүүнүн жөнөкөй ыкмасын сунуштайт. Мен аны Adafruit ItsyBitsy M0 экспрессинде колдоном. Сизге керек болот: Ариптакта - меники 4x4ItsyBitsy M0 Express же окшош boardMu Editor орнотулган
1602 LCD жана 4x4 баскычтопту колдонуу менен Arduino DIY Calculator: 4 кадам
1602 ЖК жана 4x4 баскычтопту колдонуу менен Arduino DIY калкулятору: Салам балдар, бул көрсөтмөлөрдө биз Arduino менен негизги эсептөөлөрдү жасай турган калькулятор жасайбыз. Ошентип, биз негизинен 4x4 баскычтопунан маалыматтарды алып, 16x2 LCD дисплейине маалыматтарды басып чыгарабыз жана arduino эсептөөлөрдү аткарат
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу - Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу - Rc Helicopter - Rc учагы Arduino колдонуу: 5 кадам (сүрөттөр менен)
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу | Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу | Rc Helicopter | Arduino менен Rc учагы: Rc машинасын иштетүү | Quadcopter | Дрон | RC учагы | RC кайыгы, бизге дайыма рецептор жана өткөргүч керек, RC QUADCOPTER үчүн бизге 6 каналдуу өткөргүч жана кабыл алгыч керек деп ойлойбуз жана TX менен RXтин бул түрү өтө кымбат, ошондуктан биз аны өзүбүздө жасайбыз
Үйрөткүч Arduino UNO менен 4-Сандык Дисплей Интерфейси: 6 кадам (Сүрөттөр менен)
Үйрөткүч Arduino UNO менен 4-Цифралуу Дисплей Интерфейси: Бул окуу куралы сизге 4-Сандык Дисплейди Arduino UNO менен колдонуу боюнча кээ бир негиздерди үйрөтөт
4x4 баскычтопту колдонуу Arduino менен: 5 кадам (сүрөттөр менен)
4x4 баскыч баскычы Arduino менен: 4x4 баскычтобу матрица сыяктуу тизилген 16 баскычтан турат. Матрицаны сканерлөө ыкмасы менен 4x4 баскычтопко кирүү үчүн колдонулган ыкма. 4x4 баскычтобу ага жетүү үчүн 8 төөнөгүчтү талап кылат, б.а. мамычалар үчүн 4 казык жана линия үчүн 4 казык. Кантип сканерлөө