INHOUDSOPGAWE:

5-draad weerstandbiedende aanraaksensor: 10 stappe
5-draad weerstandbiedende aanraaksensor: 10 stappe

Video: 5-draad weerstandbiedende aanraaksensor: 10 stappe

Video: 5-draad weerstandbiedende aanraaksensor: 10 stappe
Video: 5 Wires Resistive Touch Screen Panel PC IP66 IP67 Waterproof 17" CE Compliance 2024, Julie
Anonim
5-draad weerstandbiedende aanraaksensor
5-draad weerstandbiedende aanraaksensor

Hallo hallo!

Dit is 'n rukkie sedert ek op hierdie webwerf gewerk het, en dit het baie verander! Ek is uiteindelik gereed om weer agter die stuur te sit vir 'n ander projek, en ek dink dit is tyd om self 'n bietjie te verander!

Ek het al 'n geruime tyd 'n projek in gedagte wat gebaseer was op plaat en bal van 271828, maar ek moet nog baie leer oor sensors en beheerteorie voordat dit klaar is. Ek het gedink dat solank ek 'n ding of twee leer, ek julle dalk saamneem!

Vir hierdie doel, is my doel vir hierdie tutoriale 'n soort hibride tussen my meer gepoleerde tutoriale en 'n rekord vir die projek self. Elke individuele tutoriaal is 'n stap in die reis en bevat besonderhede wat ek in die verlede oorweeg het, soos kode -ontwikkeling (in plaas van net voltooide kode) en misstappe wat ek onderweg neem.

Ek is baie opgewonde oor hierdie nuwe projek, en ek is opgewonde om te sien hoe goed dit werk!

Vandag kry ons net 'n eenvoudige 5-draads aanraakskerm wat werk met 'n DP-32.

Laat ons begin!

Stap 1: wat u benodig

Wat jy nodig het
Wat jy nodig het

Omdat hierdie handleiding handel oor die werking van 'n enkele sensor, is daar nie veel nodig nie, behalwe 'n mikrobeheerder en die aanraakpaneel.

  • 'N Mikrobeheerder.

    Ek gebruik my DP32 met 'n ingeboude broodbord, want dit maak prototipering ongelooflik eenvoudig

  • Diverse drade en kabels.

    Ek kon die ingeboude lintkabel van die aanraakpaneel gebruik het, maar as dit skeur, is die hele paneel nutteloos. Ek gebruik eerder 'n 6-draads kabel om die spanning op die ingeboude kabel te verminder

  • Die titulêre 5-draads weerstandige raakpaneel!

    Ek het 'n weerstandige raakpaneel van 4 drade gehad, maar die lintkabel het gebreek

En dit is dit!

Stap 2: Wat is 'n weerstandige raakpaneel met 5 drade?

Wat is 'n weerstandige raakpaneel met 5 drade?
Wat is 'n weerstandige raakpaneel met 5 drade?
Wat is 'n weerstandige raakpaneel met 5 drade?
Wat is 'n weerstandige raakpaneel met 5 drade?
Wat is 'n weerstandige raakpaneel met 5 drade?
Wat is 'n weerstandige raakpaneel met 5 drade?

As u my tutoriaal met 4 draads aanraakpanele gelees het, is u bekend met die algemene idee van 'n weerstandbiedende aanraaksensor, maar 5-draads panele en 4-draads panele werk effens anders.

Ek hou van hierdie paneel omdat jy al die draadspore kan sien, wat dit maklik maak om te sien wat doen wat. In die eerste prentjie het ek elke spoor anders ingekleur. U kan waarskynlik sien dat vier van die drade (pienk, geel, oranje en pers) elk na een van die vier hoeke gaan. Die middelste draad (rooi) gaan na die buigsame sensorpaneel.

Op die tweede foto het ons twee van die vier drade (regs bo en regs onder) op 'n hoë spanning gestel (in rooi getoon), terwyl die ander twee (links bo en links onder) op laag gestel is spanning (in blou getoon). Dit skep 'n spanningsgradiënt oor die hele paneel. In hierdie geval gaan die gradiënt langs die X-as, dus verteenwoordig 'n hoër spanning 'n hoër posisie langs die X-as.

As ons met ons vinger na die paneel raak, druk dit die buigsame sensor in, wat aansluit by êrens langs die X-as gradiënt. Spanningsensors op ons mikrobeheerder kan hierdie spanning aanvoel en vir u sê waar u vinger op die X-as raak!

In die derde prentjie kan u sien hoe die konfigurasie verander sodat ons langs die Y-as kan voel. Op hierdie manier kan ons weet waar ons vinger in 2-D-ruimte raak!

Stap 3: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading

Soos u waarskynlik op die foto's hierbo kan sien, het ek my vier hoeke elk met hul eie digitale uitsetpen verbind. Hiermee kan ek hulle individueel op hoog of laag stel. My sensorpen word gekoppel aan 'n analoog invoerpen. Die goeie ding van 'n 5-draads aanraakskerm, in teenstelling met 'n 4-draads, is dat u slegs een analoog pen benodig, terwyl 'n 4-draads 2 benodig.

U bedrading kan natuurlik verskil, maar my bedrading is soos volg:

Analoog 0 (pen 6) verbind met sensor (middelste pen)

Digital 3 maak aansluit by regs bo (boonste pen)

Digital 2 sluit aan bo-links (tweede pen bo)

Digital 1 maak verbinding met onder-links (tweede onderste pen)

Digitale 0 sluit aan onder-regs (onderste pen)

Dit is die moeite werd om weer op te let dat ek 'n 6-draads kabel tussen die mikrobeheerder en die paneel gebruik. Ek het die boonste pen van hierdie kabel los gelaat.

Stap 4: sagteware -ontwikkeling

Sagteware ontwikkeling
Sagteware ontwikkeling

In die verlede het ek gewoonlik 'n voltooide sagtewarelêer vir u neergesit, miskien met 'n kort deurloop van wat alles doen. Ek hou nie daarvan nie. Ek wil hê dat hierdie reeks handel oor projekte wat ontwikkel word, en daarom gaan ek die werklike ontwikkeling van hierdie sagteware van begin tot einde insluit.

Soos gewoonlik gebruik ek die Arduino IDE, met die Digilent -kern. Elke afdeling bevat 'n kode -lêer, skermkiekie, sowel as 'n beskrywing van die toevoegings en wat ons probeer bereik.

Op die oomblik begin ek met 'n eenvoudige vertragingsstyl, presies dieselfde as wat u in die gids Voorbeelde sou vind. As u die lang kop wat ek geskryf het, lees, sal u sien dat elke stap in hierdie proses die program sal verander om dit nader aan ons einddoel te bring.

Stap 5: Knip die masjien uit

Staatsmasjien knip
Staatsmasjien knip

My eerste stap is om die knipfunksie te verander van 'n funksie wat gebaseer is op 'delay ()' na 'n staatsmasjien.

Vir diegene wat nie gebruik word om stellings oor te skakel nie, werk dit op dieselfde manier as 'n if-verklaring. Hierdie een (in die oranje blokkie) toets ons "toestand" veranderlike (wat begin by 0). Dan spring dit na die saak van ons huidige toestand. U sal sien dat geval 0 en 2 verantwoordelik is vir die aan- en uitskakel van die LED (onderskeidelik), terwyl geval 1 en 3 verantwoordelik is vir die wag tussen die skakelaars.

Stap 6: Knoppie knipper

Knoppie knipper
Knoppie knipper
Knoppie knipper
Knoppie knipper
Knoppie knipper
Knoppie knipper

Daarna wou ek hê dat die knoppie gebruik word om die lig te laat flikker. In plaas daarvan om dit te kompliseer, het ek net al die state met een afgeskuif (toestand 0 word toestand 1, ens.). Wees versigtig om die uitgangstoestande sowel as die toestand self te verhoog (sien prent 3).

Ek het ook die tweede "wag" toestand verwyder. Dit beteken dat die knoppie die lig vir 'n sekonde aanskakel, en u kan dadelik weer op die knoppie druk nadat dit uitgeskakel is.

Dit is opmerklik dat hierdie stelsel die knoppie outomaties vir ons ontwrig, want ons moet wag totdat die LED uitskakel voordat ons terugkeer na toestand 0 waar die knoppie weer die siklus kan aktiveer.

Stap 7: Seriële kommunikasie

Seriële kommunikasie
Seriële kommunikasie
Seriële kommunikasie
Seriële kommunikasie

Hierdie opdatering is baie klein. Al wat ek wou doen, was om 'n seriële verbinding tot stand te bring en boodskappe te stuur. Op die eerste foto kan u sien dat ek Serial begin in die setup () -funksie. Binne ons staatsmasjien het ek reëls by state 1 en 3 gevoeg wat eenvoudige boodskappe via die reeks na die rekenaar sal stuur.

Stap 8: Leeskoördinate

Leeskoordinate
Leeskoordinate
Leeskoordinate
Leeskoordinate
Leeskoordinate
Leeskoordinate
Leeskoordinate
Leeskoordinate

Dit is goed dat die laaste stap maklik was, want hierdie een was 'n doozy.

Om mee te begin, het ek veranderlikes bygevoeg vir ons aanraakpaneel, insluitend 'n paar tydsveranderlikes vir die aanraakpaneel en ons knoppie. U sal binnekort sien hoekom.

Ek het die staatsmasjien heeltemal oorgeskryf. Dit is 'n bietjie verwarrend om na die kode te kyk, so ek het 'n blokdiagram ingesluit wat moet illustreer wat gedoen is.

Dinge om op te let: daar is nou drie 'wag' -stappe. Een vir elke konfigurasie van die aanraakpaneel, om die spanning te laat sak voordat 'n meting uitgevoer word, en een om die knoppie tyd te gee om behoorlik terug te spring. Hierdie wagstappe is die rede waarom ek die knoppie en die aanraakpaneel hul eie tydveranderlikes wou gee.

Let wel: die DEBOUNCE_TIME konstante kan 'n bietjie laag wees. Verhoog dit gerus.

Stap 9: Skoonmaak

Skoonmaak
Skoonmaak
Skoonmaak
Skoonmaak
Skoonmaak
Skoonmaak

Ons het die finale weergawe van die kode vir hierdie projek bereik!

Om mee te begin, het ek 'n funksie met die naam loop_diff () bygevoeg om die verstrekte tyd te bereken. Die interne klok vir die DP32 is 'n ongetekende lang, en hoewel dit uiters onwaarskynlik is, is die moontlikheid dat die horlosie soms kan loop tydens die kode*. As u die huidige tyd eenvoudig aftrek van die tyd wat in btn_time of panel_time gespaar is, sal ons iets vreemds kry, so ek het loop_diff () geskryf om op te spoor wanneer lusse voorkom en daarvolgens op te tree.

Ek het ook 'n bietjie gereinig. Ek het die nou ongebruikte "state_time" veranderlike verwyder. Ek het oorgeskakel van die LED_BUILTIN -tag (wat 'n Arduino -standaard is) na die PIN_LED1 -tag (wat standaard is vir chipKit en die DP32). Ek het ook alle boodskappe via Serial verwyder oor die begin en einde van die proses, wat ons data deur Serial baie skoner maak.

*Ek het jare gelede die wiskunde gedoen en ek dink dat dit vir die millis () -funksie ongeveer 'n week van konstante tydsduur sou duur voordat die veranderlike sou loop.

Stap 10: Laaste gedagtes

Laaste gedagtes
Laaste gedagtes

En dit is dit!

As u dit gevolg het, moet u nou 'n werkende aanraakpaneel op u mikrobeheerder hê! Dit was 'n klein projek, maar dit is deel van 'n groter projek. Ek werk na iets soos 271828's Plate and Ball, en ek het nog 'n lang pad om te gaan voordat dit gebeur. Ek gaan probeer om u saam te neem vir die hele proses, en elke deel moet sy eie klein projek wees.

Dit is vir my 'n leerproses, en laat gerus u gedagtes en voorstelle in die kommentaar hieronder.

Dankie, en ek sien jou volgende keer!

Aanbeveel: