Arduino, Senzori Si Motoare Dc

CUPRINS:

Intoducere

Capitolul 1 Dispozitive si circuite electronice

Capitolul 2. Microcontrolere

Capitolul 3 Arduino, senzori si motoare DC

Capitolul 4 Schema si descrierea lucrarii practice

Capitolul 1. Dispozitive si circuite electronice

Dispozitivele electronice sunt componente de circuit a căror funcționare se bazează pe controlul purtătorilor de sarcină in corpul solid, in gaze respectiv in vid. Aceste dispozitive se numesc electronice datorită mecanismului de construcție electrică ce se realizează prin electroni.

Rațiunea de a fi a circuitelor electronice este legată de faptul că ele realizează anumite funcții specifice cum ar fi amplificarea sau generarea de oscilații sau stabilizarea tensiunii de alimentare, modularea, demodularea, etc.

Figura 1.1 Dispozitiv electronic cu două borne

Având relația (1), caracteristica statică care o reprezintă este model pentru un dispozitiv electronic.

În cazul unor relații de forma (2) comportarea dispozitivului este reprezentată de schemele echivalente.

În cele mai multe situații este suficientă caracteristica dispozitivului prin caracteristica statică.

(3)

Figura 1.2 Sensul curenților și tensiunilor printr-un dispozitiv electronic cu trei borne

1.1. Proprietăți ale dispozitivelor electronice

a. Dispozitivele electronice sunt în general elemente neliniare.

b. Dispozitivele electronice au un caracter parametric, ceea ce înseamnă că un parametru esențial al dispozitivului electronic poate fi controlat pe cale electrică.

c. Unele dispozitive electronice au un caracter activ, ceea ce înseamnă că ele sunt capabile să amplifice sau să genereze semnale variabile în timp pe seama unui consum de la o sursă de tensiune continuă.

1.5. Joncțiunea p-n

Joncțiunea p-n reprezintă o structură fizică realizată într-un monocristal care are doua regiuni vecine dopate cu impurități donore respectiv acceptoare și la care concentrația de impurități se modifică pe o distanță suficient de mică.

Figura 1.10 Joncțiune p – n

1.5.1 Joncțiunea p-n polarizată direct

Figura 1.11 Curenții de purtători prin joncțiune polarizată direct

Prezența tensiunii de polarizare directă determină apariția unui câmp de sens contrar câmpului electric generat de sarcina spațială din regiunea de trecere. Prezența câmpului determinat de tensiunea aplicată la borne conduce la o creștere însemnată a curenților de difuzie și la o scădere cu efect neglijabil a curenților de purtători minoritari. În consecință, printr-o joncțiune p-n polarizată direct circulă un curent de valoare însemnată.

Figura 1.12 Regiunile purtătorilor în prezența polarizării directe

Prezența tensiunii de polarizare directă determină apariția fenomenului de injecție de purtători minoritari de sarcină și deci apariția unei sarcini stocate. Mărimea sarcinii stocate depinde de nivelul tensiunii de polarizare directă.

1.5.2. Joncțiunea p-n polarizată invers

Figura 1.14 Curenții de purtători prin joncțiune polarizată invers

În acest caz curentul prin joncțiune este neglijabil, motiv pentru care joncțiunea este blocată. Prezența tensiunii de polarizare inversă determină extinderea regiunii de sarcină spațială in detrimentul regiunii neutre.

Figura 1.13 Regiunile purtătorilor în prezența polarizării inverse

1.6. Modele echivalente pentru dioda semiconductoare

O diodă semiconductoare conține o joncțiune semiconductoare p-n, două contacte ohmice pentru legătura cu un circuit extern și o capsulă care să asigure protecția mecanică a ansamblului joncțiune-contacte și în același timp posibilitatea evacuării spre mediul ambiant a energiei termice dezvoltate la nivelul joncțiunii.

Figura 1.15 Reprezentarea unei diode

Există două tipuri de modele:

1. modelul de semnal mare (static respectiv dinamic)

2. model de semnal mic (static, de frecvențe joase, respectiv dinamic, de frecvențe înalte).

1.6.1 Dioda redresoare

Dioda redresoare se utilizează pentru redresarea curenților alternativi de relativ joasă frecvență. La această diodă nu prezintă interes parametrii de comutație și nici capacitatea joncțiunii. Ne interesează curentul maxim în stare de conducție și tensiunea maxim admisibilă la polarizarea inversă. Cu toate că puterea disipată pe diodele cu siliciu este mai însemnată, ele pot fi utilizate pentru redresarea unor curenți mai mari decât diodele cu germaniu având în vedere că funcționează la temperaturi mai ridicate ( ). De asemenea rezistă la tensiuni inverse mai mari (1000V 100V).

1.6.2. Dioda fotoemisivă (electroluminescentă – LED)

Joncțiunea utilizată într-o asemenea diodă se caracterizează prin energie mare de recombinare a perechilor electron-volt.

Acest proces are loc mai cu seamă în regiunea de trecere în situația în care dioda este polarizată direct. Procesul de recombinare este însoțit de emisie de lumină a cărui spectru depinde de combinațiile metalice introduse în materialele semiconductoare.

Căderea de tensiune pe un LED la polarizarea în sens direct este relativ mare (1,5 1,8 V) iar variația de tensiune la variația curentului este scăzută.

Figura 1.16 Caracteristica spectrală a unui LED

1.7. Tranzistorul bipolar

Tranzistorul bipolar este un dispozitiv cu trei borne numite emitor, bază și colector și care sunt conectate la un monocristal semiconductor având trei regiuni, cea din mijloc fiind dopată diferit față de regiunile marginale.

Figura 1.17 Joncțiunile și simbolul unui Figura1.18 Joncțiunile și simbolul unui

Tranzistor npn tranzistor pnp

Sensul săgeții reprezintă sensul de circulație al curentului prin joncțiunea emitoare polarizată în sensul direct. În funcție de polaritatea tensiunilor aplicate celor două joncțiuni, tranzistorul prezintă mai multe regiuni de funcționare cărora le corespund în planul caracteristicilor statice mai multe regiuni de funcționare.

1.8. Convenția de semn

Figura 1.19 Sensul tensiunilor și curenților Figura 1.20 Sensul tensiunilor și curenților

pentru un tranzistor npn pentru un tranzistor pnp

Există patru situații în care se poate găsi un tranzistor bipolar din punct de vedere al polarizării joncțiunilor sale.

joncțiunea E polarizată direct:

joncțiunea C polarizată invers: regim de funcționare activ

ambele joncțiuni sunt polarizate direct: regim de funcționare saturat.

ambele joncțiuni sunt polarizate invers: regim de funcționare blocat.

joncțiunea E invers polarizată tranzistor in conectare inversă (joncțiunea C direct polarizată).

1.9. Tranzistoarele cu efect de câmp

Denumirea provine de la faptul că acel curent prin dispozitiv se comandă cu ajutorul unui câmp electric.

Caracteristicile acestora sunt:

Curentul este format numai de purtători de sarcină de un anumit tip (goluri sau electroni) motiv pentru care tranzistoarele se mai numesc și tranzistoare unipolare.

Tehnologia acestor tranzistoare este simplă, iar dispozitivul ocupă puțin loc.

Au o rezistență de intrare mult mai mare decât tensiunea bipolară, tipic de ordinul M.

Prezintă, in general, un zgomot mai redus comparativ cu tranzistoarele bipolare.

La tranzistoarele mici dispozitivul se comportă ca o rezistență comandată și care spre deosebire de cazul tranzistoarelor bipolare nu are înseriată cu ea o sursă de tensiune.

Dependența de temperatură a parametrilor tranzistorului este mai slabă decât a tranzistorului bipolar.

Clasificarea acestora poate fi făcută astfel:

cu canal n

J-FET ( cu joncțiune)

cu canal p

TEC

(FET)

cu canal n

cu canal inițial

MOST-FET cu canal p

(metel-oxid- cu canal n

semiconductor) cu canal indus

cu canal p

1.10. Tranzistoarele cu efect de câmp cu joncțiune (TEC-J)

Mai jos este urmărită funcționarea TEC-J considerând cazul unui tranzistor cu canal n.

Figura 1.21 Tranzistoare TEC-J cu efect de câmp

La o funcționare normală joncțiunea grilă-canal este invers polarizată. În consecință, tranzistorul prezintă între grilă și sursă (intrarea tranzistorului) o rezistență de intrare foarte mare.

Figura 1.22 Polarizarea și funcționiarea tranzistorului TEC-J

Deoarece joncțiunea grilă-canal este invers polarizată, rezultă că acest tranzistor nu are caracteristică de intrare. În consecință, se va urmări funcționarea studiind caracteristicile de ieșire și respectiv caracteristica de transfer a dispozitivului.

uGS=0

Figura 1.23 Distribuția sarcinilor în timpul funcționării tranzistorului

– tensiunea D-S prag la care are loc strangularea canalului.

Figura 1.24 Caracteristica de ieșire a unui tranzistor cu efect de câmp

După strangulare curentul circulă prin dispozitiv în mod similar cu circulația de curent în joncțiunea colectoare a unui tranzistor bipolar.

UGS<0

Se constată existența în planul caracteristicilor de ieșire a trei regiuni: prima regiune este regiunea triodă căreia îi corespund relațiile

,

cea de a doua este regiunea de ștrangulare,

și regiunea pentodă, cu relațiile

1.11. Tranzistoarele cu efect de câmp de tip MOS

Principala diferență între acest tip de tranzistor și tranzistoarele cu grilă joncțiune o constituie faptul că de această dată grila tranzistorului este izolată de canal printr-un strat de oxid. Mai jos este prezentată structura unui asemenea tranzistor, considerând cazul unui tranzistor cu canal n.

Figura 1.25 Structura unui tranzistor cu efect de câmp de tip MOS

Electrodul bază este legat de sursă. Tranzistoarele MOS-FET sunt de 2 feluri:

Cu canal inițial, caz în care canalul superficial este întotdeauna prezent fiind realizat prin mijloace tehnologice.

Cu canal indus, situație în care canalul apare în condițiile în care tranzistorul este polarizat corespunzător.

1.11.1. TEC-MOS cu canal inițial

În cazul acestui tip de tranzistor canalul superficial între sursă și drenă, prin care se realizează conducția de curent între cei doi electrozi, este realizat tehnologic (și nu indus).

Mai jos este ilustrat cazul unui tranzistor cu canal n.

Figura 1.26 Structura unui tranzistor cu efect de câmp de tip MOS cu canal n

Funcționarea acestui tip de tranzistor este asemănătoare cu funcțiunea unui TEC-J cu canal n.

Pentru uGS=0 canalul împreună cu substratul reprezintă o joncțiune p-n polarizată invers. În consecință, apare o regiune de trecere care pătrunde mai adânc în semiconductorul mai puțin dopat (p) lipsită de purtători mobili de sarcină și care izolează astfel canalul de substrat.

Nici de această dată tranzistorul nu prezintă caracteristica de intrare. Pe măsură ce crește uDS se extinde regiunea de sarcină spațială dar fără efect asupra conducție canalului care, spre deosebire de TEC-J, este un canal superficial și nu unul de volum. În schimb, apariția câmpului electric E sărăcește canalul de purtători mobili de sarcină și prin urmare scade conducția în canal până când aceasta se optimizează.

Figura 1.27 Caracteristica de ieșire a tranzistorului MOS cu canal n

Spre deosebire de TEC-J cu canal n, uGS poate avea orice polaritatea. O tensiune de grilă pozitivă va conduce la îmbogățirea cu electroni a canalului și deci la o mai bună conductibilitate, în timp ce o tensiune negativă va sărăci canalul în purtători mobili de sarcină.

În regiunea pentodă rămâne valabilă relația . Această relație reprezintă în același timp caracteristica de transfer a TEC-MOS corespunzător funcționării in regiunea pentodă.

TEC-MOS prezintă în regiunea triodă un comportament similar cu tranzistorul TEC-J iar TEC-MOS cu canal p funcționează similar cu TEC-MOS cu canal n cu diferența că polaritatea tensiunilor și sensul curenților sunt schimbate.

Figura 1.28 Caracteristica de transfer a tranzistorului MOS cu canal n

1.11.2. TEC-MOS cu canal indus

Este important modul în care este introdus canalul de inducție. Mai jos este analizat un tranzistor cu canal n.

Figura 1.29 Structura unuitranzistorului MOS cu canal n

1.11.2. TEC-MOS cu canal indus

Este important modul în care este introdus canalul de inducție. Mai jos este analizat un tranzistor cu canal n.

Figura 1.29 Structura unui tranzistor TEC-MOS cu canal indus

Canalul n odată format, curentul de drenă se modifică în uDS similar cu situația de cu cana inițial. Canalul se strangulează chiar în origine pentru uGS=UP. În rest uDS= uGS- UP.

Figura 1.30 Caracteristică de transfer a unui Figura 1.31 Caracteristica de ieșire a unui

tranzistor TEC-MOS cu canal indus tranzistor TEC-MOS cu canal indus

Tranzistoarele MOS se caracterizează printr-o rezistență de intrare foarte mare, 1010 . Stratul de oxid izolator fiind foarte subțire, există pericolul străpungerii acestuia prin descărcare electrostatică de către sarcina electrică acumulată în mod nedorit (operator sau echipamentul care îl manipulează). Fabricantul prevede, de regulă, circuite complexe pe fiecare terminal, care limitează valoarea maximă a tensiunii electrostatice pe terminalul respectiv. În cazul tranzistorului MOS prezența circuitelor de protecție micșorează rezistența de intrare. În unele situații baza nu este conectată electric la sursa tranzistorului. Acest electrod trebuie astfel polarizat încât întotdeauna joncțiunea canal-substrat să fie invers polarizată. În consecință, în cazul tranzistoarelor cu canal n, baza trebuie conectată la cel mai scăzut potențial din circuit, respectiv, în cazul tranzistoarelor cu canal p, baza trebuie conectată la cel mai ridicat potențial.

Capitolul 2. Microcontrolerele

La modul general un controler este o structură electronică destinată controlului unui proces sau, mai general, unei interacțiuni caracteristice cu mediul exterior, fără să fie necesară intervenția operatorului uman.

Resursele integrate la nivelul microcircuitului ar trebui să includă cel puțin următoarele componente:

1. o unitate centrală (CPU), cu un oscilator intern pentru ceasul de sistem

2. o memorie locală tip ROM/PROM/EPROM/FLASH și eventual una de tip RAM

3. I/O – intrări/ieșiri numerice

4. un sistem de întreruperi

5. un port serial de tip asincron și/sau sincron, programabil

6. un sistem de timere-temporizatoare/numărătoare programabile.

Este posibil ca la acestea să fie adăugate, la un preț de cost avantajos, caracteristici specifice sarcinii de control care trebuie îndeplinite:

7. un comparator analogic.

8. un sistem de conversie numeric analogic și/sau ieșiri PWM (cu modulare în durată)

9 un sistem de conversie analog numerică (una sau mai multe intrari analogice)

10. o memorie de date nevolatilă de tip EEPROM

11. facilități suplimentare pentru sistemul de temporizare/numărare (captare și

comparare)

12. un ceas de gardă (timer de tip watchdog)

13. un RTC (Real Time Clock – ceas, dată ,calendar)

14. alte protocoale de transmisie serială sau paralelă (I2C , SPI , 1WIRE , CAN…)

15. facilități pentru optimizarea consumului propriu

Un microcontroler tipic mai are la nivelul unității centrale facilități de prelucrare a informației la nivel de bit, de acces direct și ușor la intrări/ieșiri și un mecanism de prelucrare a intreruperilor rapid si eficient.

Utilizarea unui microcontroler constituie o soluție prin care se poate reduce dramatic numărul componentelor electronice precum și costul proiectării și al dezvoltării unui produs.

Utilizarea unui microcontroler, oricât de evoluat, nu elimină unele componente ale interfeței cu mediul exterior (atunci când ele sunt chiar necesare): subsisteme de prelucrare analogică (amplificare, redresare, filtrare, protecție-limitare), elemente pentru realizarea izolării galvanice (optocuploare, transformatoare), elemente de comutație de putere (tranzistoare de putere, relee electromecanice sau statice).

Un exemplu de microcontroler este ATMEGA8. Mulți pini ai microcontrolerului au mai multe utilizari si resursele respective se folosesc numai pentru o anumita functionalitate

Figura 2.1 Pinii unui microcontroler

2.1 Aplicațiile microcontrolerelor

Toate aplicațiile în care se utilizează microcontrolere fac parte din categoria așa ziselor sisteme încapsulate-integrate.

Printre multele domenii unde utilizarea lor este practic un standard industrial se pot menționa: în industria de automobile (controlul aprinderii/motorului, climatizare, diagnoză, sisteme de alarmă, etc.), în așa zisa electronică de consum (sisteme audio, televizoare, camere video și videocasetofoane, telefonie mobilă, GPS-uri, jocuri electronice, etc.), în aparatura electrocasnică (mașini de spălat, frigidere, cuptoare cu microunde, aspiratoare), în controlul mediului și climatizare (sere, locuințe, hale industriale), în industria aerospațială, în mijloacele moderne de măsurare – instrumentație (aparate de măsură, senzori și traductoare inteligente), la realizarea de periferice pentru calculatoare, în medicină.

Există la ora actuală un număr extrem de mare de tipuri constructive de microcontrolere. Un criteriu de clasificare care se poate aplica întotdeauna este lungimea (dimensiunea) cuvântului de date. Funcție de puterea de calcul dorită și de alte caracteristici se pot alege variante având dimensiunea cuvântului de date de 4, 8,16, 32 sau 64 de biți. Nu este obligatoriu ca dimensiunea cuvântului de date să fie egală cu dimensiunea unui cuvânt mașină (cuvânt program). Există și multe variante dedicate, neprogramabile de utilizator la nivel de cod mașină, strict specializate pe o anumită aplicație, prin intermediul codului preprogramat și al resurselor hardware, utilizate pentru comunicații, controlul tastaturilor, controlul aparaturii audio/video, prelucrarea numerică a semnalului, etc.

Practic, toate microcontrolerele se realizează la ora actuală în tehnologie CMOS. Se pot realiza astfel

2.2 Caracteristici arhitecturale ale unității centrale

Arhitectura unității centrale de calcul (CPU) este unul din elementele cele mai importante care trebuie avut în vedere în analiza oricărui sistem de calcul. Principalele concepte luate în considerare și întâlnite aici sunt următoarele:

Arhitecturi de tip " von Neumann "

Cele mai multe microcontrolere sunt realizate pe baza acestei arhitecturi de sistem. Microcontrolerele bazate pe această arhitectură au o unitate centrală (CPU) caracterizată de existența unui singur spațiu de memorie utilizat pentru memorarea atât a codului instrucțiunilor cât și a datelor ce fac obiectul prelucrării.

Există deci o singură magistrală internă (bus) care este folosită pentru preluarea instrucțiunilor și a datelor; efectuarea celor două operații separate, în mod secvențial, are ca efect, cel puțin principial, încetinirea operațiilor. Este arhitectura standard cea mai des întâlnită și pentru microprocesoarele de uz general.

Figura 2.3 Structura microcontrolerelor bazate pe arhitectura de tip "von Neumann"

Arhitecturi de tip " Harvard "

La această arhitectură există spații de memorie separate pentru program și date. În consecință ar trebui să existe și magistrale separate (de adrese și date) pentru codul instrucțiunilor și respectiv pentru date. Principial există astfel posibilitatea execuției cvasiparalele (suprapunerii) a celor două operații menționate anterior. Codul unei instrucțiuni poate fi preluat din memorie în timp ce se execută operațiile cu datele aferente instrucțiunii anterioare. Este posibilă (cel puțin teoretic) o execuție mai rapidă, pe seama unei complexități sporite a microcircuitului. Este arhitectura standard pentru procesoarele numerice de semnal (DSP). Datorită costului mare al implementării unei astfel de arhitecturi, în cazul microcontrolerelor se întâlnește mai ales o arhitectură Harvard modificată, cu spații de memorie separate pentru program și date, dar cu magistrale comune pentru adrese și date.

Figura 2.4 Structura microcontrolerelor bazate pe arhitectura de tip „Harvard”

c. CISC

Aproape toate microcontrolerele au la baza realizării CPU conceptul CISC (Complex

Instruction Set Computer). Aceasta înseamnă un set uzual de peste 80 instrucțiuni, multe din

ele foarte specializate. De obicei multe din aceste instrucțiuni sunt foarte diferite între ele: unele operează numai cu anumite spații de adrese sau registre, altele permit numai anumite moduri de adresare, etc. Pentru programatorul în limbaj de asamblare există unele avantaje prin utilizarea unei singure instrucțiuni complexe în locul mai multor instrucțiuni simple (analog macroinstrucțiunilor clasice dintr-un limbaj de asamblare) .

d. RISC

RISC (Reduced Instruction Set Computer) este un concept de realizare a CPU care a început să fie utilizat cu succes de ceva timp și la realizarea microcontrolerelor. Prin implementarea unui set redus de instrucțiuni care se pot executa foarte rapid și eficient se obține o reducere a complexității microcircuitului, suprafața disponibilizată putând fi utilizată în alte scopuri. Printre caracteristicile asociate de obicei unui CPU RISC se pot menționa:

– arhitectură Harvard modificată sau von Neumann

– viteză sporită de execuție

– set de instrucțiuni ortogonal (simetric): orice instrucțiune operează cu orice spațiu de adrese (de memorie) sau orice registru, instrucțiunile nu prezintă combinații speciale, excepții, restricții sau efecte colaterale.

2.3 Aspecte legate de memoria microcontrolerelor

În afară de memoria locală de tip RAM, de dimensiuni relativ reduse (de la x10 octeți la x1k), implementată ca atare sau existentă sub forma unui set de registre și destinată memorării datelor (variabilelor), mai există o serie de aspecte specifice, marea majoritate a acestora fiind legată de implementarea fizică a memoriei de program (și eventual a unei părți a memoriei de date) cu ajutorul unor memorii nevolatile. Clasic, memoria de program era implementată într-o variantă de tip ROM: EPROM pentru dezvoltare și producție pe scară mică/medie sau mask-ROM pentru producția de masă.

În continuare sunt enumerate principalele concepte noi apărute de-a lungul timpului în legătură cu implementarea memoriei de program sau date.

a. OTP – majoritatea producătorilor oferă variante de microcontrolere la care memoria locală de program este de tip OTP (One Time Programmable), practic o memorie PROM identică intern cu varianta EPROM, dar fără fereastra de cuarț pentru ștergere (deci și mai ieftine); aceste variante pot fi utilizate ca o alternativă pentru o producție limitată, până în momentul testării și validării finale a codului, moment în care pot fi comandate variantele (mask) ROM propriu-zise, cele mai economice pentru o producție de masă

b. FLASH EPROM – este o soluție mai bună decât EPROM-ul propriu-zis atunci când este necesar un volum mare de memorie program (nevolatilă); mai rapidă și cu un număr garantat suficient de mare (x10000) de cicluri de programare (de ștergere/scriere), este caracterizată și prin modalități mai flexibile de programare; este utilizată numai ca memorie de program.

c. EEPROM – multe microcontrolere au și o memorie de acest tip, de dimensiune limitată (de la x10 octeți la x K octeți), destinată memorării unui număr limitat de parametrii (memorie de date) care eventual trebuie modificați din timp în timp, este o memorie relativ lentă (la scriere), dar cu un număr de cicluri de ștergere/scriere mai mare ca FLASH-ul

d. NOVRAM (RAM nevolatil) – realizată prin alimentarea locală (baterie, acumulator) a unui masiv RAM CMOS atunci când este necesar un volum mare de memorie de program și date nevolatile, mult mai rapidă decât toate celelalte tipuri și fără limitări ca număr de cicluri.

e. Memoria externă de program sau date. Marea majoritate a familiilor de microcontrolere permit si utilizarea de memorie externă de program (tipic ROM) sau date (tipic RAM). Aceasta presupune existența si utilizarea unor magistrale externe de adrese si date. Conexiunile externe necesare pentru acestea sunt disponibile ca funcții alternative ale pinilor. Din păcate, in această situație numărul de conexiuni exterioare disponibile pentru interfața cu exteriorul se reduce dramatic, reducând mult din versatilitatea microcontrolerului. Mai mult, la variantele constructive cu un număr mic de pini (conexiuni externe) nu este posibilă utilizarea de memorie externă, decât, eventual, intr-o variantă cu interfață serială (memorie RAM, FLASH sau EEPROM cu interfață I2C, SPI, etc.) și numai ca memorie de date.

2.4 Limbaje de programare

Limbajul mașină și cel de asamblare

Limbajul mașină (instrucțiunile mașină) este singura formă de reprezentare a informației pe care un microcontroler o "înțelege". Din păcate această formă de reprezentare a informației este total nepractică pentru un programator, care va utiliza cel puțin un limbaj de asamblare, în care o instrucțiune are drept corespondent o instrucțiune în limbaj mașină.

Un program în limbaj de asamblare este rapid și compact. Aceasta nu înseamnă că un

astfel de program, prost scris, nu poate fi lent și de mari dimensiuni, programatorul având controlul total pentru execuția programului și gestiunea resurselor. Utilizarea numai a limbajului de asamblare pentru dezvoltarea unei aplicații complexe este neproductivă de multe ori, deoarece există și familii de microcontrolere cu CPU de tip CISC care au un număr foarte mare de instrucțiuni (x100) combinate cu moduri de adresare numeroase și complicate.

Totuși, nu trebuie uitat că la ora actuală mulți din producătorii mari de microcontrolere oferă medii de dezvoltare software gratuite care includ programe asambloare gratuite. De asemenea, comunitatea utilizatorilor diverselor familii de microcontrolere a dezvoltat și ea, în timp, multe astfel de asambloare, care sunt disponibile ca freeware.

Interpretere

Un interpreter este o implementare a unui limbaj de nivel înalt, mai apropiat de limbajul natural. Caracteristic pentru execuția unui program interpretat, este citirea și executarea secvențială a instrucțiunilor (instrucțiune cu instrucțiune). De fapt fiecare instrucțiune de nivel înalt este interpretată într-o secvență de instrucțiuni mașină care se execută imediat.

Cele mai răspândite interpretere sunt cele pentru limbajele C++,BASIC și JAVA .

Marele avantaj al utilizării unui interpreter este dezvoltarea interactivă și incrementală a aplicației: se scrie o porțiune de cod care poate fi testată imediat, instrucțiune cu instrucțiune; dacă rezultatele sunt satisfăcătoare se poate continua cu adăugarea de astfel de porțiuni până la finalizarea aplicației.

Compilatoare

Un compilator combină ușurința în programare oferită de un interpreter (de fapt de limbajul de nivel înalt) cu o viteză mai mare de execuție a codului. Pentru aceasta programul în limbaj de nivel înalt este translatat (tradus) direct în limbaj mașină sau în limbaj de asamblare. Codul mașină rezultat are dimensiuni relativ mari (dar mai mici decât cel interpretat) și este executat direct, ca un tot, de microcontroler. De regulă codul generat poate fi optimizat fie ca dimensiune, fie ca timp de execuție.

Cele mai populare și utilizate sunt cele pentru limbajul C.

Deci codul este obținut cu ajutorul unui mediu integrat de dezvoltare a programelor (IDE-Integrated Development Environment) care conține în mod tipic următoarele componente software:

un editor specializat (orientat pe codul sursă),

un asamblor/compilator,

un editor de legături/locator ("link-editor/locator"),

programe de gestiune a unor biblioteci de cod ("librarians"),

programe de conversie a formatelor de reprezentare a codului (de exemplu din binar în format Intel HEX )

un simulator și/sau depanator ("debugger")

posibilitatea de atasare a unui programator ICSP

2.6 Criterii de alegere a unui microcontroler

În momentul în care se dorește alegerea unui microcontroler (sau mai bine zis a unei familii de microcontrolere) pentru dezvoltarea unei aplicații de tip “embedded system” există mai multe criterii care trebuie luate în considerare, ținând cont de implicațiile multiple ale acestei alegeri. Se poate încerca gruparea acestor criterii după cerințele impuse aplicației și prezentarea câtorva din întrebările rezultate, la care trebuie dat un răspuns.

Costurile aplicației

Care va fi scara de producție: prototip, producție mică/medie sau de masă?

Care sunt costurile permise pentru microcontroler?

Care sunt costurile permise pentru mediul de programare și dezvoltare?

Timpul de dezvoltare al aplicației

Ce limbaj de programare să aleg?

Ce limbaje de programare cunosc bine și ce medii de dezvoltare am utilizat?

Ce modalitate de testare și depanare folosesc: simulator, sistem de dezvoltare, emulator?

Caracteristicile fizice

Care este viteza de prelucrare (de calcul) necesară?

De câtă memorie am nevoie pentru program și respectiv date?

Va fi necesară si o memorie externă?

Ce fel de alimentare este disponibilă și care sunt limitările acesteia?

De câte intrări și/sau ieșiri am nevoie?

Ce fel de intrări și/sau ieșiri sunt necesare: intrări/ieșiri analogice, ieșiri numerice de curent mai mare?

Care sunt resursele necesare în materie de temporizare/numărare si care ar fi caracteristicile lor cele mai importante (rezoluție, frecventa maxima de numărare) ?

Ce tip de capsulă, ce dimensiuni fizice și număr de pini ar trebui să aibă?

Care este gama temperaturilor de lucru necesare?

Aplicația va funcționa într-un mediu cu caracteristici speciale, de exemplu în care există perturbații electromagnetice puternice?

Conectivitatea

Care sunt resursele de comunicație necesare: câte porturi seriale asincrone și cu ce caracteristici, ce tipuri de magistrale seriale sincrone sunt disponibile?

Este necesară o conectivitate Ethernet (o stivă TCP/IP), USB sau wireless (stive Bluetooth, Zigbee, etc.)?

Compatibilitate, scalabilitate și dezvoltarea ulterioară

Cu ce tipuri de circuite se poate interfața cât mai simplu: sisteme de afișare, senzori, elemente de comandă și execuție (relee, motoare de cc, motoare pas cu pas, etc.)?

Cum se poate realiza extinderea ulterioară, atunci când este necesară?

Există mai multe variante în familia respectivă de microcontrolere care să acopere eventualele cerințe suplimentare în materie de viteză de lucru, resurse periferice sau de memorie?

2.7 Cu ce si cum se poate programa un microcontroler?

a.Programator specializat extern (ex.pikit 3) – este un circuit electronic care conectează un port al PC-ului ( USB ) cu pinii de programare ai microcontrolerului. Programatoarele acestea au de obicei un soclu ZIP in care se pot conecta mai multe tipuri de microcontrolere in diferite poziții, pentru că pinii de programare diferă ca poziție de la familie la familie. Unele programatoare pot programa chiar și diferite familii de microcontrolere.

b. Programarea "In System" (ISP-In System Programming) – folosirea unor memorii nevolatile de tip FLASH face posibilă și "programarea" unui astfel de microcontroler fără a-l scoate din sistemul în care este încorporat (programare on-line, In System Programming); programarea se face de regulă prin intermediul unei interfețe seriale dedicate de tip ISP (poate avea nume diferite) sau a unei interfețe standard JTAG.

c. Bootloader – multe din microcontrolerele recente la care memoria de program este de tip FLASH au și facilitatea (au de fapt instrucțiuni dedicate acestui scop) de a putea și scrie în această memorie de program fără a utiliza un circuit de programare extern. Astfel în microcontroler poate exista permanent (rezident) un cod de mici dimensiuni (denumit și bootloader) care pur și simplu va încărca prin intermediul portului serial (este doar un exemplu) codul utilizator sau constantele pe care acesta vrea eventual să le actualizeze. Bootloader-ul este și cel care lansează în execuție programul utilizator după încărcarea acestuia.

Protejarea codului program dintr-o memorie locală nevolatilă împotriva accesului neautorizat (la citire –deoarece pirateria soft există și aici) este oferită ca o opțiune la variantele FLASH, EPROM sau OTP. Codul poate proteja atât la citire cât și la scriere (practic circuitul trebuie șters, înainte de a se mai putea scrie ceva în el). Este eliminată astfel posibilitatea de a se realiza, în acest caz, alterări cu un anumit scop ale codului original. La variantele mask-ROM protecția propriu-zisă este de cele mai multe ori implicită.

Capitolul 3 Arduino, senzori si motoare DC

Ce este Arduino ?

Arduino este o platformă de dezvoltare cu microcontroler asociat cu un limbaj de programare intuitiv pe care îl dezvoltă folosind arduino integrated development environment (IDE)

La acesta platformă se poate conecta o gamă foarte largă de dispositive cu care poti sa culegi tot felul de informatii din mediu si acest lucru il putem face cu ajutorul unor senzori spre exemplu: sensor de incendiu, senzori de gaz GPL, senzori care determină alcoolul din aerul respirat, monoxide de carbon, senzori care determină acceleratia unui obiect sau dispozitiv in miscare, senzori de distantă, senzori pt intensitatea luminaoasa, senzori de prezentă umană, senzori pt semnale acustice, senzori de umiditate, senzori de temperatura, senzori de presiune atmosferică, senzori RFID. Pentru conectarea cu alte sisteme sunt plăci de retea Ethernet capabile sa comunice informatii prin internet, dispositive care pot să transmită informatii prin conexiunea cu dispozitive GSM, WiFi, Bluetooth, Radio. Putem conecta si moatoare de current continuu, motoare pas cu pas, servomotoare, pot fi controlate cu o precizie foarte mare. Ca sa afisăm informatii preluate si prelucrate de Arduino putem folosi o gamă foarte largă de LCD incepând cu cele mai simple pană la LCD-uri grafice, TFT LCD, de exemplu: LCD 2×16, LCD 128×64, etc.

Senzorul de distanta prin ultrasunete HC-SR04

Vcc Trig Echo GND

Senzorul ultrasonic HC-SR04 are principiul de functionare al unui sonar pentru a masura distanta pana la obiect si are o precizie de masurare a distantei de la 2cm pana la 4m, avand o precizie de 3mm. Modulul este format din transmitator care emite semnalul si receptor cel care receptioneaza semnalul.

Principiu de functionare

Ultrasunetele au o frecventa inalta in pricipiu pana la 40kHz. Prima data trimite un semnal de 10μs, apoi o serie de 8 impulsuri cu frecventa de 40kHz. Receptorul asteapta ecoul si daca ecoul este intre 150μs-25ms inseamna ca se detecteaza un obstacol iar daca timpul este peste 38ms

inseamna ca nu sa detectat nimic.

Calcularea distantei se face folosind urmatoarea formula L= C * T/2, L fiind lungimea, C este viteza sunetului in aer (344 m/s la temperatura ambiantă de 20 grade C), iar T este diferenta de timp de la transmiterea semnalului pana la receptionarea lui, el fiind injumatatit deoarece distanta este parcursa in ambele sensuri. Trebuie sa tinem cont si de viteza sunetului care este afectata de densitatea aerului iar densitatea aerului este afectata in general de temperatura si altitudine.

Parametri elctrici ai senzorului:

Tensiunea de lucru: 5v

Curentul de lucru : 15mA

Frecventa de lucru: 40Hz

Distanta maxima de masurare: 4m

Distanta minima de masurare: 2cm

Unghiul de masurare: 15grade

Trigger Imput Semnal: 10uS TTl pulse

Echo Output Signal: Input TTL lever signal and range in proportion

Motorul electric de curent continuu(cu perii)

Motorul de curent continuu este un motor electric cu comutatie interna fiind alimentat de la o sursa de curent continuu.

Constructia unu motor de curent continuu

Partile componente ale unui motor de curent continuu sunt urmatoarele:

-stator

-rotor

-perii colectoare

-colector sau comutator

Statorul genereaza un camp magnetic cu ajutorul unor magneti permanenti sau cu ajutorul spirelor unor electromagneti. Multe moatoare de curent continuu se deosebesc prin constructia statorului sau a felului cum sunt infasurarile bobinelor conectate la alimentare.

Rotorul este realizat dintr-o infasurare sau mai multe, cand aceste infasurari sunt alimentate

ele produc un camp magnetic. Polii magnetici ai rotorului vor fi atrasi de polii opusi care sunt generati de stator si produce rotirea rotorului.

Colectorul face corp comun cu axul motorului(rotor) si in timp ce se produce rotatia periile de grafit aluneca peste colector si vine in contact cu diferite segmente ale acestuia, aceste segmente sunt atasate diferitelor infasurari ale rotorului. Atunci cand este aplicata o tensiune la capetele periilor apare un camp magnetic dinamic in interiorul motorului.

Colectorul schimba sensul curentului prin infasurarea rotorica astfel incat campul magnetic de excitatie sa efectuieze tot timpul o forta fata de rotor.

Comutatia infasurarilor la motoarele de cc cu perii se face mecanic.

In functie de cum sunt conectate infasurarile de excitatie motoarele de c.c le putem clasifica in:

-motor cu excitatie independenta

-motor cu excitatie paralela

-motor cu excitatie serie

-motor cu excitatie mixta

Principiul de functionare al motorului(reprezentare):

Capitolul 4 Schema si descrierea lucrarii practice

4.1 Introducere

Acest capitol este destinat aplicatiei practice realizate. Pe baza cunostintele expuse in primele capitole, a fost realizata o placa multifunctionala destinata in principal scopului propus expus in introducerea lucrarii dar cu ajutorul careia se pot realiza si alte obiective

Descriere aplicatie practica:

Este un robot sub forma de masină care atunci cand cineva sau ceva se apropie la o distanta mai mica de 50 cm el incepe să emită un semnal acustic și să se indeparteze si să pastreze o distantă de aproximativ 1m față de obiectul sau persoana respective.

Robotul are la baza o platformă Arduino Leonard.

Diagrama robotului

Descrierea hardware a robotului

Robotul are la baza o platformă arduino leonardo la care sunt conectate un modul pt masurarea distanței prin ultrasunete, un buzzer pentru semnalizarea acustica, doua motoare care ajuta la deplasarea lui si un acumulator.

Arduino Leonardo

Aceasta platform de procesare are la baza microcontroller-ul ATMega32U4, acesta are 20 de pini digitali intrare/ieșire din care 12 pot fi utilizați pentru intrări analogice, iar 7 suportă si PWM. Funcționează la o frecvență de 16 Mhz si dispune de un port USB prin care se conecteaza la calculator si se incarca programul.

ATMega32U4

High Performance, Low Power AVR 8-Bit Microcontroller

Advanced RISC Architecture

135 Powerful Instructions – Most Single Clock Cycle Execution

32 x 8 General Purpose Working Registers

Fully Static Operation

Up to 16 MIPS Throughput at 16 MHz

On-Chip 2-cycle Multiplier

Non-volatile Program and Data Memories

16/32K Bytes of In-System Self-Programmable Flash (ATmega16U4/ATmega32U4)

1.25/2.5K Bytes Internal SRAM (ATmega16U4/ATmega32U4)

512Bytes/1K Bytes Internal EEPROM (ATmega16U4/ATmega32U4)

Write/Erase Cycles: 10,000 Flash/100,000 EEPROM

Data retention: 20 years at 85C/ 100 years at 25C(1)

Optional Boot Code Section with Independent Lock Bits

In-System Programming by On-chip Boot Program

True Read-While-Write Operation

All supplied parts are preprogramed with a default USB bootloader

Programming Lock for Software Security

JTAG (IEEE std. 1149.1 compliant) Interface

Boundary-scan Capabilities According to the JTAG Standard

Extensive On-chip Debug Support

Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface

USB 2.0 Full-speed/Low Speed Device Module with Interrupt on Transfer Completion

Complies fully with Universal Serial Bus Specification Rev 2.0

Supports data transfer rates up to 12 Mbit/s and 1.5 Mbit/s

Endpoint 0 for Control Transfers: up to 64-bytes

6 Programmable Endpoints with IN or Out Directions and with Bulk, Interrupt or Isochronous Transfers

Configurable Endpoints size up to 256 bytes in double bank mode

Fully independent 832 bytes USB DPRAM for endpoint memory allocation

Suspend/Resume Interrupts

CPU Reset possible on USB Bus Reset detection

48 MHz from PLL for Full-speed Bus Operation

USB Bus Connection/Disconnection on Microcontroller Request

Crystal-less operation for Low Speed mode

Peripheral Features

On-chip PLL for USB and High Speed Timer: 32 up to 96 MHz operation

One 8-bit Timer/Counter with Separate Prescaler and Compare Mode

Two 16-bit Timer/Counter with Separate Prescaler, Compare- and Capture Mode

One 10-bit High-Speed Timer/Counter with PLL (64 MHz) and Compare Mode

Four 8-bit PWM Channels

Four PWM Channels with Programmable Resolution from 2 to 16 Bits

Six PWM Channels for High Speed Operation, with Programmable Resolution from 2 to 11 Bits

Output Compare Modulator

12-channels, 10-bit ADC (features Differential Channels with Programmable Gain)

Programmable Serial USART with Hardware Flow Control

Master/Slave SPI Serial Interface

Byte Oriented 2-wire Serial Interface

Programmable Watchdog Timer with Separate On-chip Oscillator

On-chip Analog Comparator

Interrupt and Wake-up on Pin Change

On-chip Temperature Sensor

Special Microcontroller Features

Power-on Reset and Programmable Brown-out Detection

Internal 8 MHz Calibrated Oscillator

Internal clock prescaler & On-the-fly Clock Switching (Int RC / Ext Osc)

External and Internal Interrupt Sources

Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby, and Extended Standby

I/O and Packages

All I/O combine CMOS outputs and LVTTL inputs

26 Programmable I/O Lines

44-lead TQFP Package, 10x10mm

44-lead QFN Package, 7x7mm

Operating Voltages

2.7 – 5.5V

Operating temperature

Industrial (-40°C to +85°C)

Maximum Frequency

8 MHz at 2.7V – Industrial range

16 MHz at 4.5V – Industrial range

Similar Posts