Cuprins:
- Pasul 1: De ce veți avea nevoie
- Pasul 2: Ce este un panou tactil rezistiv cu 5 fire?
- Pasul 3: Cablare
- Pasul 4: Dezvoltare software
- Pasul 5: Blink-ul mașinii de stat
- Pasul 6: Buton Clipește
- Pasul 7: Comunicare în serie
- Pasul 8: Citirea coordonatelor
- Pasul 9: Curățarea
- Pasul 10: Gânduri finale
Video: Senzor tactil rezistiv cu 5 fire: 10 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Bună bună!
A trecut ceva timp de când am lucrat pe acest site și se pare că s-au schimbat destul de multe! În sfârșit, sunt gata să mă întorc la volan pentru un alt proiect și cred că este timpul să schimb lucrurile puțin eu însumi!
Am avut în vedere de ceva vreme un proiect bazat pe Placa și Bila lui 271828, dar am multe de învățat despre senzori și teoria controlului înainte de a fi terminat. M-am gândit că, atâta timp cât voi învăța un lucru sau două, s-ar putea să vă iau cu mine!
În acest scop, scopul meu pentru aceste tutoriale va fi un fel de hibrid între tutorialele mele cele mai polite și o înregistrare pentru proiectul în sine. Fiecare tutorial individual va fi un pas în acea călătorie și va include detalii pe care le-am trecut în revistă în trecut, cum ar fi dezvoltarea codului (în loc de codul completat doar) și pașii greșiți pe care îi iau pe parcurs.
Sunt foarte încântat de acest nou proiect și sunt încântat să văd cât de bine funcționează!
Astăzi vom obține doar un simplu panou tactil cu 5 fire care funcționează cu un DP-32.
Să începem!
Pasul 1: De ce veți avea nevoie
Deoarece acest tutorial se referă la funcționarea unui singur senzor, nu este nevoie de mult decât un microcontroler și un panou tactil.
-
Un microcontroler.
Folosesc DP32 cu o placă integrată, deoarece face prototiparea incredibil de simplă
-
Firuri și cabluri asortate.
Aș fi putut folosi cablul panglică încorporat al panoului tactil, dar dacă se rupe, tot panoul este inutil. În schimb, folosesc un cablu cu 6 fire pentru a reduce stresul asupra cablului încorporat
-
Panoul tactil rezistiv cu 5 fire!
Aveam un panou tactil rezistiv cu 4 fire, dar cablul ribbon pentru acesta s-a rupt
Si asta e!
Pasul 2: Ce este un panou tactil rezistiv cu 5 fire?
Dacă ați citit tutorialul meu cu panou tactil cu 4 fire, veți fi familiarizat cu ideea generală a unui senzor tactil rezistiv, dar panourile cu 5 fire și panourile cu 4 fire funcționează puțin diferit.
Îmi place acest panou, deoarece puteți vedea toate urmele de sârmă, ceea ce face mai ușor să vedeți ce face ce. În prima imagine, am colorat fiecare urmă diferit. Probabil puteți vedea că patru dintre fire (roz, galben, portocaliu și violet) merg fiecare la unul dintre cele patru colțuri. Firul din mijloc (roșu) merge la panoul flexibil al senzorului.
În a doua imagine, am setat două din cele patru fire (sus-dreapta și jos-dreapta) la o tensiune înaltă (afișată în roșu), în timp ce celelalte două (sus-stânga și jos-stânga) sunt setate la scăzut tensiune (indicată în albastru). Acest lucru creează un gradient de tensiuni pe întregul panou. În acest caz, gradientul merge de-a lungul axei X, deci o tensiune mai mare reprezintă o poziție mai înaltă de-a lungul axei X.
Când atingem degetul de panou, acesta apasă senzorul flexibil, conectându-ne undeva de-a lungul gradientului axei X. Senzorii de tensiune de pe microcontrolerul nostru pot simți această tensiune și vă pot spune unde se atinge degetul pe axa X!
În a treia imagine, puteți vedea cum se modifică configurația pentru a ne permite să simțim de-a lungul axei Y. În acest fel, putem spune unde se atinge degetul nostru în spațiul 2-D!
Pasul 3: Cablare
După cum puteți vedea probabil în imaginile de mai sus, am conectat cele patru colțuri ale mele la fiecare pin de ieșire digitală. Asta mă va permite să le setez individual la mare sau scăzut. Pinul senzorului meu este conectat la un pin analogic de intrare. Lucrul frumos la un ecran tactil cu 5 fire, spre deosebire de un 4 fire, este că ai nevoie doar de un pin analogic, în timp ce un 4 fire ar necesita 2.
Cablajul dvs. poate diferi, desigur, dar cablajul meu este după cum urmează:
Analog 0 (pin 6) se conectează la senzor (pin mediu)
Digital 3 se conectează la dreapta sus (pinul cel mai sus)
Digital 2 se conectează la stânga sus (al doilea pin de sus)
Digital 1 se conectează la partea de jos-stânga (al doilea pin de jos)
Digitalul 0 se conectează la partea de jos dreapta (pinul cel mai jos)
Merită să menționăm din nou că folosesc un cablu cu 6 fire pentru a merge între microcontroler și panou. Am lăsat pinul superior al acestui cablu neconectat.
Pasul 4: Dezvoltare software
În trecut, obișnuiam să renunț la un fișier software complet pe care să îl utilizați, poate cu o scurtă prezentare a ceea ce face totul. Nu-mi place asta. Vreau ca această serie să fie despre proiecte în curs de dezvoltare și, în acest scop, voi include dezvoltarea reală a acestui software de la început până la sfârșit.
Ca de obicei, voi folosi Arduino IDE, cu nucleul Digilent. Fiecare secțiune va include un fișier de cod, captură de ecran, precum și o descriere a completărilor și a ceea ce încercăm să realizăm.
Deocamdată, încep cu un program simplu de clipire a stilului de întârziere, exact la fel ca ceea ce ați găsi în folderul Exemple. Dacă citiți antetul lung pe care l-am scris, veți vedea că fiecare pas din acest proces va modifica programul pentru al aduce mai aproape de obiectivul nostru final.
Pasul 5: Blink-ul mașinii de stat
Prima mea mișcare este să schimb funcția de clipire de la una bazată pe „delay ()” la o mașină de stare.
Pentru cei care nu sunt obișnuiți să schimbe declarațiile, funcționează similar cu o instrucțiune if. Aceasta (în caseta portocalie) testează variabila noastră „stare” (care începe de la 0). Apoi trece la situația actuală. Veți vedea că cazurile 0 și 2 sunt responsabile pentru aprinderea și oprirea LED-ului (respectiv), în timp ce cazurile 1 și 3 sunt responsabile pentru așteptarea între comutatoare.
Pasul 6: Buton Clipește
Apoi, am vrut ca butonul să fie folosit pentru a clipi lumina. În loc să complic prea mult acest lucru, am mutat toate stările în jos cu una (starea 0 devine starea 1 etc.). Când faceți acest lucru, aveți grijă să incrementați stările de ieșire, precum și starea în sine (a se vedea imaginea 3).
Am șters și a doua stare de „așteptare”. Asta înseamnă că butonul aprinde lumina timp de o secundă și puteți apăsa din nou butonul imediat după ce acesta se stinge.
Este demn de remarcat faptul că acest sistem denunță automat butonul pentru noi, deoarece trebuie să așteptăm să se oprească LED-ul înainte de a reveni la starea 0 unde butonul poate declanșa din nou ciclul.
Pasul 7: Comunicare în serie
Această actualizare este foarte mică. Tot ce am vrut să fac este să stabilesc o conexiune serială și să trimit mesaje. În prima imagine, puteți vedea că încep Serial în funcția setup (). În interiorul mașinii noastre de stat, am adăugat linii la stările 1 și 3 care vor trimite mesaje simple către computer prin serial.
Pasul 8: Citirea coordonatelor
Este bine că ultimul pas a fost ușor, deoarece acesta a fost o doozy.
Pentru început, am adăugat variabile pentru panoul nostru tactil, inclusiv câteva variabile de timp dedicate atât pentru panoul tactil, cât și pentru butonul nostru. Veți vedea de ce într-un pic.
Am rescris complet mașina de stat. Este puțin confuz să te uiți la cod, așa că am inclus o diagramă bloc care ar trebui să ilustreze ceea ce s-a făcut.
Lucruri de reținut: există trei pași „de așteptare” acum. Unul pentru fiecare configurație a panoului tactil, pentru a lăsa tensiunile să se stabilească înainte de a efectua o măsurare, și unul pentru a da butonului timp pentru a debona corect. Acești pași de așteptare sunt motivul pentru care am vrut să dau atât butonului, cât și panoului tactil propriile variabile de timp.
Notă: Constanta DEBOUNCE_TIME ar putea fi puțin scăzută. Simțiți-vă liber să-l măriți.
Pasul 9: Curățarea
Am ajuns la versiunea finală a codului pentru acest proiect!
Pentru început, am adăugat o funcție numită loop_diff () pentru a calcula timpul scurs. Ceasul intern pentru DP32 este un lung nesemnat și, deși este extrem de puțin probabil, există posibilitatea ca ceasul să se bucle cândva în timpul rulării acestui cod *. În acest caz, simpla scădere a timpului curent din timpul salvat în btn_time sau panel_time ne va oferi ceva ciudat, așa că am scris loop_diff () pentru a detecta când apar bucle și să mă comport cum trebuie.
De asemenea, am făcut un pic de curățare minoră. Am eliminat variabila „state_time” acum nefolosită. Am trecut de la eticheta LED_BUILTIN (care este un standard Arduino) la eticheta PIN_LED1 (care este standard pentru chipKit și DP32). De asemenea, am eliminat toate mesajele prin Serial despre pornirea și încheierea procesului, ceea ce face ca datele noastre prin Serial să fie mult mai curate.
* Am făcut matematica cu ani în urmă și cred că pentru funcția millis () ar dura ceva de genul unei săptămâni de runtime constantă înainte ca variabila să se bucle.
Pasul 10: Gânduri finale
Si asta e!
Dacă ați urmat, ar trebui să aveți acum un panou tactil conectat la microcontroler! Acesta a fost un proiect mic, dar face parte dintr-un proiect mai mare. Lucrez la ceva de genul Plate and Ball al lui 271828 și mai am un drum lung de parcurs înainte ca acest lucru să se întâmple. Voi încerca să vă îndrum pentru tot procesul și fiecare parte ar trebui să fie propriul său proiect mic.
Acesta este un proces de învățare pentru mine, așa că nu ezitați să vă lăsați gândurile și sugestiile în comentariile de mai jos.
Mulțumesc și ne vedem data viitoare!
Recomandat:
Automatizare acasă cu senzor tactil NodeMCU Releu de control al temperaturii LDR: 16 pași
Automatizare la domiciliu cu releu de control al temperaturii LDR senzor tactil NodeMCU: În proiectele mele trecute NodeMCU, am controlat două aparate electrocasnice din aplicația Blynk. Am primit multe comentarii și mesaje pentru a actualiza proiectul cu Control manual și pentru a adăuga mai multe caracteristici. Așa că am proiectat această casetă Smart Extension Box. În acest IoT
Senzor tactil ușor, ieftin și fiabil, cu doar 3 părți: 3 pași
Senzor tactil ușor, ieftin și fiabil, cu doar 3 părți: controlul tuturor tipurilor de dispozitive electronice cu atingerea degetului poate fi destul de util. În acest instructiv vă voi arăta cum să construiți un senzor tactil ușor, dar puternic, care funcționează perfect. Tot ce aveți nevoie este un tranzistor standard și două
Trei circuite senzor tactil + circuit temporizator tactil: 4 pași
Trei circuite senzor tactil + circuit temporizator tactil: senzorul tactil este un circuit care pornește când detectează atingerea pinilor tactili. Funcționează pe o bază tranzitorie, adică încărcarea va fi ACTIVATĂ doar pentru momentul în care se face atingerea pe ace. Aici, vă voi arăta trei moduri diferite de a face o atingere sen
Buton tactil rezistiv iluminat fără fir: 5 pași
Buton tactil rezistiv iluminat fără fir: Acesta este un proiect simplu cu ideea de a crea un buton tactil rezistiv care integrează LED RGB. Ori de câte ori acest buton este atins, acesta va fi luminat și culoarea lămpii poate fi personalizată. Poate fi folosit ca buton tactil iluminat portabil prin
Senzor tactil și senzor de sunet care controlează luminile AC / DC: 5 pași
Senzor tactil și senzor de sunet care controlează luminile AC / DC: Acesta este primul meu proiect și acest lucru funcționează pe baza a doi senzori de bază, unul este senzorul tactil și al doilea este senzorul de sunet, când apăsați touch pad-ul senzorului tactil, lumina AC se va comuta PORNIT, dacă îl eliberați, Lumina va fi OPRITă și la fel