Агуулгын хүснэгт:

LCD дэлгэц, Arduino Uno бүхий хяналтын самбарын гар: 9 алхам
LCD дэлгэц, Arduino Uno бүхий хяналтын самбарын гар: 9 алхам

Видео: LCD дэлгэц, Arduino Uno бүхий хяналтын самбарын гар: 9 алхам

Видео: LCD дэлгэц, Arduino Uno бүхий хяналтын самбарын гар: 9 алхам
Видео: ESP8266 Беспроводной ЧМИ Nextion || Внешний ПЛК Arduino 2024, Арваннэгдүгээр
Anonim
Image
Image
LCD дэлгэц, Arduino Uno бүхий хяналтын самбарын гар
LCD дэлгэц, Arduino Uno бүхий хяналтын самбарын гар
LCD дэлгэц, Arduino Uno бүхий хяналтын самбарын гар
LCD дэлгэц, Arduino Uno бүхий хяналтын самбарын гар

Энэ бол LCD дэлгэц, Arduino Uno -той хамт ажилладаг матриц гар бөгөөд өнөөгийн хамгийн энгийн зүйл юм. Энэхүү тохиргооны зорилго нь матрицын гар дээр бичсэн нууц үгийг хүлээн авч, зөв нууц үгээр харьцуулж, дэлгэц дээр баталгаажуулах зурвас харуулдаг програмыг бий болгох явдал юм.

Матрицын гар болон энэ дэлгэц хоёулаа ESP8266 ба ESP32 дээр ажилладаг гэдгийг санах нь чухал юм.

Таны харж байгаагаар бид гадны эх үүсвэр ашиглаагүй байгаа тул хэлхээг USB -ээр Arduino ашиглан тэжээдэг. Arduino портууд руу маш энгийн байдлаар холбогдсон найман утас нь бидний гарны холболтыг бий болгодог. Энэхүү гар нь хүчгүй бөгөөд идэвхгүй тул холболтыг ихээхэн хөнгөвчилдөг.

Дэлгэц нь Arduino -тэй UART -ээр холбогддог бөгөөд энэ нь төхөөрөмжийг хүчдэлээр хангадаг.

Жагсаал хийхдээ бид гар дээр бичсэн нууц үг зөв эсвэл буруу эсэхийг шалгаж буй хэлхээгээ харуулдаг.

Видеонд ашигласан, энд байгаа PDF дээр бид ашиглаж байгаа чипний бүрэн холболтыг олж авсан болно.

Алхам 1: Цуваа дэлгэц

Цуваа дэлгэц
Цуваа дэлгэц
Цуваа дэлгэц
Цуваа дэлгэц

Энэ бол UX -тэй холбогддог цуврал дэлгэц бөгөөд RS нь TXRX юм. Энэ нь I2C хувилбаруудад байдаг боловч удахгүй болох угсралтад бусад загварууд үлдэх болно. Энэ тохиолдолд энэ дэлгэц нь UART by RS дээр ажилладаг.

Алхам 2: Матрицын гар

Матрицын гар
Матрицын гар

Бидний ашиглаж буй матриц гарны жишээ бол зургийнх бөгөөд энэ нь баруун талд байна. Энэ нь хэрхэн ажилладагийг харуулсан диаграмтай. Үнэндээ энэ нь зөвхөн 4х4 хэмжээтэй байна. Тиймээс утсыг хамгийн бага хэмжээгээр ашигладаг; мөр, багана тус бүрт нэг утас, ингэснээр нийт найман утас байна.

Дараах байдлаар ажилладаг тул хүч шаардагдахгүй: 7 дарахад гар нь 7 -г аваад шугам, багана руу холбодог бөгөөд энэ нь алгоритмыг автоматаар сканнердах замаар таних боломжийг олгодог.

Дот матрицтай 4х4 хэмжээтэй ямар ч гар энэ чуулганд ажиллах болно гэдгийг санах нь чухал юм.

Алхам 3: угсрах

Чуулган
Чуулган

Ерөнхий схемийн хувьд гар нь хүчгүй тул бид найман утсыг Arduino порт руу шууд холбодог. Дэлгэц дээр RS 232 дохио, эерэг ба сөрөг хүч байна. Арын гэрэлтүүлэг хэвээр байгаа бөгөөд энэ нь аль хэдийн холбогдсон байна (BKL -ээр тодорхойлогдсон).

Алхам 4: Эх код

Энэ төслийн эх кодод та цуваа болон товчлуурыг оруулах ёстой. Энэ нь цуваа програм хангамжид шаардлагатай RX_PIN болон TX_PIN багцтай, мөн INVERTED 1. Үүнийг урвуу логиктой оролтыг ашигладаг дохиог олшруулахын тулд доор байрлуулсан болно.

// biblioteca responsável pela comunicação com o display LCD #include // biblioteca answerável a captur to a press of a press of a no keylades #include // pino invalido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligaç LCD дэлгэц #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH e эсрэгээр #define INVERTED 1

Алхам 5: Командыг харуулах

Командуудыг харуулах
Командуудыг харуулах

Чухал: Энэ дэлгэц дээр зүгээр л мөр тавих нь хангалтгүй юм. Та хяналтын тэмдэгтүүдийг илгээх хэрэгтэй. PDF нь танд энэ дэлгэцийн гарын авлага байгаа сайтын холбоосыг агуулдаг. Гэхдээ хэрэв та өөр брендийн цуврал дэлгэцтэй бол эдгээртэй холбоотой хяналтын кодыг харах нь зүйтэй юм. Энэ загварт, жишээлбэл, бид тодорхой хяналтыг илгээх үед (жишээ нь энэ дэлгэцийн мэдээлэл) бид харилцаа холбоог идэвхжүүлэхийн тулд 254 дугаартай угтварыг илгээх шаардлагатай болдог.

Тиймээс бид аливаа зүйлийг хөнгөвчлөх зорилгоор ARRAY -ийг байгуулсан бөгөөд энэ нь тоон индексээр ханддаг хувьсагчдын цуглуулга юм. Үүнийг анхны тохиргоогоор дэлгэц рүү илгээх болно.

// comando para limpar toda to display a displayconst char limparTela = {254, 1}; // comandos de configuração inicial/ * 254, 254 эсвэл арын гэрэлтүүлэг 254, 1 лимфа 254, 253, 1 тохиргоо эсвэл тодосгогч 254, 13 лига эсвэл курсор paraficar piscando */const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};

Алхам 6: Гарын ажиллагаа

Гар хэрхэн ажилладаг вэ? Нэгдүгээрт, энэ нь массивыг холбодог. Энэ массив нь тэнд харуулах дүрийнх юм. Тиймээс хэрэв би X тавьвал дээд талын зүүн талын эхний товчлуурыг дарахад тэр гарч ирнэ. Энэ бол гарын агуулга бөгөөд үүнийг тушаах болно.

Бидний тодорхойлсон бусад зүйл бол энэ гарын ARRAY тохиолдолд 4 -р мөр, 4 -р баганын дугаар юм. Бидэнд одоо ч гэсэн Arduino тээглүүр, баганын тээглүүрүүд байгаа. Бидэнд тэмдэг, зүү, мөр, баганын параметр бүхий customKeypad Keypad бүтээгч байсаар байна.

const байт LINHAS = 4; // numero de linhas do tecladoconst байт COLUNAS = 4; // ямар ч туршлага байхгүй // тодорхойлно уу. 'B', '4', '5', '6'}, {'C', '7', '8', '9'}, {'D', 'c', '0', 'e '}}; байт PINOS_LINHA [LINHAS] = {8, 9, 10, 11}; // pinos que indicam линхас хийдэг шиг PINOS_COLUNA [COLUNAS] = {4, 5, 6, 7}; // товчлуурууд нь товчлуурууд шиг ажилладаг // товчлуурууд, хариултууд нь товчлууруудыг дарахад түлхүүрийн customKeypad = товчлуурууд (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);

Алхам 7: Нууц үг тохируулах

Энэ хэсэгт бид нууц үгээ тодорхойлж, дараа нь хоосон мөр болох нууц үг оруулах шаардлагатай болно. Доор бид softwareSerial -ийн жишээг оруулав.

// variáveis resposnsáveis por armazenar string ssenhasconst String SENHA_ESPERADA = "1234ABCD"; Мөр SENHA_DIGITADA = ""; // Instantia de SoftwareSerial para nos comunicar com o Цуваа SoftwareSerial displaySerial = SoftwareSerial -ээр дамжуулан харуулах (RX_PIN, TX_PIN, INVERTED);

Алхам 8: Тохиргоо

Тохиргооны хувьд хурдны ойролцоо байгаа displaySerial.begin (2, 400) энд байна. Манай тохиолдолд энэ нь байт илгээхэд хангалттай. Үүнийг дагаад 700 миллисекунд хүлээх болно. Бид DisplaySerial.print (initialConfig) -ийг анхны тохиргооноос 10 миллисекундын шинэ хоцролттой оруулж, эхлэх функц руу орно. Эхлэх функц дээр бид displaySerial.print ("нууц үг:") оруулна.

void setup () {Serial.begin (2400); // comunicação com o display цувралын албан ёсны хувилбар // 2400 displaySerial.begin (2400); // temp de de espera pela inicialização дэлгэцийн саатал (700); // DisplaySerial.print (configInicial) албан ёсны тохиргоог хийх; саатал (10); inicio (); } // função Respável нь ямар ч асуудалд хариулах болно. void inicio () {displaySerial.print ("Senha:"); }

Алхам 9: Гогцоо

Гогцоонд бид 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 uncimprimíveis foi pressionada 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': // concatena or novo símbolo a senha que estamos digitando SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // imrpime эсвэл дэлгэц дээр хэвлэх DisplaySerial.print (customKey); завсарлага;

Loop Switch 2 -р хэсэг

Энэ кодонд CLEAR товчлуур дарагдсан тохиолдолд бид сценарийг харуулна. Хэрэв та С үсгийг бичээд, нууц үгээ оруулсан хувьсагчийг арилгавал дэлгэцийг цэвэрлэх командыг дуудаж дахин эхлүүлнэ.

// caso a tecla CLEAR tenha sido pressionada case 'c': // limpa a variável que guarda a senha que está sendo digitada SENHA_DIGITADA = ""; // chama o comando para limpar a tela displaySerial.print (limparTela); // тохиргоог хийх нь чухал юм (); завсарлага;

Loop Switch 3 -р хэсэг

Өөр нэг боломж бол хэрэв та Е үсгийг бичвэл энэ тохиолдолд оруулсан нууц үг зөв эсвэл буруу байвал дэлгэцийг цэвэрлэж, дүн шинжилгээ хийх болно. Дараа нь бид 2 секундын хоцролтыг өгч, дэлгэцийг цэвэрлэж, нууц үгийн хувьсагчийг дахин тохируулж, эхэнд нь буцаана.

// caso a tecla ENTER дарна уу, devemos -ийг 'e' жишээгээр харьцуулна уу: // limpa a tela displaySerial.print (limparTela); // se senha digitada foi igual a ESPERADA if (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // pretime mensagem de senha correta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // pretime mensagem de senha incorreta displaySerial.print ("Senha Incorreta!"); } // 2 -р сарын 2 -ны өдөр, хойшлуулшгүй хугацаа (2000); displaySerial.print (limparTela);

Зөвлөмж болгож буй: