Мазмуну:
- 1 -кадам: Сериялык дисплей
- 2 -кадам: Matrix баскычтобу
- 3 -кадам: Ассамблея
- 4 -кадам: Булак коду
- 5 -кадам: Дисплей буйруктары
- 6 -кадам: Баскычтоптун иштеши
- 7 -кадам: Сырсөздү коюу
- 8 -кадам: Орнотуу
- 9 -кадам: Loop
Video: LCD дисплейи менен Arduino Uno панелинин клавиатурасы: 9 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул LCD дисплейи жана Arduino Uno менен иштөөчү матрицалык клавиатура, бүгүнкү күндө эң негизгиси. Бул орнотуунун максаты - матрицанын клавиатурасында терилген паролду алган, аны туура сырсөз менен салыштырган жана дисплейде ырастоо билдирүүсүн көрсөтүүчү программаны түзүү.
Матрицалык клавиатура да, бул дисплей да ESP8266 жана ESP32 менен иштээрин эстен чыгарбоо керек.
Көрүнүп тургандай, биз тышкы булакты колдонбогондуктан, биз схеманы USB менен Arduino менен кубаттайбыз. Arduino портторуна өтө жөнөкөй жол менен туташкан сегиз зым клавиатурабыздын байланышын түзөт. Бул клавиатура эч кандай күчкө ээ эмес жана пассивдүү, бул байланыштарды абдан жеңилдетет.
Дисплей Arduino менен UART аркылуу туташат, ал портту сериялык порт менен камсыз кылат, ал дагы түзмөктү кубаттайт.
Демонстрацияда биз клавиатурада терилген сырсөздүн туура же туура эместигин текшерген схемабызды көрсөтөбүз.
Видеодо колдонулган жана бул жерде жеткиликтүү болгон PDFте, биз колдонгон микросхеманын толук чекитине ээбиз.
1 -кадам: Сериялык дисплей
Бул UXT менен байланышкан сериялык дисплей, бул TXRX менен RS. Бул I2C версияларында да бар, бирок башка моделдер алдыдагы жыйынга калат. Бул учурда, бул дисплей RS тарабынан UART тарабынан иштейт.
2 -кадам: Matrix баскычтобу
Биз колдонгон матрицалык клавиатуранын мисалы сүрөттө жана ал оң жагында. Бизде анын кантип иштээрин көрсөткөн диаграмма бар. Ал чынында 4х4 саптан гана турат. Ошентип, ал зымдардын минималдуу өлчөмүн колдонот; ар бир сап жана мамыча үчүн бир зым, ошондо бардыгы сегиз зым болот.
Ал күчкө муктаж эмес, анткени ал төмөнкүдөй иштейт: 7 басылганда, клавиатура 7ди алат жана сызыкка жана мамыга туташат, бул алгоритмди автоматтык түрдө сканерлөө аркылуу идентификациялоону мүмкүн кылат.
Бул чогулушта чекиттүү матрицадан турган 4х4 баскычтоп иштээрин эстен чыгарбоо керек.
3 -кадам: Ассамблея
Жалпы схемада биз сегиз зымды Ардуинонун портторуна туташтырабыз, анткени клавиатуранын күчү жок. Дисплейде бизде RS 232 сигналы жана оң жана терс күч бар. Арткы жарык дагы эле бар, ал дагы туташкан (BKL тарабынан аныкталган).
4 -кадам: Булак коду
Бул долбоордун баштапкы кодуна сериялык жана баскычтопту кошуу керек. Бул сериялык программалык камсыздоо үчүн керектүү RX_PIN жана TX_PIN топтомуна ээ, ошондой эле INVERTED 1. Бул астынкы логика менен киргизүүнү колдонгон сигналды күчөтүү үчүн коюлган.
// библиотека жоопкерчилиги комментарий дисплейи LCD #камтыйт // библиотека жооптору басылганда эч кандай жабуу жок #кошуу // программалык камсыздоонун эч кандай салымы жок SoftwareSerial #dexine RX_PIN 255 // pino TX da nossa ligaç ЖК дисплейи #define TX_PIN 3 // Rx e Tx, LOW como HIGH жана тескерисинче #аныктоо INVERTED 1
5 -кадам: Дисплей буйруктары
Маанилүү: Бул дисплейде ага жөн эле жип коюу жетишсиз. Сиз көзөмөлдөөчү белгилерди жөнөтүшүңүз керек. PDF бул дисплейдин колдонмосу бар сайттын шилтемесин камтыйт. Эгерде сизде башка бренддин сериялык дисплейи бар болсо, анда буга тиешелүү болгон алардын контролдук коддорун кароо жакшы. Бул моделде, мисалы, биз белгилүү бир көзөмөлдү жөнөткөндө (мисалы, бул дисплей үчүн маалымат), биз байланышты иштетүү үчүн 254 номериндеги префиксти жөнөтүшүбүз керек.
Ошентип, биз нерселерди жеңилдетүү үчүн ARRAY орноттук, бул сандык индекс менен кирүүчү өзгөрмөлөрдүн жыйындысы. Бул дисплейге баштапкы конфигурация катары жөнөтүлөт.
// comando para limpar toda to show a displayconst char limparTela = {254, 1}; // конфигурация расмий эмес/ * 254, 254 254, 254, 254, 254, 1 чырактар жана 254, 13 конфигурациялары жана конфигурациялары 254, 13 лига же курсор парафикардык курсу */const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};
6 -кадам: Баскычтоптун иштеши
Клавиатура кантип иштейт? Биринчиден, ал массивди орнотот. Бул массив чындыгында ошол жерде көрсөтүлө турган мүнөздө. Ошентип, эгерде мен X коём, анда мен үстүңкү сол жактын биринчи баскычын бассам, ал көрсөтүлөт. Бул буйрук бере турган клавиатуранын мазмуну.
Биз аныктаган башка нерселер бул клавиатуранын ARRAY учурда 4 -сап жана 4 -мамыча. Бизде дагы эле линиялардын казыктары бар, алар Arduino казыктары жана мамычанын казыктары. Бизде дагы эле customKeypad Keypad куруучусу бар, символу, пин, сап жана мамычанын параметрлери.
const байт LINHAS = 4; // катталуучу байт COLUNAS = 4; // Колдонмону иштетүү // чечүү SIMBOLOS [LINHAS] [COLUNAS] = {{'A', '1', '2', '3'}, { 'B', '4', '5', '6'}, {'C', '7', '8', '9'}, {'D', 'c', '0', 'e '}}; байт PINOS_LINHA [LINHAS] = {8, 9, 10, 11}; // PINOS_COLUNA [COLUNAS] = {4, 5, 6, 7}; // баскычтар баскычтар менен көрсөтүлөт // клавиатура, жооптор баскычын басуу жана басуу клавиатура customKeypad = клавиатура (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
7 -кадам: Сырсөздү коюу
Бул бөлүктө биз сырсөздү аныктайбыз, андан кийин бош сап болгон сырсөздү киргизишибиз керек. Төмөндө, softwareSerialдин мисалын койдук.
// ар кандай жооптор String SENHA_ESPERADA = "1234ABCD" катары; SENHA_DIGITADA сабы = ""; // Программалык камсыздоонун инстанциялары comunicar com Serial DisplaySerial DisplaySerial = SoftwareSerial аркылуу көрсөтүү (RX_PIN, TX_PIN, INVERTED);
8 -кадам: Орнотуу
Орнотууга келсек, бул жерде displaySerial.begin (2, 400), бул ылдамдык жөнүндө. Биздин учурда, бул байт жөнөтүү үчүн жетиштүү. Мунун артынан 700 миллисекунд күтүү бар. Биз DisplaySerial.print (initialConfig) баштапкы конфигурациясынан 10 миллисекундка кечиктирүү менен киргизебиз жана биз баштоо функциясына өтөбүз. Баштоо функциясында displaySerial.print ("пароль:") коебуз.
void setup () {Serial.begin (2400); // индикаторлоштуруу сериялык комуникалоо // дисплейдин маанилүүлүгү 2400 displaySerial.begin (2400); // дисплейдин кечигүүсүнүн темпи кечигүү (700); // конфигурациялоо расмий түрдө көрсөтүлөт displaySerial.print (configInicial); кечигүү (10); inicio (); } // função Respável жооп берүү үчүн, сиз өзүңүздү эсептөөңүз керек // сизди салыштыруу үчүн, сиз өзүңүздүн алдыңызда бир нерсени көрөсүз, же болбосо, // экрандын алдында дисплейди ачуу керек. void inicio () {displaySerial.print ("Senha:"); }
9 -кадам: Loop
Укурукта биз customKey = customKeypad.getKey () түзөбүз жана ырааттуулукта Switch командасын киргизебиз.
// керектүү баскычты басыңыз customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); которуштуруу (customKey) { /… /}}
Loop Switch 1 -бөлүк
Switch командасынын ичинде: басылган баскычтардын мүмкүнчүлүктөрүнүн тизмесин көрсөтөт, эгерде басылган болсо жана паролду көбөйтсө: customKeyди алат жана киргизилген сырсөздү бириктирет. Андан кийин, displaySerial.print (customKey) ачкычтын мазмунун көрсөтөт.
switch (customKey) {// caso alguma das teclas insprimíveis foi pressionada case case 'A': case 'B': case 'C': case 'D': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': // new or símbolo a sha que estasos digitalando SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // ImSpime же DisplaySerial.print (customKey) баскычтарын басыңыз; тыныгуу;
Loop Switch 2 -бөлүк
Бул коддо биз CLEAR баскычы басылганда сценарийди көрсөтөбүз. Эгерде сиз С тамгасын терсеңиз жана сиз жазып жаткан сырсөздү кармаган өзгөрмөнү тазаласаңыз, анда ал экранды тазалоо буйругун чакырып, кайра баштайт.
// CLEAR ТЕЗ АРАЛЫК баскычын басуу 'c': // башка варианттар жана чектөөлөр SENHA_DIGITADA = ""; // чалуу же телекөрсөтүүSerial.print (limparTela); // конфигурациялоо үчүн сиз конфигурациялай аласыз (); тыныгуу;
Loop Switch 3 -бөлүк
Дагы бир мүмкүнчүлүк, эгерде сиз Е тамгасын терсеңиз. Бул учурда, киргизилген сырсөз туура же туура эмес болсо, экран тазаланат жана анализденет. Андан кийин, биз 2 секундга жаңы кечигүүнү беребиз, экранды тазалап, сырсөздүн өзгөрмөсүн баштапкы абалга келтиребиз жана башына кайтабыз.
// ECO КИРГИЗҮҮ баскычын басыңыз, жана "e" абалын салыштырып көрүңүз: // тела DisplaySerial.print (limparTela); // эгерде сиз ESPERADA болсо, анда (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // сенса коррета дисплейSerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // сенсациялардын экраны DisplaySerial.print ("Senha Incorreta!"); } // 2 -күндүн аягына чейин каралбай калуу үчүн кечигүү керек (2000); displaySerial.print (limparTela);
Сунушталууда:
Күн панелинин кытайлык MPPT модулу менен: 11 кадам
Күн панелинин массиви кытайлык MPPT модулу менен: Күн панелдеринин жакшы иштеши боюнча менин кыскача сүрөттөмөм жана арзаныраак … Мен эч кандай мазмунга эч кандай кепилдик бербейм, алар жөн эле жинди адамдын оюндары болушу мүмкүн Мен абдан шектенем … Кээ бир сүрөттөр
Arduino менен интерфейс клавиатурасы. [Уникалдуу ыкма]: 7 кадам (Сүрөттөр менен)
Arduino менен интерфейс клавиатурасы. [Уникалдуу ыкма]: Саламатсызбы, жана менин биринчи үйрөткүчүмө кош келиңиз! :) Бул көрсөтмөлөрдө мен клавиатураны arduino менен аралаштыруу үчүн укмуштуудай китепкана менен бөлүшкүм келет - 'Сырсөз китепканасы', анын ичинде 'Баскычтар китепканасы'. Бул китепкана биз колдонгон эң мыкты функцияларды камтыйт
Күн панелинин контроллерин "туура эмес колдонуу" менен 12v/5v UPS: 5 кадам
Күн панелинин контроллерин "туура эмес колдонуу" жолу менен 12v/5v UPS: Долбоор үчүн UPSти каалаган белеңиз? Электр тармагындагы UPSтин жинди бааларына карап, мен төмөн чыңалуудагы бир нерсени иштетким келет деп ойлодум. Мен сизге күн панелинин контроллерин "туура эмес колдонуу" керектигин көрсөтөм
Arduino LCD 16x2 үйрөткүчү - 1602 LCD дисплейи Arduino Uno менен: 5 кадам
Arduino LCD 16x2 үйрөткүчү | Интерфейс 1602 LCD дисплейи Arduino Uno менен: Саламатсыздарбы, балдар, анткени көптөгөн проекттерде кандайдыр бир DIY метр же YouTube жазылууну эсептөө дисплейи же калькулятор же дисплейи бар клавиатура кулпусу барбы же жокпу, эгерде бул долбоорлордун баары ушундай болсо arduino алар аныктайт
DIY LCD клавиатурасы Arduino Uno үчүн калкан: 6 кадам (сүрөттөр менен)
DIY LCD клавиатура калканчасы Arduino Uno үчүн: мен DIY LCD клавиатура калканчын жасоо үчүн көп издедим, бирок тапкан жокмун, ошондуктан мен аны жасап, балдар менен бөлүшкүм келет