Traductoare Pentru Deplasari Si Distante Liniare Mari
CUPRINS
Capitolul I Introducere
1.1.Tema și domeniul lucrării
Capitolul II
2. Traductoare pentru deplasări și distanțe liniare mari
2.1.Traductoare electronice de distantă
2.2.Traductoare de distantă care folosesc metoda diferenței de fază
2.3.Traductoare de distanță care folosesc metoda Doppler
2.4.Traductoare interferometrice de distanță
2.5.Traductoare optoelectronice de distanță care folosesc metoda triangulației
2.6.Traductoare de proximitate
Capitolul III Schema Bloc a sistemului de măsurare a vitezei liniare
3.2 Arhitectura hardware
3.2.1 Placa de dezvoltare
3.2.2Specificații tehnice ATMEGA328
3.4 Display LCD 16×2 Serial
3.5. Senzori infrarosii distanta Sharp GP2Y0D810
3.5.1. Prezentare generală
3.5.2. Caracteristici tehnice
Fig 2.8. Schema electrica sensor infrarosu
Capitolul IV- Schema electrică a sistemului de măsurare a turației
4.1 Componentele schemei electrice
4.1.1.Placă de dezvoltare
4.1.2. LCD serial
4.1.3.Senzori proximitate Sharp
4.2.Funcționarea Schemei electrice
Capitolul V – Proiectare software a sistemului de măsurare a vitezei liniare
5.2.Proiectare și program masurare viteza liniara
Functionarea algoritmului descris
5.2.1.Program proiectat masurare viteza liniara cu afisare pe monitor serial
5.2.2.Program proiectat masurare viteza liniara cu afisare pe LCD serial
Capitolul VI Rezultate experiementale
6.1 Modul de utilizare a intrarilor digitale a microcontrolerului utilizand butoane
6.2. Modul de utilizare si functionare a LCD-ului serial
6.3. Modul de utilizare si functionarea senzorilor de proximitate tip infrarosii;
6.4. Testarea sistemului proiectat si rezultatele obtinute
Capitolul VII Concluzii
Bibliografie
ANEXE
Capitolul I Introducere
1.1.Tema și domeniul lucrării
Extinderea folosirii calculatoarelor in activități care erau pană nu demult indeplinite exclusiv de operatorii umani cere din partea celor care indeplinesc asemenea aplicații din ce in ce mai multe cunoștințe, mai diverse, mai complexe. Și din păcate acestă pregătire nu poate fi obținută fără un efort susținut.
In prima parte a proiectului se dorește să se prezinte noțiuni fundamentale fară de care nu am putea incepe realizarea proiectului tehnic.
Partea a doua a proiectului urmarește si explică functionarea schemei bloc si a cea electrică a montajului si prezintă metoda prin care fucționează codul program al acestuia.
Ansamblu va fi compus dintr-un microcontroler, senzori de proximitate de tip infrarosu, un display LCD digital cu conexiune serială pentrru o conectare și o comunicare rapidă cu microcontrolerul.
Implementarea și proiectarea unui sistem capabil să măsoare și în același timp să afișeze viteza obtinută de un obiect aflat în deplasare care străbate raza de acțiune a senzorilor de proximitate, reprezintă un pas important în dezvoltarea ulterioară a unui sistem mai complex capabil sa ofere posibilitatea de verificare a sistemelor de masurare a vitezei dispuse pe diferite autovehicule.
Sistemul își poate găsii materializare în aproape orice industrie având în vedere automatizarea din viața de zi cu zi pe care o întâlnești în toate domeniile.
Capitolul II
2. Traductoare pentru deplasări și distanțe liniare mari
a)Traductorul liniar pentru deplasări și distanțe liniare mari
Traductorul liniar, ca și cel circular, este format dintr-o riglă a cărei lungime acoperă domeniul de măsurare și un cursor care se deplasează deasupra riglei. Pe riglă și pe cursor se află înfășurări din folie de cupru imprimate. Rigla are o înfășurare iar cursorul două, toate realizate cu același pas p = 2.tp (fig. 8.8).
Traductorul se folosește ca traductor absolut în domeniul unui semipas (semiperioadă), tipic de 2 mm și ca traductor ciclic absolut, contorizând numărul de semipași (numărul de treceri prin zero ale tensiunii proporționale cu defazajul) și apoi măsurând numeric sau analogic faza în cadrul unui pas.
Există două variante și anume:
cu alimentare pe riglă, cu prelucrarea a două semnale culese din înfășurările cursorului;
cu alimentare pe cursor, cu două tensiuni și prelucrând un singur semnal la ieșire. Această ultimă soluție este cea mai răspândită.
Traductorul liniar are o rezoluție bună (tipic 1 ^m). Lungimile mai mari de 1 m se măsoară prin înseriere de riglete. Trebuie acordată atenție evitării excentricităților la înseriere și păstrării constante a interstițiilor dintre rigiă și cursor, a paralelismului față de ghidaj și a planeității.
Fig 1.6
Erorile de măsurare mai mari sunt cele de temperatură, datorate dilatării
inegale a riglei și a suportului. Erorile datorate câmpurilor perturbatoare externe se
elimină prin ecranarea părții active a cursorului cu o folie de metal conectată la
masă.Pentru domenii mari se folosesc traductoare liniare cu pas mare (rigle de 2 m sau 4 m), dar în acest caz scade rezoluția.
b) Traductoare optoelectronice numerice liniare
Un traductor optoelectronic liniar are două părți: o unitate de scanare și o riglă. Unitatea de scanare conține o sursă de radiație optică, o lentilă condensoare, un reticul cu ferestre cu rețele de linii și fotodetectoare. Se folosesc rețele de linii pe sticlă sau rigle metalice, pe baza mașinii, în timp ce unitatea de scanare este conectată la sania deplasabilă a mașinii.
La mișcarea unității de scanare, un fascicol paralel de radiație optică trece prin lentila condensoare, apoi prin ferestrele reticulului de scanare până la rigla cu rețea de linii reflectorizante. Radiația optică reflectată trece înapoi prin ferestrele de scanare până la fotodetectoare, care convertesc fluctuațiile intensității radiației optice în semnale electrice sinusoidale, cu o deplasare de fază de 90°. Ieșirile sunt trimise la un controler numeric pentru interpolare și decodare, care numără înainte / înapoi și indică poziția saniei mobile.
Traductoarele optoelectronice liniare au o scară gradată autoadezivă din oțel și o parte optoelectronică pentru a obține informația despre poziție. Capetele de citire au înălțimea de 10,7 mm și greutatea de doar 22 g, putând suporta viteze de până la 5 m/s. Dimensiunile mici, viteza mare și robustețea permit acestui sistem să fie ușor integrat în aplicații cu motoare liniare, dispozitive de acționare, etaje x-y de mare viteză, etc.
2.1.Traductoare electronice de distantă
Traductoare de distantă care folosesc metoda impulsului
Se bazează pe măsurarea timpului parcurs de un impuls de radiație optică sau de unde radio de la sursă până la obiectul față de care se măsoară distanța (ținta) și înapoi, prin reflexie, până la receptor (timp de zbor).
Distanța până la țintă este dată de relația:
unde d este distanța între instrument și țintă, c este viteza luminii în mediu, At este timpul de zbor al impulsului, tE timpul de start al impulsului iar tR timpul de sosire al impulsului la receptor. Principiul de măsurare este ilustrat în figura 1.7.
Fig 1.7
În funcție de puterea impulsului de radiație optică și de distața măsurată, ținta reflectorizantă poate fi o formă naturală sau artificială din teren, sau un retroreflector special, pentru a mări distanța și precizia.
Acuratețea distanței depinde de acuratețea măsurării timpului de zbor. Instrumentele de distanță alimentate de la baterii au formă binoculară și sunt folosite manual, cu tripod sau atașate la periscoapele vehiculelor. Ca surse se folosesc lasere cu comutarea factorului de calitate, distanțele măsurate fiind de 50m … 20km.
Instrumentele de măsurare a distanței de uz general se împart în trei grupuri, majoritatea folosind drept surse diode laser de putere:
instrumente industriale și de inginerie civilă, pentru distanțe de 8 … 100m și ținte mate negre sau ținte mate albe;
instrumente portabile pentru game de măsurare de 100m și ținte pasive (necooperante) sau game de pănă la 3km și ținte cu prismă;
instrumente cu acuratețe foarte mare, de ± 5 mm.
2.2.Traductoare de distantă care folosesc metoda diferenței de fază
Din această categorie fac parte două tipuri de traductoare:
traductoare care măsoară diferența de fază între semnalul transmis și semnalul recepționat;
traductoare care măsoară diferența de fază între două semnale recepționate.
Traductoare care măsoară diferența de fază între semnalul transmis și cel recepționat
Semnalul de măsurat, care modulează o undă purtătoare de radiație optică la emițător este transmis spre reflector, unde este reflectat înapoi la receptor. La receptor se compară fazele semnalului emis și a celui recepționat și se măsoară diferența de fază ΔΦ.
Semnalul emis este descris de ecuația:
y = Asin t = AsinΦ
iar semnalul recepționat este:
y = Asin (t + Δt) = Asin(Φ + ΔΦ)
Deoarece se folosește un semnal continuu, valorile yE și yR variază în timp, iar diferența de fază ΔΦ și diferența de timp Δt rămân constante. Se măsoară astfel diferența de fază constantă, chiar dacă amplitudinile celor două semnale variază continuu.
Distanța se calculează cu relația:
At
Ca dezavantaj, At' nu se poate obține prin comparație de fază. Trebuie să se adauge la At un timp echivalent numărului de perioade complete trecute în timpul zborului semnalului pentru a obține timpul total de zbor:
unde Δt' este timpul de zbor al semnalului, m numărul întreg de lungimi de undă complete pe calea de măsurare (ambiguitatea), t* timpul scurs pentru o perioadă completă a semnalului de modulație, iar Δt diferența de timp de măsurare a fazei.
Cu excepția lui m, toate variabilele din ecuația de mai sus sunt cunoscute.
Dacă se înlocuiește λ/2 = U = unitatea de lungime a instrumentului și = fracțiunea din unitatea de lungime care trebuie determinată prin măsurarea fazei, obținem:
d=mU+L
Traductoare care măsoară diferența de fază între două semnale recepționate
Aceste traductoare sunt folosite în sistemele de navigație.
Principiul de funcționare este următorul: Două emițătoare radio M și S transmit semnale continui nemodulate, cu frecvențe egale, care sunt recepționate la o stație R, de poziție necunoscută.
Dacă ΦM și ΦS sunt unghiurile de fază ale celor două semnale radiate în orice moment, diferența lor de fază la stația R va fi:
undeΔΦ este diferența de fază la stația R, ΦM și ΦS sunt unghiurile de fază ale
transmițătoarelorM și respectiv S, f este frecvența emițătoarelor, c viteza luminii,
MR distanța între emițătorul M și receptorul R și SR distanța între emițătorul S și
receptorulR. Unghiurile de fază ΦM și ΦS sunt menținute constante, diferența lor fiind de
asemenea constantă. Al doilea termen al ecuației este variabil și depinde de
diferența lungimii căilor la cele două emițătoare.
2.3.Traductoare de distanță care folosesc metoda Doppler
Efectul Doppler este valabil nu numai pentru unde sonore, ci și pentru unde electromagnetice.
În fig. 1.9 este prezentat un instrument mobil format dintr-un emițător și un receptor de microunde. Instrumentul se mișcă cu viteza v spre o suprafață reflectorizantă. Semnalul emis este reflectat de această suprafață și recepționat de receptor.
Fig 1.9
La suprafața reflectorizantă, expresia frecvenței este:
iar la receptor, frecvența este:
Prin mixarea celor două frecvențe, rezultă frecvența Doppler:
În funcție de tipul undelor folosite, frecvența Doppler poate fi obținută astfel: prin numărarea bătăilor pe secundă, în cazul undelor sonore, prin număraea franj elor luminoase (sau întunecate) pe secundă a unei forme de interferență, în cazul radiației optice,
prin numărarea perioadelor semnalului Doppler pe secundă, pentru unde radio.
Distanța parcursă de instrument de la timpul t1 la timpul t2 este:
Metoda Doppler se folosește la poziționarea sateliților și măsurarea distanțelor cu cea mai mare precizie. De exemplu, interferometrul cu laser cu efect Doppler măsoară distanța până la un reflector cu rezoluția de 10 nm.
2.4.Traductoare interferometrice de distanță
Primul interferometru a fost realizat de Michelson, în anul 1880, în Germania. Fascicolul laser este fază ale
transmițătoarelorM și respectiv S, f este frecvența emițătoarelor, c viteza luminii,
MR distanța între emițătorul M și receptorul R și SR distanța între emițătorul S și
receptorulR. Unghiurile de fază ΦM și ΦS sunt menținute constante, diferența lor fiind de
asemenea constantă. Al doilea termen al ecuației este variabil și depinde de
diferența lungimii căilor la cele două emițătoare.
2.3.Traductoare de distanță care folosesc metoda Doppler
Efectul Doppler este valabil nu numai pentru unde sonore, ci și pentru unde electromagnetice.
În fig. 1.9 este prezentat un instrument mobil format dintr-un emițător și un receptor de microunde. Instrumentul se mișcă cu viteza v spre o suprafață reflectorizantă. Semnalul emis este reflectat de această suprafață și recepționat de receptor.
Fig 1.9
La suprafața reflectorizantă, expresia frecvenței este:
iar la receptor, frecvența este:
Prin mixarea celor două frecvențe, rezultă frecvența Doppler:
În funcție de tipul undelor folosite, frecvența Doppler poate fi obținută astfel: prin numărarea bătăilor pe secundă, în cazul undelor sonore, prin număraea franj elor luminoase (sau întunecate) pe secundă a unei forme de interferență, în cazul radiației optice,
prin numărarea perioadelor semnalului Doppler pe secundă, pentru unde radio.
Distanța parcursă de instrument de la timpul t1 la timpul t2 este:
Metoda Doppler se folosește la poziționarea sateliților și măsurarea distanțelor cu cea mai mare precizie. De exemplu, interferometrul cu laser cu efect Doppler măsoară distanța până la un reflector cu rezoluția de 10 nm.
2.4.Traductoare interferometrice de distanță
Primul interferometru a fost realizat de Michelson, în anul 1880, în Germania. Fascicolul laser este transmis către un despicătorul de fascicol DF, care lasă o parte a fascicolului să treacă spre oglinda mobilă OM iar cealaltă parte o deviază spre reflectorul fix. Fascicolele reflectate produc în despicătorul de fascicol o formă de interferență deoarece sunt unde coerente, provin de la același laser, au aceeași frecvență și amplitudine. Ele au însă, diferența de fază constantă datorită diferenței între căile optice.
Cele două unde sunt descrise de ecuațiile:
y1 =Asinωt si y2 = Asin(ωt + ΔΦ)
și atinge un maxim pentru ΔΦ = 0 (interferență constructivă) și un minim pentru ΔΦ = ;r (interferență distructivă).
În timpul deplasării reflectorului mobil, fotodetectorul numără franj ele luminoase din forma de interferență.
Distanța între prima și ultima poziție a reflectorului este:
2d = (numărul de franje luminoase) . X, unde X este lungimea de undă a radiației laser, adică:
d = (numărul de franje luminoase) . X/2
Interferometrele uzuale au gama maximă de măsurare de aproximativ 60 m și sunt utilizate nu doar pentru măsurarea precisă a lungimii ci și pentru măsurarea rectiliniarității, perpendicularității, paralelismului, planeității și unghiului.
2.5.Traductoare optoelectronice de distanță care folosesc metoda triangulației
Triangulația este metoda cea mai veche de măsurare a distanței, principiul de bază fiind prezentat în fig. 1.10.
Sistemul de măsurare stabilește o pereche de triunghiuri asemenea, triunghiul imagine și triunghiul obiect. Linia de bază b a triunghiului obiect și înălțimea h a triunghiului imagine sunt considerate cunoscute.
Se măsoară linia de bază Ax a triunghiului imagine și se calculează înălțimea triunghiului obiect, egală cu distanța z de măsurat:, cu relația:
Fig 1.10
Pe măsură ce dimensiunile h și b se modifică, această tehnică poate fi scalată pe o gamă mare de valori ale lui z. Distanța de măsurat este limitată doar de sistemul de detecție.
Cel mai simplu traductor optoelectronic cu triangulație este cel punctual, în care un singur spot luminos este proiectat pe obiect și apoi focalizat pe fotodetector.
Principiul de funcționare al acestui traductor este prezentat în fig. 1.11.
unde b este linia de bază, d? este unghiul de proiecție și dd este unghiul la care este împrăștiată lumina spre fotodetector.
unde Ax este distanța spotului luminos pe fotodetector, față de un punct de referință, iar f este lungimea focală a lentilei.
Triangulația nu este eficientă atunci când există ocluzii (puncte iluminate de laser ce nu pot fi văzute de fotodetector) sau umbriri (puncte vizibile de la fotodetector dar care nu sunt iluminate de laser). O metodă de reducere a umbririi este folosirea a două fotodetectoare de o parte și de alta a laserului, care iluminează perpendicular obiectul față de care se măsoară distanța.
Traductorul optoelectronic liniar cu scanare cu triangulație măsoară distanța față de punctele unei suprafețe vizibile dintr-un plan 3-D. Scanerul cu un singur spot laser conține o diodă laser, un mecanism de scanare (oglindă rotitoare) care baleiază fascicolul laser pe scena măsurată și o cameră video cu suprafață fotodetectoare liniară.
Traductorul poate fi folosit și la măsurarea optică a profilurilor.
2.6.Traductoare de proximitate
Proximitatea se referă la gradul de apropiere dintre două obiecte, dintre care unul reprezintă sistemul de referință. Traductorul controlează o anumită poziție, fără contact între referință și obiectul aflat în deplasare.
Tipuri de măsurători de proximitate: sesizarea capetelor de cursă, a interstițiului între suprafețe, a prezenței unui obiect în câmpul de lucru, etc.
La traductoarele de proximitate, mărimea de ieșire variază discret între două valori, ce semnifică prezența sau absența corpului controlat.
Traductor inductiv de proximitate
Conține un oscilator și o față sensibilă care convertește informația despre poziția unui obiect metalic în raport cu fața sensibilă, în semnal electric. Oscilatorul întreține un câmp magnetic alternativ în jurul bobinajului. Dacă în acest câmp este plasat un corp metalic, în masa metalului apar curenți Foucault care generează un câmp magnetic de sens opus câmpului principal și blochează oscilațiile, inversând starea elementului de comutație de la ieșirea adaptorului. Între punctele de pornire și de oprire a oscilațiilor apare o curbă de tip histerezis.
Traductorul se execută în una din următoarele variante:
cu fața sensibilă inclusă frontal sau lateral în corpul traductorului sau
cu fața sensibilă separată prin cablu flexibil de corpul traductorului.
Traductor magnetic de proximitate
Este format dintr-un contact întrerupător, de obicei releu Reed, plasat într-un braț al unei carcase în formă de U și dintr-un magnet permanent fixat în celălalt braț. Trecerea unui obiect magnetic printre brațele senzorului modifică liniile de forță ale magnetului, iar contactul releului își schimbă starea.
Traductorul magnetic de proximitate poate fi:
fără memorie, când releul comută doar sub acțiunea magnetului;
cu memorie, când revenirea în starea inițială se face sub influența unui câmp magnetic de sens contrar, prin rotirea magnetului cu 180°.
Traductor capacitiv de proximitate
Conține un condensator care face parte dintr-un circuit oscilant. Prezența unui material conductor sau dielectric cu permitivitate s> 1 are ca efect modificarea capacității de cuplaj și amorsarea oscilațiilor.
Caracteristicile constructive sunt asemănătoare cu ale traductorului inductiv de proximitate, zona de lucru activă fiind < 15 mm.
Funcționarea depinde de natura corpului controlat. La detecția materialelor conductoare, obiectul a cărui poziție este controlată formează cu fața sensibilă un condensator a cărui capacitate crește cu micșorarea distanței de la obiect la fața sensibilă. La detecția materialelor izolante, fața sensibilă reprezintă un condensator a cărui capacitate este cu atât mai mare cu cât permitivitatea dielectrică a obiectului controlat este mai mare. Pentru evitarea perturbațiilor, obiectele conductoare trebuie să fie legate la pământ.
Traductor optoelectronic de proximitate
Se bazează pe modificarea fluxului radiației optice între o sursă și un receptor, datorită prezenței obiectului controlat. Există două variante de bază:
traductor de proximitate tip barieră, în care sursa și receptorul sunt de o parte și de alta a obiectului;
traductor de proximitate reflector, în care fasciculul optic emis de sursă este transmis spre receptorul situat de aceeași parte cu sursa în raport cu obiectul controlat.
Ca surse emițătoare se folosesc diode electroluminescente în domeniul vizibil sau infraroșu, lămpi cu incandescență sau diode laser. Ca receptor se folosește un fotodetector ce poate fi: fotodiodă, fototranzistor, fotorezistor, fotodetector integrat, etc.
Adaptorul electronic conține un formator de impulsuri și un amplificator
Trebuie luate măsuri de precauție ca evitarea surselor luminoase puternice, evitarea mediilor umede pentru a nu provoca aburirea lentilelor, îndepărtarea obiectelor puternic reflectorizante.
Traductor integrat de proximitate
Există două variante și anume:
traductor integrat inductiv și
traductor integrat magnetic.
Traductorul integrat inductiv de proximitate este încapsulat, are 8 terminale și contine: un oscilator, un filtru, un comparator și un etaj de ieșire.
Traductorul integrat magnetic de proximitate are un senzor Hall care sesizează prezența câmpurilor magnetice de intensități reduse (> 50 mT) și produce tensiune de ieșire în gama 1 … 10 mV.
Capitolul III Schema Bloc a sistemului de măsurare a vitezei liniare
Schema bloc a sistemului de măsurare a vitezei liniare permite afisarea digitală a vitezei liniare a unui obiect ce se afla in miscare,si care interactioneaza cu senzori declansatori ai sistemului digital.
Microcontroler
Senzori infrarosu
Display
Fig 2.1 Schema Bloc a sistemului de măsurare a vitezei
Sistemul va fi format din:
microcontroler care are rol de interfață om mașină ,acesta va prelua și interpreta datele furnizate de senzorul optic și deasemenea vă oferii posibilitatea de a oferii abilitati optionale de reglare asistemului prin control manual
pentru afișarea vitezei liniare a obiectelor vizate se vă folosii un Display 16×2 caractere conexiunea cu microcontrolerul realizându-se prin protocol SPI (interfața periferică serială)
Senzorii infrarosu vor indelinii doua functii acela de a asigura interfata intre mediu si microntoler prin activare /dezactivare si asigurarea de semnale analogice corespunzatoare in momentul in care obiecte de orice fel patrund in campul de actiune rol de initiator al algoritmului de masurare a vitezei.
3.2 Arhitectura hardware
3.2.1 Placa de dezvoltare
Fig 2.2 Placa de dezvoltare
Specificații tehnice:
– memorie flash: 32kb – versiunea ATmega328
– memoria EEPROM: 1kb
– memoria SRAM: 2kb
clock speed : 16Mhz @16MIPS (16 milioane instructiuni/sec)
– voltaj de operare: 5V
– voltaj intrari RECOMANDAT: 7-12V
– voltaj alimentare LIMITA: 6-20V
– pini INPUT: 6
– pini OUTPUT/INPUT: 14
3.2.2Specificații tehnice ATMEGA328
ATmega328 este un microcontroler CMOS 8-biți mică putere bazat pe AVR.
Arhitectura pe care este bazat acest microcontroler este arhitectura de tip RISC. Nucleu combină un set bogat de instrucțiuni cu 32 de registre de uz general. Toți cei 32 de regiștrii sunt conectați la unitatea aritmetico – logică(UAL), care permite accesarea în același timp a doi regiștrii diferiți. Arhitectura rezultată este mai eficientă atingând o rată de transfer de până la 10 ori mai mare decât microcontrolere – lor CISC convenționale.
ATmega128 oferă următoarele caracteristici:
4KbytesEEPROM
4Kbytes SRAM
7 porturi I/O (6 de 8 biți și unul de 5 biți)
32 de regiștrii de uz general
4 timere (două pe 8 biți și două pe 16 biți)
două interfețe USART
Fig 2.3. Configurația pinilor ATMEGA328
3.3 Descriera pinilor
Port x (Px0 – Px7) – este un port I/O pe 8 biți cu rezistență internă pe fiecare bit. Ieșirile porturilor sunt de tip tri – state.
Unde x poate fi: A,B,C,D,E.
Port F (PF0 – PF7) – portul F este folosit ca intrare analogică pentru convertorul analog – numeric. În cazul în care convertorul analog – numeric nu este folosit, portul poate fi utilizat și ca port bi – direcțional pe 8 biți.
Port G (PG0 – PG7) – portul G este un port mai mic decât celelalte 6 porturi având o dimensiune de doar 5 biți, în rest având toate caracteristicile celorlalte porturi strict digitale.
RESET – este activ 0 logic și se execută resetul fără a fi nevoie de un semnal de ceas, deci este un restet asincron.
AVCC – este un pin folosit pentru a furniza tensiune suplimentară portului F și convertorului analog – numeric. El trebuie conectat extern la Vcc chiar dacă nu este folosit ADC. În schimb dacă ADC – ul este folosit acest pin trebuie legat la VCC printr – un filtru ce trece jos.
AREF – este pinul de referință al convertorului analog – numeric.
PEN – este un pin ce activează modul de programare SPI și este intern pus în 1 logic. Prin ținerea acestui pin în 0 logic in timpul unui Power-on Reset, microcontrollerul va intra în modul SPI.
Fig 2.4. Schema bloc a arhitecturii AVR
Pentru a maximiza performanțele și paralelismul AVR a folosește erhitectura Harvard, cu memorii spearate și magistrale de adrese și de date. Instrucțiunile din memoria de program sunt executate cu un singur nivel pipline. În timp ce o instrucține este executată urmatoarea instrucține este preluată din memoria de program. În acest fel sunt executate instrucțiuni în fiecare ciclu de ceas.Memoria de program se gasește în memoria flash.
Regiștrii cu acces rapid sunt în număr de 32 având câte 8 biți fiecare cu acces într – un singur ciclu de ceas. Într – o operație tipică ALU doi operanzi sunt puși în registru, se execută operația și rezultatul este memorat in registru într – un singur ciclu de ceas.
Șase din cei 32 de regiștrii pot fi folosiți ca trei regiștrii de 16 biți, adresați indirect.
Unitatea aritmetico – logică realizează așa cum ii spune numele operații aritmetice și logice între conținutul a doi regiștrii sau între conținutul unui registru și o constantă. După o operație aritmetică registrul de stare este încărcat cu rezultatul operației.În programe există instrucțiuni de salt condiționat și necondiționat, capabil sa adreseze direct tot spațiul de memorie. Majoritatea instrucțiunilor AVR sunt formate dintr – un singur cuvânt pe 16 biți. Fiecare program de adresare a memoriei conține intrucțiuni de 16 sau 32 de biți.Spațiul memoriei de program flash este împărțit în două secțiuni, secțiunea programului de boot și secțiunea programului propriu – zis. Fiecare secțiune are biți de blocare pentru protecție la scriere si la scriere/citire. Instrucțiunea SPM care este scrisă în secțiunea programului propriu – zis trebuie să se regăsească și în secțiunea programului de boot.
În momentul în care este generată o întrerupere si o subrutină de tratare a acesteia valoarea registrului PC (Program counter) este salvat pe stivă. Stiva este alocată efectiv în memoria SRAM, iar dimensiunea stivei este limitată doar de marimea totală a memoriei SRAM și de gradul de utilizarea a acestuia. Toate programele trebuie să inițializeze registrul SP înaintea de apariția unei întreruperi. Registru SP ete accesibil la scriere / citire în spațiul adreselor I/O.
Datele din SRAM pot fi cu ușurință accesate prin unul din cele 5 moduri diferite suportate de arhitectura AVR.Spațiul de memorie din arhitectura AVR este liniar și regulat.Fiecare întrerupere are un vector separat de întreruperi în tabela vectorilor de întrerupere. Întreruperea are prioritate în concordanță cu poziția vectorului de întrerupere.Spațiul de memorie al adreselor I/O conține 64 de adrese ce pot fi accesate direct.
3.4 Display LCD 16×2 Serial
Fig 2.5 Display LCD 16×2 Serial
Ecranul LCD Serial permite afișarea de text utilizând doar un singur fir (pe lângă firul de alimentare și masă).
Dispozitivul se cuplează la Arduino prin trei fire : VCC și GND, cuplate respectiv la portul de 5 V și GND al Arduino, și un al treilea fir pentru semnalul util, fir care se cuplează pe portul TX al Arduino.
Mai departe, orice caracter este scris pe portul Serial al Arduino apare scris pe ecranul LCD (spre exemplu, caracterul "a" scris pe portul serial determină apariția literei "a" pe ecranul LCD).
Acest lucru se întâmplă pentru aproape toate caracterele, cu excepția caracterului cu codul ASCII 254 și caracterului cu codul ASCII 124 care sunt rezervate ca și caractere de control.
Cele două caractere de control sunt folosite pentru a transmite comenzi speciale ecranului LCD (spre exemplu comenzi referitoare la reglarea luminozității).
Specificații:
Număr de caractere : 16×2
Culoare caractere : Negru
Culoare fundal : Verde
Baud rateș : 2400, 4800, 9600 (default), 14400, 19200 și 38400
Viteza : 10MHz
Bufer : 80 caractere
Boot-up display poate fi activat din firmware
Suporta splash screen
3.5. Senzori infrarosii distanta Sharp GP2Y0D810
Fig 2.6Senzor Sharp
Acest mic senzor de distanță digitală detectează obiecte între 2 și 10 cm (0,8 "și 4"), departe. Cu timpul de răspuns rapid, de dimensiuni mici, și trage curent scăzut, acest senzor este o alegere bună pentru detectarea obiectelor non-contact, și a noastră de transport PCB compact îl face ușor să se integreze în proiectul dumneavoastră
3.5.1. Prezentare generală
GP2Y0D805 și GP2Y0D810 sunt senzori sunt cei mai mici si mai rapizi senzori de tip infrarosu oferiti de Sharp pentru detectarea distanței, acești senzori includ toate componentele externe necesare pentru a a fi utilizati in diverse apliocatii. Cu o rată de eșantionare de aproape 400 Hz și o distanta de detectare a 5 cm (GP2Y0D805) sau 10 cm (GP2Y0D810), acest senzor oferă o alternativă atractivă la gama mai scurt . De ieșire, Vo, este condus scăzut atunci când senzorul detectează un obiect; în caz contrar, voltajul de ieșire este mare.
GP2Y0D805Z0F detectează obiecte între 0,5 cm si 5 cm distanta de fata senzorului, iar GP2Y0D810Z0F detectează obiecte între 2 cm si 10.25 cm departe. Există câțiva milimetri de histerezis în jurul pragului maxim gama si nu histerezis la pragul interval minim. Rețineți că acești senzori vă va spune numai dacă există un obiect în intervalul de detecție de-a lungul liniilor lor de vedere; ei nu vă va spune cât de departe obiectul este.
Fig 2.7.Caracteristici senzor infrarosu Sharp
Unele aplicații include, de exemplu:
Sensor aplicatii tip bariera
sensor non contact de detectare
un contor sau timer de obiecte, ce se deplaseaza
3.5.2. Caracteristici tehnice
Tensiunea de operare: 2.7 V la 6,2 V
Consumul mediu de curent: 5 mA (tipic)
Domeniu de măsurare la distanță pentru GP2Y0D805Z0F: 0,5 cm la 5 cm (0,2 "până la 2")
Domeniu de măsurare la distanță pentru GP2Y0D810Z0F: 2 cm la 10 cm (0,8 "până la 4")
Tipul de ieșire: tensiune
Echilibru perioadă de actualizare de stat: 2.56 ms tipic (3.77 ms max)
Dimensiune modul: 21.6 x 8.9 x 10.4 mm (0.85 "x 0.35" x 0.41 ")
Geutate fără pini 1,3 g (0.05 oz)
Fig 2.8. Schema electrica sensor infrarosu
Capitolul IV- Schema electrică a sistemului de măsurare a vitezei
4.1 Componentele schemei electrice
Placă de dezvoltare
LCD serial
Senzori Sharp GP2Y0D810
Fig3.1. Schema electrică sistem de măsurare a vitezei liniare
4.1.1.Placă de dezvoltare
Bazată pe un microcontroler Atmega328 are rol de prelucare și afișare date precum și de a asigura prin intermediul senzorilor interfata cu mediul inconjurator.
Intrarile digitale 6 si 7 reprezinta interfata dintre senzori si microcontroler,s-au ales intrari digitale pentru a asigura o viteza cat mai mare de reactie a sistemului,senzorii au fost alesi in acelas mod pentru a asigura un timp de reactie cat mai mic ,in acest fel se pot masura viteze liniare cat mai mari.
Ieșirea 5V asigura tensiunea de alimentare pentru componentele integrate logice,senzori precum și tensiune pentru butoane sau sisteme de afișare.
Pinul TX asigura transferul de date prin protocol serial(SPI) a datelor către LCD
Pinul RX asigura posibilitatea de primire a datelor prin protocol serial
Figura 3.2. Placa de dezvoltare Atmega 328
Figura 3.2.1. Placa de dezvoltare vedere de sus
X1:
Conector serial DB-9 ce utilizează standardul RS-232 ,asigură comunicația cu computerul său cu alte componente,comunicația se face utilizând un cablu serial și punând un jumper pe pozițiile 2-3 de la JP0
DC1:
Jack de 2.1 mm folosit pentru alimentarea de la o sursă extrerna,centru este conectat la plusul bateriei de alimentare.Alimentarea de la o baterie externă este posibilă cu ajutorul regulatorului de tensiune 7805 capabil să asigure o tensiune stabilizată de 5 V primind o tensiune între 7 și 20 V.Din testele practice o tensiune de 9 V este cea mai recomandată pentru alimentarea externă a plăcii de dezvoltare.
ICSP:
Conector 2 x 3 pini utilizat pentru a programa microcontrolerul cu bootloaderul necesar conexiunii între placă de dezvoltare și mediul de programare.
JP0:
Conector cu 3 pini :când sunt conectați pini 2 și 3 este activată conexiunea serial între placă și computer ,aceasta este cea mai folosit mod pentru acest conector.Când sunt conectați pinii 1 și 2 este dezactivată conexiunea serial iar pinii 0 RX și 1 TX pot fi folosiți ca și pini digitali,aceast tip de conexiune este utilă atunci când sunt necesari un număr mai mare de pini digitali.
JP4:
Conector cu 2 pini:când există conexiune între cei doi pini este active autoreset-ul ,acesta lucru este benefic atunci cnad se încearcă încărcarea unui program pe placa de dezvoltare,face posibilă încărcarea programului fără resetarea plăcii în prealabil.Pentru funcționare corectă este recomandată setarea portului serial al computerului la o viteză de 19200 bps.Dacă nu există conexiune între 1 și 2 functia autoreset este dezactivată iar pentru încărcarea unui program este necesară resetarea manuală a microcontrolerului apăsând butonul tactil S1.
S1:
Buton tactil asigura resetarea microcontrolerului după încărcarea unui program sau pregătirea acestuia pentru încărcarea unui program.
Led-uri de stare
Power Led
Este activ atunci cand microcontrolerul este alimentat de la o sursa externa de 9 V.
TX Led
Funcționează intermitent atunci când se transmit date pe portul serial de la microcontroller la alt dispozitiv
RX Led
Funcționează intermitent atunci când se primesc date pe portul serial de la alt dispozitiv
L Led
Funcționează intermitent atunci când se uploadeaza un program pe placa de dezvoltare
Pin RST :Resetează placă de dezvoltare atunci când este conectat la GND sau se poate atașa un dispozitiv extern care să facă această funcție .
+9V
Atunci când micrcontrolerul este alimentat de la o sursă externă prin intervediul unei baterii sau a unei surse externe acest pin va furniza o tensiune de ieșire de 9V.În cazul în care microcntrolerul nu este alimentat acest pin se poate utiliza pentru a alimenta micorcontrolerul de la o sursă stabilizată de 9V.
+5V
Atunci când micrcontrolerul este alimentat de la o sursă externă prin intervediul unei baterii sau a unei surse externe acest pin va furniza o tensiune de ieșire de 5V.Curentul furnizat depinde de regulatorul de tensiune ,acest lucru este valabil doar pentru pinul 5V ,ceilalți pini analogici și digitali furnizează un current de maxim 40mA.
0V
Sunt 3 pini ce asigură masă pentru senzori,butoane sau alte dispozitive care sunt legate la microcontroler
.
Se va realiza schema electrică a placii de dezvoltare realizată in programul Eagle.
Acest program dispune de toate funcționalitățile necesare unui inginer proiectant pentru desenarea schemei și realizarea unui circuit.
Programul ofera de asemenea o bună descriere a formatului de date în care ar trebui să scrieți un program pentru a importa date în EAGLE.
Figura 3.2.2. Schema electrică placa de dezvoltare realizată in programul Eagle
4.1.2. LCD serial
Asigură afișarea datelor primite de la placă de dezvoltare .Este alimentat la o tensiune de 5V conexiunea cu microcontrolerul este realizată prin intermediul portului TX.Afișarea și ștergerea datelor se face utilizând funcții predefinite incluse în librării puse la dispoziție de către producător.
.
Fig 3.3. LCD Serial
Fig 3.3.1. Schema electrica LCD Serial
4.1.3.Senzori proximitate Sharp
Senzorii sharp de proximitatea functioneaza asemenea unor intrerupatoare sunt normal deschise ,in momentul in care un obiect este in raza de actiune a lor acestia trimit un semnal analogi (tensiune) care este interpretata in mod digital de microcontroler ca o crestere de front(din 0 se trece in 1) .Ele sunt conectate la micorcontroler prin intermediul pinilor digitali 6 și 7 ,
Ulterior în urma testelor se vă stabilii exact modul în care starea senzorilor va fi citită de microcontroller,fie utilizând pini analogici fie utilizând pini digitali,posibil cea de-a doua varianta să fie mai avantajoasă datorită timpului rapid de răspuns ,pini analogici fiind legați la un convertor ADC care ar determina un timp mai mare pentru citirea starii butonului datorita conversiei analog la digital .
4.2.Funcționarea Schemei electrice
Ieșirea 5 V furnizează 5 V senzorilor de proximitate cat si display-ului LCD;
Pinul GND asigura inchiderea circuitului de alimentare a senzorilor cat si a LCD-ului ;
Microcontrolerul este alimentat de la sursa externa de tensiune a carei valoare poate sa fie cuprinsa intre 9 si 12 volti,tensiunea de functionare a integratului este de 5 volti ,iar aceasta tensiune de lucru obtinuta cu ajutorul unui stablizator de tensiune tip 7805;
Pentru citirea senzorilor de proximitate s-au utilizat doua intrari digitale ale integratului pentru a elimna timpul necesar conversiei semnalului analogic in semnal semnal digital,in acest mod indiferent de valoarea tensiunii produse de senzorul de proximitate se va lua in calcul doar modificarile de front(trecere din tensiune 0 in tensiune >0) ,aceste modificari vor fi interpretate ca 0 sau 1 de catre microcontroler;
Modificarile de stare ale senzorilor infrarosu 1 si 2 sunt interpretate prin intermediul pinilor digitali 6 si 7,senzorii 1 si 2 au rolul de a detecta prezenta obiectului si de a activa contorizarea timpului necesar parcurgerii distantei dintre cei doi;
Senzorul 1 activeaza algoritmul de contorizare a timpului si reprezinta elementul de resetare si declansare a sistemului,in momentul in care acest senzor se activeaza se activeaza o functie care masoare tipul sccurs pana la activarea senzorului 2,activarea senzorului 1 este confirmata de aprinderea ledului de stare rosu care confirma aflarea unui obiect in raza de actiune a acestuia;
Se continua contorizarea timpului cat timp nu este activat senzorului 2;
Cand senzorul 2 este activat se opreste contorizarea iar rezultatele obtinute sunt prelucrate pentru a fi afisate,timpul masurat este salvat intr-o variabila de tip numar,insa pentru afisarea pe un dsplay LCD de tip serial,aceasta valoare trebuie transformata in sir de caractere.;activarea senzorului 2 este confirmata de aprinderea ledului de stare rosu care confirma aflarea unui obiect in raza de actiune a acestuia;
Se transmite prin intermediul portului TX rezultatele obtinute către LCD pentru a fi afișate,rezultatele sunt trmise caracter cu caracter,prin intermediul programului se afiseaza pe LCD incepand cu o pozitie predefinita caracterele primite prin intermediul unui interfete de tip SPI(Serial Peripheral Interface)care este o interfața sincronă standard de mare viteză, ce operează în mod full duplex;
Operația are loc ciclic ,incepand cu activarea senzorului 1 si terminand cu activarea senzorului 2 urmata de afisarea rezultatelor obtinute;
Distanta intre cei doi senzori se poate ajusta iar prin modificarea algoritmului de afisare se poate modifica intervalul de distanta masurat;
Pentru a reseta sistemul se utilizeaza butonul reset al microcontrolerului;
Microcontrelerul poate fi alimentat prin intermediul unei surse externe de tensiune si se asigura in acest mod un grad ridicat de mobilitate ,sau se poate utiliza o sursa de tensiune stabilizata;
Capitolul V – Proiectare software a sistemului de măsurare a vitezei liniare
Fig 3.5.Schema bloc a sistemului de masurare a vitezei
Distanta d
Sistemul isi propune sa ofere o solutie simpla pentru masurarea vitezei liniare a unui obiect prin masurarea timpului necesar pentru strabaterea unei distante d fixate de catre utilizator,aceasta distant este determinate de distant stabilita intre cei doi senzori – care pot fi senzori optici/de presiune/de prezenta.
In momerntul in care obiectul trece si activeaza senzorul 1 se activeaza al\goritmul care va contoriza timpul pan ace senzorul 2 va fi acvtiva.t
Formula de calcul a vitezei va fi:
Algorimul de contorizare a timpului cat si de afisare a rezultatului va fi gestionat de catre un micricontroler.Se va implementa Solutia proipusa folosind doua butoane de tip push button care vor tine loc de senzori de presiune pentru activare/dezactoivarea algortmului de controrizare precum si de afisare a rezultatului obtinut.
Rezultate obtinute se vor afisa itial pe consola Serial Monitor a programatorului microcontrolului ,resusind in acest fel diagnosticarea posibilelor erori sau greseli de programare,ulterior se va atasa sistemului un LCD cu conexiune serial precum si doi senzori optici
5.2.Proiectare și program masurare viteza liniara
Fig3.10.Organigramă program masurare viteza liniara
Functionarea algoritmului descris:
Se citesc starile intrarilor digitale alocate senzorilor de proximitate cu infrarosu;
In cazul in care senzorul 1 este activ se incepe contorizarea timpului;
Contorizarea timpului se opreste in momentul in care senzorul 2 este activat,moment in care datele sunt prelucrate si afisate corespunztor;
Sistemul de masura functioneaza ciclic,senzorul 1 si 2 asigurand un sistem capabil sa masoarea viteza intr-o bucla infinita;
5.2.1.Program proiectat masurare viteza liniara cu afisare pe monitor serial
unsigned long start, terminat, timp_scurs;
void setup()
{
Serial.begin(9600);
pinMode(6, INPUT); // senzor start
pinMode(7, INPUT); // senzor stop
Serial.println("Apasa 1 pentru Start/reset, 2 pentru afisare rezultat");
}
void displayResult()
{
float h, m, s, ms;
unsigned long valoare_tampon;
timp_scurs = terminat – start;
h = int(timp_scurs / 3600000); //Timp in ore
valoare_tampon = timp_scurs % 3600000;
m = int(valoare_tampon / 60000); //Timp in minute
valoare_tampon = valoare_tampon % 60000;
s = int(valoare_tampon / 1000); //Timp in secunde
ms = 0.10/s; //Calculeaza timp necesar pentru parcurgerea celor 10 cm ce reprezinta distanta intre senzori
Serial.print("Rezultat final: ");
Serial.print(s, 0);
Serial.print(" Secunde ");
Serial.print(ms,DEC);
Serial.println(" m/s");
Serial.println();
}
void loop()
{
if (digitalRead(6) == LOW)
{
start = millis(); //Start contorizare,functie ce nu este afectata de delayul pentru dearazitare
delay(200); //valoare deparazitare
Serial.println("Se asteapta activvarea senzorului 2…"); //Se asteapta activarea senzorului 2 pentru contorizare timp parcurgere traseu
}
if (digitalRead(7) == LOW)
{
terminat = millis(); //Salveaza timpul scurs pana la activarea senzorului 2
delay(200); //valoare deparazitare
displayResult(); //Afiseaza rezultat
}
delay(200);//valoare deparazitare
}
Fig 3.11 Rezultate obtinute afisate pe monitorul serial pe PC
5.2.2.Program proiectat masurare viteza liniara cu afisare pe LCD serial
#include <SoftwareSerial.h>// librarie pentru LCD serial utilizata pentru a putea realize con exiunea microcontroller si LCD serial intr-un mod eficient
SoftwareSerial mySerial(3,2); // atribuire pini RX(RECIVE) si TX(TRASNSMIT)
unsigned long start, terminat, timp_scurs; //Declarare variabile necesare algoritm calcul viteza liniara
void setup()
{
mySerial.begin(9600);
pinMode(6, INPUT);// declarare intrare sensor 1 care are rol de sensor declansator al algoritmului de calcul al vitezei
pinMode(7, INPUT); // // declarare intrare sensor 2care are rol de sensor de stop al algoritmului de calcul al vitezei
mySerial.write(254); // Seteaza cursorul pe prima linie a Afisajului LCD
mySerial.write(128);// Seteaza cursorul pe a doua linie a Afisajului LCD
mySerial.write("Activare Senzor 1!");// Afiseaza mesaj
mySerial.write(" ");
}
void displayResult()
{
float metri_pe_secunda;
int timp_secunde;
char timp_secundestring[10], metri_pe_secundastring[10];
float h, m, s, ms;
unsigned long valoare_tampon;
timp_scurs = terminat – start;
h = int(timp_scurs / 3600000); //Timp in ore
valoare_tampon = timp_scurs % 3600000;
m = int(valoare_tampon / 60000); //Timp in minute
valoare_tampon = valoare_tampon % 60000;
s = int(valoare_tampon / 1000); //Timp in secunde
ms = 0.10/s; //Calculeaza timp necesar pentru parcurgerea celor 10 cm ce reprezinta distanta intre senzori
timp_secunde=s;
metri_pe_secunda=ms;
char buffer[16];
dtostrf(metri_pe_secunda,5,5,buffer);//Transforma in sir de caractere valoarea unui numar de tip float
sprintf(timp_secundestring,"%4d",metri_pe_secunda); // creeaza sir de caractere din valori numerice
sprintf(metri_pe_secundastring,"%4d",timp_secunde); // creeaza sir de caractere din valori numerice
mySerial.write(254); // Seteaza cursorul pe prima linie a Afisajului LCD
mySerial.write(128);// Seteaza cursorul pe a doua linie a Afisajului LCD
mySerial.write("Sec: "); //Afiseaza mesajul
mySerial.write("m/s: ");//Afiseaza mesajul
mySerial.write(254);
mySerial.write(134);
mySerial.write(metri_pe_secundastring); // Afiseaza valoarea METRI_PE_SECUNDA
mySerial.write(254);
mySerial.write(198);
mySerial.write(buffer);// Afiseaza valoarea Buffer
}
void loop()
{
if (digitalRead(6) == LOW)
{
start = millis(); //Start contorizare,functie ce nu este afectata de delayul pentru dearazitare
delay(200); //valoare deparazitare
mySerial.write(254);
mySerial.write(128);
mySerial.write("Asteapta Activare Senzor 2!");
mySerial.write(" ");
}
if (digitalRead(7) == LOW)
{
terminat = millis(); //Salveaza timpul scurs pana la activarea senzorului 2
delay(200); //valoare deparazitare
displayResult(); //Afiseaza rezultat
}
}
Capitolul VI Rezultate experiementale
In scopul testarii elementelor hardware alese pentru a dezvolta sistemul de masurare a vitezei liniare s-au realizat mai multe montaje prin care s-au analizat atat functionarea componentelor cat si a solutilor software gandite.
Astfel s-au realizat mai multe montaje pentru a testa:
Modul de utilizare a intrarilor digitale a microcontrolerului utilizand butoane;
Modul de utilizare si functionare a LCD-ului serial;
Modul de utilizare si functionarea senzorilor de proximitate tip infrarosii;
Pentru fiecare caz in parte s-a atasat atat schema electrica de montaj cat si solutia software gandita.Rezultatele obtinute au fost utilizate in obtinerea solutiei finale de masurare si de afisare a vitezei liniare.
6.1 Modul de utilizare a intrarilor digitale a microcontrolerului utilizand butoane
Fig 3.6.Schema electrica testare butoane
De fiecare data cand intrarea la care este conectat butonul cu revenire (devine din LOW ,HIGH) atunci si iesirea care este dependenta in algoritm de intrarea sus mentionata devine din LOW,HIGH si viceversa(structura repetitive are un delay pentru a elimina unele interferente care pot fi generate de factori externi).
Circuitul de test:
dioda luminicenta este atasata intre pinul 13 si GND al microcontrolului
Un buton cu revenire este conectat intre pinul 2 si +5V
Un resistor de 10k este atasat intre pinul 2 si GND
// declarare variabile ce nu se vor modifica pentru intrarile/iesirile utilizate
// atribuirea intrarilor/iesirilor conform cu schema hardware a microcontrolerului
const int pin_buton = 2; // intrarea alocata butonului
const int pin_led = 13; // iesirea alocata diodei luminiscente
// Variable care se vor modifica
int stare_led = HIGH; // starea initala a iesirii alocata diodei luminiscente
int stare_buton; // valoarea citita de pe intrarea utilizata
int stare_anterioara_buton = LOW; // valoarea citita anterioara de pe intrarea utilizata
//variabilele urmatoare sunt de tip long deoarece valorire lor vor depasi domeniul intreg
long timp_deparazitare_anterior = 0; // ultima oara cand pinul output a fost activat
long timp_deparazitare = 50; // timp pentru deparazitare intrari/iesiri
void setup() {
pinMode(pin_buton, INPUT);
pinMode(pin_led, OUTPUT);
Serial.begin(9600);
// Seteaza valoare initiala LED
digitalWrite(pin_led, stare_led);
}
void loop() {
//salveaza valoare citita a intrarii butonului in constanta predefinita
int valoare_citita = digitalRead(pin_buton);
// verifica daca butonul a foist apasat recent
// verificare trecere din LOW in HIGH a intrarii butonului
// Daca starea butonului este modificata atunci
if (valoare_citita != stare_anterioara_buton) {
// resetarea timpului de deparazitare
timp_deparazitare_anterior = millis();
}
if ((millis() – timp_deparazitare_anterior) > timp_deparazitare) {
// verifica daca starea este mai mare decat timpul de deparazitare
// daca starea este mai mare atunci constanta care retine starea butonului seschimba
// daca starea butonului s-a modificat atunci
if (valoare_citita != stare_buton) {
stare_buton = valoare_citita;
// Aprinde diode luminiscenta doar atunci cand butonul a fost apasat
if (stare_buton == HIGH) {
stare_led = !stare_led;
}
if (stare_buton == HIGH) {
//Afiseaza starea butonului
Serial.println("Buton Activ");
}
else
{
//Afiseaza starea butonului
Serial.println("Buton Inactiv");
}
}
}
// Seteaaza starea diodei luminiscente
digitalWrite(pin_led, stare_led);
// Salveaza starea actuala a butonului
stare_anterioara_buton = valoare_citita;
}
Fig 3.6Rezultat testare model implermentat cu butoane push
6.2. Modul de utilizare si functionare a LCD-ului serial
Pentru testarea LCD-ului Serial am folosit o conexiune de tip SoftwareSerial , conectată pe pinul digital 2.
Mai jos voi detalia fiecare dintre funcțiile utilizate în program.
Nivel Iluminare(int nivel)
setează nivelul de iluminare al ecranului LCD; parametrul “nivel” poate avea orice valoare între 0 (complet stins) și 29 (complet luminos)
selecteazaLiniaZero()
mută cursorul la începutul primei linii a ecranului LCD
selecteazaLiniaUnu()
mută cursorul la începutul celei de-a două linii a ecranului LCD
stergeLCD()
șterge întreg conținutul afișat pe ecranul LCD
mutaCursorDreapta()
mută cursorul cu un caracter spre dreapta
mutaCursorStanga()
mută cursorul cu un caracter spre stânga
mutaCursorLaPozitia(int linie, int coloana)
mută cursorul la poziția cerută; valoarea pentru parametrul “linie” poate fi 0 sau 1, iar valoarea pentru parametrul “coloana” poate fi o valoare între 0 și 15 inclusiv
cursorTipLinieVizibil()
pe ecran este afișat un cursor tip de tip linie de subliniere (după ultimul caracter)
cursorTipBaraVizibil()
pe ecran este afișat un cursor tip de tip bară plină (după ultimul caracter)
cursorInvizibil()
pe ecran nu este afișat nici un tip de cursor (rămâne doar textul)
scrollTextStanga()
întreg textul afișat pe ecran este mișcat cu un caracter spre stânga
scrollTextDreapta()
întreg textul afișat pe ecran este mișcat cu un caracter spre dreapta
#include "SoftwareSerial.h"
#define TX_PIN 2
SoftwareSerial SerialLCD = SoftwareSerial(0, TX_PIN);
void setup() {
pinMode(TX_PIN, OUTPUT);
SerialLCD.begin(9600);
delay (1000);
stergeLCD();
nivelIluminare(29);
mutaCursorLaPozitia(0, 0);
SerialLCD.print("Cat mai este pana");
cursorInvizibil();
mutaCursorLaPozitia(1, 0);
SerialLCD.print("La weekend");
cursorInvizibil();
}
void loop() {
}
//valoare nivel intre 0 si 29 inclusiv
void nivelIluminare(int nivel) {
SerialLCD.print(124, BYTE);
SerialLCD.print(128 + nivel, BYTE);
delay(100);
}
void selecteazaLiniaUnu(){
SerialLCD.print(254, BYTE);
SerialLCD.print(128, BYTE);
delay(100);
}
void selecteazaLiniaDoi(){
SerialLCD.print(254, BYTE);
SerialLCD.print(192, BYTE);
delay(100);
}
void stergeLCD(){
SerialLCD.print(254, BYTE);
SerialLCD.print(1, BYTE);
delay(100);
}
void mutaCursorDreapta(){
SerialLCD.print(254, BYTE);
SerialLCD.print(0x14, BYTE);
}
void mutaCursorStanga(){
SerialLCD.print(254, BYTE);
SerialLCD.print(0x10, BYTE);
}
//linie 0 sau 1, iar coloana intre 0 si 16
void mutaCursorLaPozitia(int linie, int coloana){
SerialLCD.print(254, BYTE);
if (linie == 0) {
SerialLCD.print(128 + coloana, BYTE);
} else {
SerialLCD.print(128 + 64 + coloana, BYTE);
}
}
void cursorTipLinieVizibil() {
SerialLCD.print(254, BYTE);
SerialLCD.print(0x0E, BYTE);
delay(100);
}
void cursorTipBaraVizibil() {
SerialLCD.print(254, BYTE);
SerialLCD.print(0x0D, BYTE);
delay(100);
}
void cursorInvizibil() {
SerialLCD.print(254, BYTE);
SerialLCD.print(0x0C, BYTE);
delay(100);
}
void scrollTextDreapta() {
SerialLCD.print(254, BYTE);
SerialLCD.print(0x1C, BYTE);
delay(100);
}
void scrollTextStanga() {
SerialLCD.print(254, BYTE);
SerialLCD.print(0x18, BYTE);
delay(100);
}
Fig 3.7 Rezultat testare LCD serial
6.3. Modul de utilizare si functionarea senzorilor de proximitate tip infrarosii;
Fig 3.8 Schema bloc si schem,a electrica testare Senzori infrarosu
Program test sensor infrarosu
void setup() {
Serial.begin(9600);
pinMode(7, INPUT);
}
void loop() {
int valoareSenzor10cm = digitalRead(7); //Citeste valoare sensor infrarosu
Serial.print("Senzor 10cm: ");// Afiseaza mesajul
Serial.print(valoareSenzor10cm, DEC); //Afiseaza valoare citita sensor infrarosu
}
Fig 3.9 Rezultate obtinute testare senzori proximitate infrarosu
6.4. Testarea sistemului proiectat si rezultatele obtinute
Sistemul functioneazas in felul urmator la alimentarea plăcii de dezvoltare se afișează automat per ecranul LCD se asteaptă activarea senzorului 1 ,în momentul în care în fata senzorului de proximitate 1 se pune un obiect(raza de actiune a senzorului este de între 2 si 10 cm)se activează algoritmul de contorizare a timpului și se afisează mesajul, se asteapta activarea senzorului 2.
Fig 3.12 Mesajul afisat la pornirea sistemului de afisare
Fig 3.13 Mesajul afisat dupa activarea senzorului 1
Fig 3.13 Mesajul afisat dupa activarea senzorului 2
Sistemul afisează timpul scurs de la activarea senzorului de proximitate 1 până la activarea senzorului de proximitate 2,precum si viteza în m/s parcursă de obiectul în deplasare.Acest lucru este pozibil determinând raportul între dispanta parcursă în unitatea de timp contorizate, senzorii fiind plasați la o distanță predefinită.
Fig 3.14. Mesajul afisat pentru un timp mai mic decat o secunda
In momentul in care timpul necesar parcurgerii distantei dintre cei doi senzori este mai mică decat 1 rezultatul nu mai poate fi afisat se va incerca prin imbunatatirea a softului sa se elimine aceasta problema intampinata dupa testarea experimental a sistemului.
Pentru remedierea acestei probleme s-a schimbat tipul variabilei tampon in care se salva timpul scurs de la activarea senzorului 1 pana la activarea senzorului 2,din variabila de tip integer INT in variabila de tip FLOAT in acest mod in variabila timp_secunde se pot salva si rezultate numerice <1 pasul urmator a fost transformarea rezultatului obtinut in sir de caractere utilizand urmatoarea functie:
dtostrf(timp_secunde,5,5,buffer2);//Transforma in sir de caractere valoarea unui numar de tip float
valoarea numerica este transformata in sir de caractere si salvata in variabila buffer2 in acest mod se pot afisa valori numerice cu zecimale pe displayul serial LCD.
In umra modificarii se pot afisa valori ale vitezei cat si ale timpului mai mici decat 1 secunda.
Capitolul VII Concluzii
Obiective legate de tema
Utilizarea unei configurații hardware diferită față de alte module ce au la bază această temă;
Alegerea echipamentului hardware necesar astfel încat să se poată realiza obiectivul lucrării;
Ansamblarea corectă a pieselor electrice în vederea obtinerii plăcii de dezvoltare Arduino;
Realizarea schemelor bloc și a schemelor electrice corespunzătoare, ce sustin realizarea probei practice;
Realizarea si implementarea programelor de verificare a componentelor machete;
Realizarea și implementarea programului final;
Testarea programului final ce are ca rezultat obtinerea rezultatelor propuse;
Realizarea montajului practic prin care s-a demonstrat funcționarea sistemul;
După realizarea montajului practic și în urma testelor efectuatate s-a determinat că sistemul de măsurare a vitezei liniare utilizând elemente digitale funcționează conform parametriilor impuși:
-viteza liniara este măsurată iar modificarea acestui parametru în timpul funcționarii este vizibilă și înregistrată pe displayul LCD
În urma comparatiiei cu un sistem real s-a ajuns la concluzia că montajul practic realizat se încadrează în limite de toleranță față de valoarea reală de 0,2-0,5%
S-a determinat că sistemul ar putea avea aplicabilitate în sisteme de reglare și afișare a vitezei liniare în vederea asigurării unui sistem de masurare a vitezei pentru un circuit de curse,un circuit pentru atletism sau orcie tip de competitie care presupune departajare prin viteza ce poate fi strabatuta intr-o unitate de timp data. Aria de utilizare a sistemului este variată.
Se pot aduce unele îmbunătățiri ale montajului practic
-utilizarea unui ecran LCD mai mare și eventual a unui ecran cu touch;
-memorarea datelor pe o perioadă anume predefinita pentru veriifcari ulterioare sau generare a unui raport;
-Generarea unor caracteristici ale vitezei liniare în funcție de tipul de senzorii utilizari si de reglarea timpului de reactie , sau al altor parametrii;
-utilizarea senzorului în sisteme de diagnoză care sa masoare viteza liniarasi sa compare valorile obtinute cu cele aless sistemelor deja instalate pe autovehiculul in cauza
-utilizarea unui ansamblu de senzori pentru monitorizarea mai multor portinuni ale unui circuit sau al altui ansamblu
Bibliografie
1) Al Fransua, R. Magureanu – Masini si actionari electrice. Elemente de executie, Editura
Tehnica, Bucuresti, 1986 ;
2) A. Câmpeanu – Masini electrice, Editura Scrisul Românesc, Craiova, 1977 ;
3)Miholca C. – Senzori si traductoare, Editura Fundatiei Universitare, “Dunarea de Jos”, Galati,2004
4) E.Creanga – Semnale, circuite și sisteme- Editura Academică, Galați,2001;
5) Dolga Valer-Senzori și traductoare, Editura Eurobit, Timișoara,1999;
6) Brandusi Pantelimon, Constantin Iliescu,- Măsurarea electrică a mărimilor neelectrice, Universitatea Politehnică ,București 1997;
7 )Nicolae Marius Barlea-Fizica senzorilor-EdituraAlbastra, Cluj 2000;
8)Lucian Ciobanu-Senzori și traductoare
9) Gabriel Ionescu – "Traductoare pentru automatizări industriale" – Editura Tehnică 1996.
10) Valentin Sgarciu – "Circuite, componente și sisteme pentru automatizări" – Editura Politehnică 1995
11)Valerica Cimpoca,Aparatura optoelectronică, Curs
12)Vasile M. Catunenu, Tehnologie electronică, Editura Didactică și pedagogică,București 1981
13)Elemente de proiectare a sistemelor flexibile de fabricație, Editura BIT,Iași 1997.
14) Bichir, I. N., Mașini electrice, București, Editura ICPE, 1995.
15) Dordea, T.: Masini electrice. Bucuresti, Editura Didactica si Pedagogica, 1977
Bibliografie
1) Al Fransua, R. Magureanu – Masini si actionari electrice. Elemente de executie, Editura
Tehnica, Bucuresti, 1986 ;
2) A. Câmpeanu – Masini electrice, Editura Scrisul Românesc, Craiova, 1977 ;
3)Miholca C. – Senzori si traductoare, Editura Fundatiei Universitare, “Dunarea de Jos”, Galati,2004
4) E.Creanga – Semnale, circuite și sisteme- Editura Academică, Galați,2001;
5) Dolga Valer-Senzori și traductoare, Editura Eurobit, Timișoara,1999;
6) Brandusi Pantelimon, Constantin Iliescu,- Măsurarea electrică a mărimilor neelectrice, Universitatea Politehnică ,București 1997;
7 )Nicolae Marius Barlea-Fizica senzorilor-EdituraAlbastra, Cluj 2000;
8)Lucian Ciobanu-Senzori și traductoare
9) Gabriel Ionescu – "Traductoare pentru automatizări industriale" – Editura Tehnică 1996.
10) Valentin Sgarciu – "Circuite, componente și sisteme pentru automatizări" – Editura Politehnică 1995
11)Valerica Cimpoca,Aparatura optoelectronică, Curs
12)Vasile M. Catunenu, Tehnologie electronică, Editura Didactică și pedagogică,București 1981
13)Elemente de proiectare a sistemelor flexibile de fabricație, Editura BIT,Iași 1997.
14) Bichir, I. N., Mașini electrice, București, Editura ICPE, 1995.
15) Dordea, T.: Masini electrice. Bucuresti, Editura Didactica si Pedagogica, 1977
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Traductoare Pentru Deplasari Si Distante Liniare Mari (ID: 163994)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
