Sisukord:

5-juhtmeline takistuslik puutetundlik andur: 10 sammu
5-juhtmeline takistuslik puutetundlik andur: 10 sammu

Video: 5-juhtmeline takistuslik puutetundlik andur: 10 sammu

Video: 5-juhtmeline takistuslik puutetundlik andur: 10 sammu
Video: Соединения двигателя стиральной машины для ваших простых проектов 2024, Juuli
Anonim
5-juhtmeline takistuslik puutetundlik andur
5-juhtmeline takistuslik puutetundlik andur

Tere tere!

Selle saidiga töötamisest on juba mõnda aega möödas ja tundub, et päris palju on muutunud! Olen lõpuks valmis mõne teise projekti jaoks rooli istuma ja ma arvan, et on aeg ise asju veidi muuta!

Olen juba mõnda aega silmas pidanud projekti, mis põhineb 271828 plaatidel ja pallidel, kuid mul on enne selle valmimist palju õppida andurite ja juhtimisteooria kohta. Mõtlesin, et nii kaua, kui ma õpin ühte või kahte asja, võin ma teid kaasa võtta!

Sel eesmärgil on minu eesmärk nende õpetuste jaoks olla omamoodi hübriid minu poleeritud õpetuste ja projekti enda rekord. Iga individuaalne õpetus on sellel teekonnal üks samm ja sisaldab üksikasju, millest olen varem tähelepanu pööranud, näiteks koodi väljatöötamine (äsja lõpetatud koodi asemel) ja eksimused.

Olen selle uue projekti pärast väga põnevil ja ootan, et näha, kui hästi see töötab!

Täna saame lihtsalt lihtsa 5-juhtmelise puutepaneeli, mis töötab DP-32-ga.

Alustame!

Samm: mida vajate

Mida vajate
Mida vajate

Kuna see õpetus puudutab ühe anduri töötamist, pole teil palju vaja peale mikrokontrolleri ja puutepaneeli.

  • Mikrokontroller.

    Kasutan oma DP32 sisseehitatud leivalauaga, sest see muudab prototüüpimise uskumatult lihtsaks

  • Erinevad juhtmed ja kaablid.

    Ma oleksin võinud kasutada puutepaneeli sisseehitatud lintkaablit, kuid kui see rebeneb, on kogu paneel kasutu. Selle asemel kasutan sisseehitatud kaabli pinge vähendamiseks 6-juhtmelist kaablit

  • Nimeline 5-juhtmeline takistuslik puutetundlik paneel!

    Mul oli 4-juhtmeline takistuslik puutetundlik paneel, kuid selle lintkaabel läks katki

Ja see ongi kõik!

Samm: mis on 5-juhtmeline takistuslik puutetundlik paneel?

Mis on 5-juhtmeline takistuslik puutetundlik paneel?
Mis on 5-juhtmeline takistuslik puutetundlik paneel?
Mis on 5-juhtmeline takistuslik puutetundlik paneel?
Mis on 5-juhtmeline takistuslik puutetundlik paneel?
Mis on 5-juhtmeline takistuslik puutetundlik paneel?
Mis on 5-juhtmeline takistuslik puutetundlik paneel?

Kui olete minu 4-juhtmelise puutetundliku paneeli õpetuse läbi lugenud, olete tuttav takistusliku puuteanduri üldise ideega, kuid 5-juhtmelised paneelid ja 4-juhtmelised paneelid töötavad veidi erinevalt.

Mulle meeldib see paneel, sest näete kõiki juhtmete jälgi, nii et on lihtne näha, mis mida teeb. Esimesel pildil olen iga jälje erinevalt värvinud. Tõenäoliselt näete, et neli juhtmest (roosa, kollane, oranž ja lilla) lähevad kumbki neljast nurgast. Keskmine traat (punane) läheb painduvale anduripaneelile.

Teisel pildil oleme seadnud kaks neljast juhtmest (üleval paremal ja all paremal) kõrgepinge (näidatud punasega), ülejäänud kaks (vasakul üleval ja all vasakul) on madalal pinge (näidatud sinisega). See tekitab pinge gradiendi kogu paneelil. Sel juhul liigub gradient mööda X-telge, nii et kõrgem pinge tähistab kõrgemat positsiooni piki X-telge.

Kui puudutame sõrmega paneeli, surub see painduvat andurit kokku, ühendades selle kusagil piki X-telje gradienti. Meie mikrokontrolleri pingeandurid tunnevad seda pinget ja ütlevad teile, kus X-teljel sõrm puudutab!

Kolmandal pildil näete, kuidas konfiguratsioon muutub, et saaksime Y-telge mööda tajuda. Nii saame öelda, kus 2-D ruumis meie sõrm puudutab!

Samm: juhtmestik

Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik

Nagu ülaltoodud piltidelt ilmselt näete, olen oma neli nurka ühendanud oma digitaalse väljundpistikuga. See võimaldab mul need individuaalselt kõrgele või madalale seada. Minu anduri tihvt ühendatakse analoogsisendiga. 5-juhtmelise puutetundliku ekraani puhul on tore, erinevalt 4-juhtmelisest, see, et vajate ainult ühte analoogpinget, 4-juhtmelist aga kahte.

Teie juhtmestik võib muidugi erineda, kuid minu juhtmestik on järgmine:

Analoog 0 (tihvt 6) ühendub anduriga (keskmine tihvt)

Digital 3 ühendub paremas ülanurgas (kõige ülemine tihvt)

Digital 2 ühendub vasakule ülaosale (teine kõige ülemine tihvt)

Digital 1 ühendub alt vasakule (teine kõige väiksem tihvt)

Digitaalne 0 ühendub paremal all (kõige alumine tihvt)

Tasub veelkord märkida, et kasutan 6-juhtmelist kaablit, et minna mikrokontrolleri ja paneeli vahele. Olen jätnud selle kaabli ülemise tihvti ühendamata.

4. samm: tarkvaraarendus

Tarkvaraarendus
Tarkvaraarendus

Varem jätsin teie jaoks tavaliselt valmis tarkvarafaili, võib-olla koos lühikese ülevaatega sellest, mida kõik teeb. Mulle see ei meeldi. Ma tahan, et see sari räägiks arendatavatest projektidest ja selleks lisan selle tarkvara tegeliku arendamise algusest lõpuni.

Nagu tavaliselt, kasutan Arduino IDE -d koos Digilent -tuumaga. Iga jaotis sisaldab koodifaili, ekraanipilti, samuti täienduste kirjeldust ja seda, mida me püüame saavutada.

Praegu alustan lihtsa viivitusstiiliga vilkumisprogrammiga, täpselt sama, mida näete kaustast Näited. Kui loete seda pikka päist, mille ma kirjutasin, näete, et selle protsessi iga samm muudab programmi, et see läheneks meie lõppeesmärgile.

5. samm: oleku masin vilgub

Olekumasin vilgub
Olekumasin vilgub

Minu esimene samm on muuta vilkumisfunktsioon ühelt "delay ()" põhjal olekumasinale.

Neile, kes pole harjunud avaldusi vahetama, töötab see sarnaselt if-avaldusega. See (oranžikas kastis) testib meie oleku muutujat (mis algab nulliga). Siis hüppab see meie praeguse seisu juurde. Näete, et juhtum 0 ja 2 vastutavad LED -i sisse- ja väljalülitamise eest (vastavalt), juhtum 1 ja 3 aga lülitite vahel ootamise eest.

6. samm: nupp vilgub

Nupp Vilgub
Nupp Vilgub
Nupp Vilgub
Nupp Vilgub
Nupp Vilgub
Nupp Vilgub

Järgmisena tahtsin, et nuppu kasutatakse valguse vilkumiseks. Selle liigse komplitseerimise asemel teisaldasin kõik olekud ühe võrra allapoole (olekust 0 saab olek 1 jne). Seda tehes olge ettevaatlik, suurendades nii väljumise olekuid kui ka olekut ennast (vt joonis 3).

Kustutasin ka teise "oota" oleku. See tähendab, et nupp lülitab valguse üheks sekundiks sisse ja kohe pärast selle väljalülitamist saate nuppu uuesti vajutada.

Väärib märkimist, et see süsteem tühistab meie jaoks automaatselt nupu, sest peame ootama, kuni LED kustub, enne kui naaseme olekusse 0, kus nupp võib tsükli uuesti käivitada.

7. samm: jadaühendus

Jadaühendus
Jadaühendus
Jadaühendus
Jadaühendus

See värskendus on väga väike. Kõik, mida ma tahtsin teha, oli luua jadaühendus ja saata sõnumeid. Esimesel pildil näete, et käivitan funktsiooni Serial seadistamise () funktsioonis. Meie olekumasina sees lisasin olekutesse 1 ja 3 read, mis saadavad jada kaudu arvutisse lihtsaid sõnumeid.

8. samm: koordinaatide lugemine

Lugemise koordinaadid
Lugemise koordinaadid
Lugemise koordinaadid
Lugemise koordinaadid
Lugemise koordinaadid
Lugemise koordinaadid
Lugemise koordinaadid
Lugemise koordinaadid

Hea, et viimane etapp oli lihtne, sest see oli unine.

Alustuseks lisasin meie puutetundlikule paneelile muutujad, sealhulgas mõned aja muutujad nii puutepaneeli kui ka meie nupu jaoks. Mõne aja pärast näete, miks.

Olen olekumasina täielikult ümber kirjutanud. Koodi vaatamine on natuke segane, seega olen lisanud plokkskeemi, mis peaks illustreerima tehtut.

Märkimisväärsed asjad: praegu on kolm "ootel" sammu. Üks puutetundliku paneeli iga konfiguratsiooni jaoks, et lasta pingetel enne mõõtmist settida, ja teine, et anda nupule aega korralikult välja lülituda. Need ootamisetapid on põhjus, miks tahtsin anda nupule ja puutepaneelile oma ajamuutujad.

Märkus. DEBOUNCE_TIME konstant võib olla pisut madal. Julgelt seda suurendada.

9. samm: puhastamine

Koristamine
Koristamine
Koristamine
Koristamine
Koristamine
Koristamine

Oleme jõudnud selle projekti koodi lõpliku versiooni juurde!

Alustuseks lisasin möödunud aja arvutamiseks funktsiooni loop_diff (). DP32 sisemine kell on allkirjata pikk ja kuigi see on äärmiselt ebatõenäoline, on võimalik, et kell võib selle koodi käitamisajal*korduda. Sellisel juhul saame lihtsalt praeguse aja lahutamisel btn_time või panel_time salvestatud ajast meile midagi imelikku, nii et kirjutasin loop_diff (), et tuvastada silmuste tekkimist ja vastavalt käituda.

Olen teinud ka väikeseid koristustöid. Olen eemaldanud praegu kasutamata muutuja "oleku_aeg". Olen vahetanud märgendilt LED_BUILTIN (mis on Arduino standard) märgendile PIN_LED1 (mis on chipKiti ja DP32 standardvarustus). Samuti olen eemaldanud kõik Seriali kaudu sõnumid protsessi alustamise ja lõpetamise kohta, mis muudab meie andmed Seriali kaudu palju puhtamaks.

*Tegin aastaid tagasi matemaatikat ja arvan, et millis () funktsiooni jaoks kuluks umbes nädal pidevat käitusaega, enne kui muutuja hakkab ringlema.

10. samm: lõplikud mõtted

Lõplikud mõtted
Lõplikud mõtted

Ja see ongi kõik!

Kui olete seda järginud, peaks teie mikrokontrolleriga olema ühendatud töötav puutepaneel! See oli väike projekt, kuid see on osa suuremast projektist. Ma töötan millegi sellise nimel, nagu 271828 plaadid ja pallid, ja mul on veel pikk tee, enne kui see juhtub. Proovin teid kogu protsessi kaasa võtta ja iga osa peaks olema oma väike projekt.

See on minu jaoks õppimisprotsess, nii et jätke oma mõtted ja ettepanekud allolevatesse kommentaaridesse.

Aitäh ja näeme järgmine kord!

Soovitan: