Sunteți pe pagina 1din 41

MICROCONTROLLERE

Privire general

Petre Ogruan, octombrie 2016


Ce este un microcontroller?

Un microcontroller este un calculator pe un singur chip, dedicat unei aplicaii. Un


PC este mai rapid, are memorie mai mare i se pot face mai multe aplicaii. Un
microcontroller este mai mic i mai ieftin.
Unitatea central execut instruciunile din 1a.Structura
memoria program, pe care le primete
prin magistrala de date. Structura
Harvard este posibil i rspndit la
MC pentru c de regul instruciunile
sunt stocate n memoria ROM iar datele
n cea RAM.
Unitate central
Fiecare MC are un controller de ntreruperi
i unele au controller de DMA care
Unitate Registre Memorie Memorie
admit att intrri din exterior ct i de aritmetic pentru pentru date
la modulele interne. interne
i logic programe
Modulele de I/O pot fi seriale sau paralele. (ALU)
Fiecare modul transfer date cu
exteriorul prin intermediul registrului
de date (RD). Modulul este comandat
(configurat) de unitatea central prin
intermediul unui registru de comenzi BUS INTERN
(RC) i se poate citi starea modulului
prin registrul de stare (RS), prin care se
pot i cere ntreruperi. Registrele
modulelor de I/O pot fi vzute de UC Controller de
RS RC RD Intrri/
ca locaii de memorie (la familia ntreruperi
Motorola) sau ca dispozitive de I/O ieiri de
ntr-un spaiu de adresare separat (MCS date
Controller DMA Seriale/
51). De regul structura de baz a
familiei conine anumite interfee Paralele
considerate foarte importante (timer, PORT
canal serial UART) i linii de I/O
grupate n porturi paralele de uz
general. Pe structura de baz se adaug
diferite tipuri de interfee care mpart
liniile de I/O cu porturile paralele de uz
general.
1b. Structura intern a unui
microcontroller
2.Unitatea central
Unitatea central este format din ALU i un
set de regitri interni, similari unor
locaii de memorie, folosii pentru
memorarea unor date des folosite sau
pentru programarea unor anumite funcii. UC
Diferitele familii de MC folosesc seturi Acumulator (CISC)
diferite de regitri. Exist ns civa
Registre generale (RISC)
regitri comuni:
ROM/PROM/EPROM
A (Accumulator) registrul acumulator care este
folosit deseori pentru a stoca un operand (memoria program)
i rezultatul unei operaii aritmetice. Program Counter
I registru de index, folosit la adresri indirecte.
S registru de stare, care conine indicatorii de
stare: Carry, Zero etc.
PC (Program Counter) este stocat adresa RAM
ALU
urmtoarei instruciuni de executat. Dup Indicator de stiv
(memoria de
un RESET (iniializarea MC), registrul date)
PC se ncarc dintr-o locaie de memorie
Decodificare
numit vector de reset. Aceast locaie instruciuni
conine adresa primei instruciuni de Registru de stare
executat. Dup execuia acestei prime
instruciuni, PC se incrementeaz.
SP (Stack Pointer) conine indicatorul de stiv.
Stiva este o memorie de tip LIFO, n care Magistral intern

ultimul octet stocat este primul scos din


memorie. Coninutul acestui registru Magistrala de instruciuni pentru sisteme cu
stabilete adresa din memorie unde este arhitectura Harvard
definit stiva.
3.Magistrale
Blocurile interne ale MC sunt legate ntre ele Magistrala multiplexat
printr-o magistral (bus) de date i una
de adrese. Mrimea acestor magistrale CLK
constituie una dintre caracteristicile cele
mai importante ale unui MC.
linii multiplexate de adrese i
Arhitectura Von Neuman prevede existena date la citire
unui bus unic folosit pentru circulaia
datelor i a instruciunilor. Cnd un linii multiplexate de adrese i
controller cu o astfel de arhitectur date la scriere
adreseaz memoria pe linia de date se
pune nti codul instruciunii apoi
coninutul memoriei, accesul fiind adrese date
realizat n 2 pai, deci destul de lent.
Magistrala nemultiplexat
Arhitectura Harvard prevede un bus separat
pentru date i instruciuni. Cnd
instruciunea este pus pe busul de CLKOUT
instruciuni, datele de la instruciunea
anterioar sunt pe busul de date. linii de adres
Structura MC este mai complex, dar
performanele de vitez sunt mai bune. linii de date la citire
Magistrala de date i cea de adrese pot fi
linii de date la scriere
separate sau multiplexate. Magistralele
pot s nu fie scoase n exterior
(Motorola 6805) sau pot fi scoase n
exterior direct (MCS 51) sau
multiplexate (MC pe 16 sau 32 de bii).
4.Memoria intern
Tipuri de memorii
Memoria ROM (Read Only Memory) este cea mai ieftin i simpl memorie i se folosete la stocarea programelor n
faza de fabricaie. Unitatea central poate citi informaiile, dar nu le poate modifica.
Memoria PROM (Programmable Read Only Memory) este similar cu memoria ROM, dar ea se poate programa de
ctre utilizator. Dup posibilitile de tergere, aceast memorie poate fi de mai multe feluri:
OTP (One Time Programmable, PROM) nu se poate terge sau reprograma. Preul unui MC cu OTP este
mic, viteza este bun, dar aplicaiile sunt lipsite de flexibilitate.
Memoria EEPROM (Electrically Erasable Programmable Read Only Memory) poate fi tears electric de
ctre unitatea central, n timpul funcionrii. tergerea este selectiv, iar pentru renscriere trebuie fcui
mai muli pai. Memoria este lent i numrul de tergeri/ scrieri este limitat (tipic 10000).
Memoria FLASH EPROM este o soluie mai bun pentru c poate stoca cantiti mai mari de date, este
mai rapid dar permite mai puine tergeri i renscrieri.
Memoria RAM (Random Access Memory) este o memorie volatil care poate fi citit sau scris de unitatea central.
Locaiile din RAM pot fi accesibile n orice ordine. Pe chip, memoria RAM ocup mult loc i implicit costurile
de implementare sunt mari. De aceea un MC include de obicei puin RAM. Memorie RAM static alimentat de la
baterie se folosete pentru stocarea nevolatil a cantitilor mari de date, la o vitez de acces mare i cu un numr
nelimitat de tergeri i renscrieri.
Observaii
-Stocarea programelor n memorii nevolatile permite ca MC s fie programat fr a fi scos din circuitul n care
funcioneaz (Field Programming/ Reprogramming).
-Productorii recomand ca la producii de volum mare s se foloseasc memoria ROM, care se nscrie la fabricant, cu
masc, la producii de volum mic s se foloseasc memoria OTP (PROM) iar pentru prototipuri s se foloseasc
memoria EPROM.
-Unele familii de MC trateaz spaiul de intrare ieire ca i memoria, iar altele au spaii diferite de adresare pentru
memorie i spaiul I/O. Tratarea unitar a acestor spaii are avantajul simplitii dar limiteaz numrul de locaii
de memorie adresate. Tratarea unitar este justificat de asemnrile existente ntre stocarea unui bit n memorie
sau ntr-un latch de I/O.
5.Un bit de memorie i un bit de I/O
READ

Un bit de informaie se poate scrie/citi n D Q


Bit de
memorie ca n figura de sus, celula de date
memorie fiind reprezentat sub forma unui
bistabil D. Prin gestionarea cu aceleai
semnale de comand se pot citi/scrie date WRITE C /Q
din porturile de I/O
Starea intern a MC i controlul MC se
realizeaz tot prin intrri/ ieiri de date ca Bit de
direci
n figura de sus, dar semnalele nu sunt e
scoase n exterior ci comand funcii
interne n MC. Citirea strilor i controlul Intrare/
Bit de D Q
MC se fac prin intermediul regitrilor Ieire
date
interni de stare i control. Un exemplu de Driver digital
registru de control este registrul care WRITE
comand sensul transferului la porturile de C /Q
I/O. O linie dintr-un port este de ieire dac
READ
bitul corespunztor din registrul de direcie
este 1. O linie de intrare/ ieire cu sensul Bit de
controlat de o linie a registrului de direcie date
este dat n figura de jos. Buffer
Module interne cu funcii de timp
6.Timer
Tactul pentru timer poate fi ales tactul sistem
sau un tact de la un pin extern. Tactul
poate fi divizat de un numr Tact
sistem
Alegere Tact fr
prescalare sau
tact
programabil de ori cu un numrtor de (intern) cu prescalare
prescalare (timer de prescalare). Tact de la Prescalare
Comanda funcionrii timerului se face un pin
extern
cu un registru de control i stare.
Timerul este format din 3 module, a cror
caracteristic este numrul de bii:
Bit selecie tact Bii selecie prescalare Selecie prescalare
-numrtor (timer) REGISTRU DE CONTROL I STARE
-registru de ncrcare Mod de lucru Depire
-registru de captur
Modurile de lucru sunt urmtoarele: Magistral intern
-mod numrtor, n care Timerul numr
tactul de la intrare i la depire nscrie
un bit n registrul de stare sau se poate Timer 0 Cerere de
ntrerupere
cere o ntrerupere. Dac tactul este Registru de ncrcare
extern nseamn c se face o numrare a
evenimentelor externe. De regul
frontul activ se poate programa, adic s Numrtor 8-16 bii
se fac o incrementare a numrtorului
la front pozitiv sau negativ.
-mod captur, n care un pin exterior poate Registru de captur
comanda oprirea timerului i ncrcarea
valorii la care a ajuns n registrul de
ncrcare. Acest mod poate fi folosit
pentru msurarea unei perioade de timp. Pin de captur din exterior
7.Ceas de gard (Watch Dog)
CLR

Numrtor RESET

Registru de control Registru de prescalare

Ceasul de gard este un timer care poate fi programat s numere un tact care provine de la un registru de
prescalare. Dac numrtorul ajunge la capt, semnalul de depire declaneaz un RESET al circuitului.
Este sarcina programatorului s scrie n registrul de control un cuvnt care va reiniializa numrtorul. n
cazul n care MC nu mai este sub controlul programului, el va fi resetat de ctre ceasul de gard
8.Generator PWM

T2 PWM Comparator pe 8 bii

Registru PWM Numrtor

Registru de prescalare
T1
Factorul de umplere
este T2/T1 BUS INTERN

Modulaia impulsurilor n lime (Pulse Width Modulation) are multe aplicaii, mai ales n comanda motoarelor
de curent continuu sau a surselor de alimentare. Din acest motiv, unele MC includ n structura lor un
modulator PWM ca interfa distinct. Un semnal PWM arat ca n figura de sus, stnga.
Un canal PWM este reprezentat n figura de sus, dreapta. Frecvena de repetiie este programat cu un registru
de prescalare care genereaz un ceas pentru un numrtor de 8/16 bii. Coninutul numrtorului este
comparat cu cel al registrului PWM, dac este mai mare ieirea PWM este LOW, dac este mai mic sau
egal PWM este HIGH. Factorul de umplere poate fi astfel modificat ntre 0 i 255/255.
Module interne cu funcii de
comunicaii
9.Port serial asincron
Cereri de ntrerupere ctre
UC

Acest port este numit UART (Universal Asyncronous Magistrala intern

Receiver Transmitter), iar Motorola l numete


pentru MC proprii port SCI (Serial
Communications Interface).
Registru de Buffer de Buffer de
Caracterele seriale sunt transmise sau recepionate serial prescalare transmisie recepie
n registrele de transmisie sau recepie. La recepia
unui caracter, acesta se ncarc n bufferul de
recepie i se cere o ntrerupere. La emisie, un
caracter se introduce n bufferul de transmisie de Rata Baud Registru de Registru de
deplasare la deplasare la
unde este trecut n registrul de deplasare i se
transmisie recepie
transmite serial, cerndu-se i o ntrerupere. Ceasul
poate fi selectat intern sau extern. Dac este selectat
intern, el se formeaz din tactul sistemului cu o
divizare printr-un numrtor de 16 bii (prescalare)
i apoi un numrtor de 11 bii. Comanda USART
TxD RxD
se realizeaz cu un registru de stare i control
10.Port serial sincron SPI
MC
master
SPI MISO
MOSI

SCK +1
Port I/O
0
/SS 1
2

/SS SCK MOSI MISO /SS SCK MOSI MISO

MC slave MC slave

Cu portul SPI (Serial Peripheral Interface) se poate realiza o comunicaie sincron simpl, folosit de regul pentru a transfera
date ntre circuite pe aceeai plac cu MC. Un transfer bidirecional necesit 3 pini, unul dintre ei fiind alocat ceasului de
transmisie generat de masterul SPI. Cu SPI se pot realiza transferuri i ntre MC. Transferurile pot fi full duplex.
Numai un master SPI poate iniia un transfer. Masterul scrie un octet n registrul de transmisie SPI de undele datele merg ntr-un
registru de deplasare care le serializeaz i le transmite cu ceasul de transmisie. Transmisia se termin dup 8 tacte. n slave
datele intr n registrul de deplasare cu tactul de recepie, acelai cu cel de transmisie. Cnd au intrat 8 bii, caracterul intr
n registrul de date. Pentru a se evita erorile de vitez (sau de suprascriere)(Overrun) trebuie ca octetul din registrul de date
s fie citit nainte ca un alt octet s fie transmis din registrul de deplasare.
Pinii au urmtoarea semnificaie:
-SCK (Serial Clock) este ieire de tact pentru sincronizare;
-MOSI (Master Output Slave Input) este ieirea serial pentru MASTER;
-MISO (Master Input Slave Output) este intrarea serial pentru MASTER;
-/SS (Slave Select) selecteaz circuitul SLAVE i protejeaz MC dac dou circuite sunt master. Acest semnal activ dezactiveaz
la cellalt port SPI modul master.
11.Interfaa CAN (Controller Area Network)
Magistrala
Protocolul CAN a fost definit de
intern
BOSCH n 1991 pentru utilizarea
pe o magistral la autoturisme, Circuit pt. comanda Registre
unde s ndeplineasc condiii interfeei de
specifice: procesare n timp real, comand,
fiabilitate ntr-un mediu perturbat stare i
i pre mic. Serializare/ Gestionarea date
La transmisia CAN datele sunt deserializare erorilor
codificate pentru a fi trimise pe Magistrala
linie n cod NRZ, iar la fiecare CAN
grup consecutiv de 5 bii cu Transceiver
aceeai valoare logic se
Generare CRC
introduce un bit (deci o tranziie) TxEN Tx
care se extrage la decodificare. Registre de deplasare
Nivelele pe linie sunt numite
Inserare (recunoatere adres) MUX
dominant (0) i recesiv (1).
Transferul de date prin CAN se face cu Rx
cadre (blocuri de date) care sunt Introducerea biilor de
citite de toate dispozitivele VREF (Vcc/2)
sincronizare
cuplate la CAN dar sunt reinute Wakeup VREF
de acestea doar acelea care conin
adresa dispozitivului.
Fiecare dispozitiv CAN recepioneaz toate cadrele i dispune de un filtru de acceptan care selecteaz cadrul cu adresa proprie a
dispozitivului. n configuraie se pot aduga noi dispozitive, cu adres proprie, fr nici un efort. Dac cadrul recepionat este eronat,
toate dispozitivele CAN trimit un cadru de control care indic o eroare. Fiecare cadru eronat incrementeaz n dispozitiv un numrtor
de erori (care este decrementat de cadrele valide). Un numr de erori mai mare de o anumit limit produce decuplarea dispozitivului de
la magistrala CAN
Module interne de legtur cu
procesele analogice i cu afiarea
12. Convertorul A/D
Circuitul analogic de intrare const ntr-un multiplexor analogic i un convertor A/D de 8-10-12 bii cu aproximaii succesive (sunt cteva
MC cu convertor cu integrare, COP8). Tensiunea de referin pentru convertor i masa analogic sunt conectate prin pini speciali.
Convertorul este controlat de registrul de control, care selecteaz i canalul de conversie. Terminarea conversiei este semnalizat cu
un bit ACK tot n registrul de control, iar rezultatul conversiei este stocat n registrul de date. O conversie poate fi declanat n 3
feluri:
-start n operare normal i reintrare n operare normal;
-start n operare normal apoi intrare n mod inactiv (Idle);
-intrare n mod inactiv i declanarea unei conversii din exterior printr-un pin exterior.
De regul modul de conversie poate fi:
-conversie singular
-conversie continu
Decl.
Multiplexor conversie
Cu registrul de control se
ADC0
analogic poate programa:
ADC1 Convertor Analog
ADC2 -selecia canalului analogic
Digital
ADC3 dorit de la intrare la convertorul AD;
-se poate programa ca o
conversie s fie declanat de pinul
Selecie extern ;
START ACK Date
canal -se poate declana o
conversie;
Registru de control Registru de date -conine un bit care
semnaleaz c s-a terminat
conversia, care poate solicita o
cerere de ntrerupere;
BUS INTERN
13. Interfaa cu LCD
Generare matricial

Afiaj LCD grafic


DEM 64x128
Elementul principal al modulului l reprezint panoul de cristale
lichide de dimensiunea 128x64 puncte, acesta fiind controlat de
circuitele auxiliare (drivere) KS0107B care controleaz liniile,
iar doua circuite KS0108B pentru controlul coloanelor. De
asemenea modulul dispune de un convertor intern de tensiune
pentru generarea unei tensiuni negative necesar funcionrii
afiorului.
Semnale de comand:
CS1 semnal de selecie circuit de control segment stnga
CS2 semnal de selecie circuit de control segment dreapta
RS specifica daca se transmite o comanda sau date
R/W semnal de control pentru citire/ scriere
E semnal de validare
RSTB semnal de resetare modul
D Magistrala paralel de date de 8 bii
14. Sisteme de protecie i economie de energie
Vechile MC se alimentau de la +5V i mas. Noile tehnologii au permis obinerea circuitelor LV (Low Voltage) care se
alimenteaz cu 3,3V, iar tendina este de scdere n continuare a tensiunii de alimentare. Se observ c 3V se pot
obine de la 2 baterii n serie, deci s-au creat astfel posibiliti de realizare a controllerelor portabile. Pentru ca s nu
apar erori de utilizare, dac tensiunea de alimentare scade sub o anumit valoare (Brownout Voltage) circuitul se
reseteaz (iniializeaz) i rmne n aceast stare pn tensiunea revine la valoarea normal. Acest circuit de
protecie se numete protecie la subtensiune.
Pentru a realiza economia de energie, esenial n cazul alimentrii de la baterii de exemplu, un MC poate fi comandat
prin soft s treac n starea de ateptare (IDLE) sau n HALT. Prin intrarea n aceste stri memoria RAM nu-i
schimb coninutul i ieirile nu-i schimb valorile logice. Modul de ateptare nseamn ncetarea activitilor, cu
excepia:
oscilatorul;
ceasul de gard;
ceasul pentru modul de ateptare.
Curentul de alimentare n aceast stare este tipic 30% din curentul normal de funcionare. Din modul de ateptare se
poate iei prin RESET sau la un stimul exterior (o ntrerupere de la un dispozitiv de I/O). Ceasul pentru modul de
ateptare genereaz periodic ntreruperi pentru ca MC s verifice starea. Dac nu exist cereri de activare (Wake
Up), MC se ntoarce n starea de ateptare. Starea de HALT este asemntoare cu cea de ateptare. Capabilitatea
MIWU (Multi Input WakeUp) face ca un MC s poat fi trezit de una din mai multe cereri de ntrerupere
exterioare.
Ceasul de gard (Watchdog Timer) este o opiune recomandat n cazul sistemelor care pot avea o evoluie necontrolat
sau la punerea la punct a sistemului. Ceasul de gard este un circuit de temporizare care genereaz un RESET dup
un anumit interval dac programul a intrat de exemplu ntr-o bucl infinit.
Un circuit de protecie poate determina trecerea MC n stare de RESET dac ceasul de intrare are o valoare sub cea
permis. Circuitul de protecie care se numete monitor de tact poate fi activat/ dezactivat prin soft.
15. Criteriile pentru alegerea unui MC
Scopul principal al alegerii unui MC este obinerea calitii dorite cu un cost ct mai mic. Calitile dorite nseamn performan,
fiabilitate, caliti EMC (de compatibilitate electromagnetic cu mediul), iar costul total include costurile cercetrii, construciei,
testrii, reparrii produsului.

1.Posibilitatea folosirii n aplicaia dat


-este suficient un MC sau este nevoie de circuite
suplimentare 3.Disponibilitatea suportului de dezvoltare
-liniile de I/O sunt suficiente (un numr prea mic -asambloare
nseamn c aplicaia nu se poate face cu acest MC, iar un -compilatoare
numr prea mare nseamn un cost excesiv) -debuggere
-exist toate interfeele solicitate de aplicaie: I/O -module de evaluare
serial, convertoare A/D, D/A i nu exist interfee n plus -emulatoare n circuit
-exist capacitatea de memorare suficient:RAM, -analizoare logice
ROM 4.Ajutor din partea constructorului
-MC are viteza suficient pentru aceast aplicaie, -documentaie tehnic
se verific timpul necesar rulrii programului care trebuie -buletine de aplicaii
s fie mai mic dect intervalul de timp n care trebuie s -rapoarte despre prbleme de funcionare
reacioneze MC -software de utilizare
-alimentarea MC poate fi fcut din aplicaie (este -dac MC este folosit i de alii, atunci sunt formate
posibil ca aplicaia s fie portabil, atunci este nevoie de un grupuri de lucru care pot oferi ajutor
MC care s funcioneze la 3V 5.Seriozitatea constructorului
-preul acestui MC este bun (acceptabil) pentru -dac competena lui este demonstrat
aplicaia respectiv -stabilitate i fiabilitatea MC realizate
2.Disponibiltatea MC -viteza de livrare
-trebuie s fie disponibil n cantiti suficiente -numr de ani ca i constructor i rezultate financiare
-trebuie s fie n producia actual, dar i n viitor
pentru posibilitatea aprovizionrii n viitor
-disponibilitatea unor accesorii (convertoare A/D,
D/A, alimentatoare etc
16. Proiectarea sistemelor cu MC n vederea
siguranei n exploatare
Pot apare 2 categorii de probleme: aplicaia poate genera perturbaii (conduse sau radiate) sau poate fi susceptibil la
perturbaii (conduse sau radiate). Descoperirea unor probleme de EMI (Electromagnetic Interference) n timpul
produciei aplicaiei poate fi costisitor deoarece s-ar putea ca s fie necesar reproiectarea aplicaiei, de aceea este
necesar s se proiecteze n vederea EMC (Electromagnetic Compatibility).Perturbaiile sunt generate de
armonicile semnalelor digitale din circuit. Ele pot fi radiate de buclele de cablaj care se comport ca i antene sau
sunt conduse spre sursa de alimentare. Orice cale inductiv sau capacitiv pe traseul acestor armonici poate
provoca vrfuri de tensiune sau cderi de tensiune.

Prin metodele de programare defensiv se poate mbunti mult sigurana n funcionare, fr nici un hardware
suplimentar. Cteva din cele mai eficiente metode sunt:
-rencrcarea periodic a registrelor care comand pinii de I/O i a celor mai importante registre. Pinii de I/O sunt
legtura MC cu exteriorul, de aceea ei sunt supui perturbaiilor. Readucerea lor la nivele corecte micoreaz
probabilitatea ca o perturbaie s se propage n circuit.
-citirea repetat a semnalelor de intrare micoreaz riscul unei citiri greite. De exemplu citirea unui pin care este legat
la o tast de 3 ori la rnd la intervalul de timp normal pentru 3 citiri succesive, dac s-a citit aceeai valoare,
elimin posibilitatea unei perturbaii.
-dac exist locaii n RAM nefolosite, dup fiecare etap de rulare a programului se scrie un bit n RAM.. nainte de
rularea unei rutine critice se verific valoarea stocat n RAM i rutina se execut doar n cazul n care valoarea
din RAM este corect.
-dac ntr-o aplicaie exist memorie nefolosit, aceasta se umple cu instruciuni de salt ntr-un loc cunoscut pentru ca
un salt neprevzut n memorie datorat unei perturbaii s fie anulat de saltul n locul cunoscut, cu o anumit
probabilitate.
Exemple de sisteme cu MC realizate la proiect
Exemple de sisteme cu MC realizate la proiect
Mediu de dezvoltare pentru MCS 51

Franklin Software
Exemplu de programare MCS 51

ORG 8000h
nop
mov P0,#0Fh
nop
mov P0,#00h
end
Mediu de dezvoltare pentru ATMEL RISC

AVR STUDIO
Mediu de
dezvoltare
pentru PIC

MPLAB
Arduino
Cel mai simplu de construit un sistem pe baz de microcontroller este cu
prin utilizarea modulelor Arduino. Exist doi mari furnizori:
www.robofun.ro
www.teguna.ro
Se pot cumpra o mare diversitate de sisteme de dezvoltare, traductori i
elemente de execuie.

Dou exemple de sisteme


de dezvoltare:
Arduino Leonardo
(stnga) cu ATMega 32 i
Arduino Due cu
microcontroller ARM pe
32 de bii (dreapta)
Senzori de la Arduino
Senzorul de distan cu ultrasunete HC-SR04 este un senzor de distan fr contact care funcioneaz pe principiul
ecolocaiei.
Senzor analog temperatur cu cablu senzor 3 pini Un senzor analog de temperatur cu cablu 3 pini (mam-mam)
pentru conectarea la un sensor shield. Acesta este un senzor simplu de temperatur cu precizie medie.
Senzor de lumin, Un senzor analog de lumin.
Senzor digital de temperatur TMP102. Acesta este un breakout pentru senzorul digital de temperatur TMP102 la
3,3V. TMP102 este un senzor digital (I2C sau DST) cu o rezoluie de 0.0625C i este exact pn la 0,5C. Senzorul
necesit foarte puin curent i are o sumedenie de funcii.
Un senzor de micare PIR (Passive Infrared) monitorizeaz emisiile n infrarou din cmpul su vizual i trimite
semnal ctre placa conectat atunci cnd detecteaz micare. Din punctul de vedere al platformei Arduino, un
senzor PIR se comport la fel ca un buton.
Senzor mecanic de nclinare. Senzorul de nclinare este o component care poate detecta inclinarea unui obiect. De
fapt, este exact echivalentul unui switch on-off activat de o bil metalic.
Accelerometru MMA7361. Accelerometrul MM7631, modul cu 3 axe, este folosit pentru citirea n timp real a
nclinrii. 3999 lein stocAdaug
Senzor temperatur i umiditate DHT11 cu cablu senzor 3 pini. Un senzor digital de umiditate i temperatur
(DHT11), plus un cablu cu trei fire mam-mam pentru conectarea modulului la un shield senzor.
Modul optocuplor. Un optocuplor detecteaz n mod optic prezena unui obiect opac ntre emitorul i detectorul de
lumin. Utilizat n mod frecvent pentru sisteme anti-efracie i pentru identificarea poziiei i/sau vitezei unui
ansamblu mobil (de exemplul capul unei imprimante cu jet de cerneal).
Senzor de sunet analog. Senzorul de sunet pentru Arduino utilizeaz un microfon pentru a detecta nivelul de zgomot i
scoate n mod constant un semnal proporional.
Senzori de la Arduino
Senzor non-invaziv curent 30A. Acest senzor non-invaziv de curent poate fi prins n
jurul unui cablu de alimentare pentru a afla ce curent trece prin acesta. Senzorul se
comport ca un inductor si msurnd cmpul magnetic generat de trecerea
curentului prin cablul msurat. Puteti calcula ce curent trece prin conductor citind
valoarea curentului indus n modul.
Modul senzor fum i gaze periculoase MQ-2 cu cablu senzor 3 pini. Un modul
senzor de fum i de gaze periculoase: GPL, propan, hidrogen, alcool, gaz metan
i fum. Senzorul este comercializat mpreun cu un cablu cu trei fire mam-mam
pentru conectarea modulului la un shield senzor.
Senzor de presiune barometric BMP085. Aceasta este o plac simpl ce conine
senzorul de presiune barometric BMP085 de nalt precizie i putere mic.
BMP085 ofer o plaj de msurare de la 300 pn la 1100 hPa cu o precizie
absolut de pn la 0,03 hPa. Este bazat pe tehnologia piezo-rezistiv pentru
rezistena la interferene, precizia ridicat, liniaritate mbuntit i stabilitate pe
termen lung.
Accelerometru TinkerKit 2/3 axe LIS344AL. Acesta este accelerometrul de la
TinkerKit, bazat pe LIS344ALH de la STMicroelectronics. Modulul are pini
pentru X i Y, dar se poate citi i Z prin lipirea unui fir n gaura marcat "Z" pe
plac.
Giroscop digital triaxial L3G4200D SPI/I2C. L3G4200D este un giroscop triaxial
digital, cu tensiune de alimentare ntre 3-5V. Acesta comunic serial prin SPI/I2C
Module de comunicaie Arduino
Modul Ethernet ENC28J60. Un modul Ethernet de sine stttor de dimensiuni foarte reduse.
Modul Bluetooth serial master-slave BC04. Un modul Bluetooth de dimensiuni reduse pentru
comunicaii seriale. Modulul trebuie alimentat la 3,3 V. Modul de lucru (master/slave) poate fi comutat
din software.
Modul USB CH375B. Acesta este un modul USB SPI la 5V care permite conectarea oricrui dispozitiv de
stocare USB la placa dumneavoastr Arduino. Firmware-ul chipset-ului suport nativ FAT32, FAT16 i
FAT12.
Transceiver radio nRF24L01+ cu RP-SMA. Modulul nRF24L01+ folosete un emitor/receptor de
2,4GHz de la la Nordic Semiconductor. Placa are un regulator de tensiune inclus (suport tensiuni de
alimentare ntre 3,3-7V si logic pe 3,3-5V), functie de auto-retransmisie si raz de 100m la 250kbps
(maxim 2Mbps la distante mai mici).
Modem Bluetooth - BlueSMiRF Silver. Aceast versiune de BlueSMiRF Silver folosete modulul RN-42,
care are o plaj mai mic dect a modulului RN-41, folosit de BlueSMiRF Gold. Aceste modemuri
funcioneaz ca un conductor serial (RX/TX). Orice flux de date serial de la 2400 la 115200 bps poate
fi trecut cu uurin dinspre computer ctre dispozitiv.
Kit conectare radio APC220. Un kit pentru conectare serial ntre orice dispozitiv electronic (e.g.
Arduino) i un PC. Kit-ul conine dou module transmisie wireless, dou antene i un modul de
conversie USB-TTL.
Transceiver easyRadio ERA900TRS. Acesta este modulul easyRadio ERA900TRS la 868MHz, cu
alimentare ntre 2,2-5,5V si care se comport la fel ca un port serial cu ltime de band ntre 2400-
115200 baud.
Module Arduino
Shield LCD + tastatur. Un shield care conine att un afiaj LCD monocrom 16x2 caractere ct i un set de ase
butoane (dintre care unul este reset). Util pentru dezvoltare, ntruct permite interfaarea simpl cu placa de
dezvoltare.
Shield Ethernet W5100. Acesta este un shield Ethernet compatibil cu Arduino Duemilanove (168 sau 328), 2009,
UNO, Mega (1280 sau 2560). Este suportat de biblioteca oficial Ethernet Arduino.
Ardumoto - shield driver motor. Noua versiune a acestui shield permite logic la 3,3V i 5V, o alimentare separat
i mai robust,
Shield LCD color 128x128. Shield-ul LCD color ofer posibiliatea de a conecta popularul LCD Nokia 6100 la
placa dvs. Arduino. Placa are integrat att un afisaj LCD color de 128x128 pixeli ct si un set de 3 butoane
conectate la pinii D3-D5.
Shield LOL 10mm (alb). Plac shield cu 126 de LED-uri de 10mm, de culoare alb. Shield compatibil pentru
sistemul Arduino. Placa folosete toi pinii digitali din Arduino (D2, ..., D13).
Shield-ul Xbee cu modul wireless este soluia complet pentru comunicare wireless pentru Arduino. Acesta poate
comunica la distane de pn la 30 m n interior sau 100 m n aer liber.
Shield Ethernet Arduino cu PoE. Shield-ul original de la Arduino cu PoE (Power over Ethernet). Acest shield
prezint i un slot pentru card micro-SD. Bazat pe chip Wiznet W5100.
Shield Arduino GSM cu anten integrat. Shield-ul Arduino GSM conecteaz placa dumneavoastr Arduino la
Internet folosind tehnologia GPRS. nfigeti acest modul n placa dumneavoastr Arduino, nfigeti un card SIM
de la un operator care ofer GPRS n zona dumneavoastr si folositi cteva instructiuni simple pentru a v
controla proiectele prin Internet! n plus, puteti face si primi apeluri de voce si veti putea primi si trimite mesaje
SMS.
Shield WiFi Arduino. Acest shield original Arduino permite conectarea la o reea WiFi cu ajutorul antenei
integrate.
Exemplu de aplicaie cu Arduino
Comanda unui motor pas cu pas

void loop(){
//rotate a specific number of
degrees
rotateDeg(360, 1);
delay(1000);
rotateDeg(-360, 0.1); //reverse
delay(1000);
//rotate a specific number of
microsteps (8 microsteps per
step)
//a 200 step stepper would take
1600 micro steps for one full
//revolution
rotate(1600, 0.5);
delay(1000);
rotate(-1600, 0.25); //reverse
delay(1000);
}
Proiect de diplom cu Arduino

Sistem mobil echipat cu un senzor de gaz, un modul Arduino cu microcontroller,


drivere pentru motoare de curent continuu i modul Bluetooth. Comanda de la
distan se face cu un telefon mobil, interfaa grafic a programului fiind
artat n dreapta.
Ct este de greu de construit un modul cu
microcontroller?
Ct este de greu de construit un modul cu
microcontroller. Exemplu de dispozitiv
de protecie la scurtcircuit
Consumator (de
exemplu un bec)

Microcontroller
Convertor
Reea Analog
Numeric Unitate prelucrare date

Releu comandat de
microcontroller

Microcontrollerul citete n bucl valoarea curentului i o compar cu o valoare de referin. Dac


curentul msurat este mai mare dect o anumit valoare microcontrollerul comand
ntreruperea circuitului cu un releu
Ct este de greu de construit un modul cu
microcontroller. Exemplu de dispozitiv
de protecie la scurtcircuit. Schema
logic a programului
De la convertorul analog
numeric (digital)
S presupunem c senzorul de curent cuplat la intrarea
convertorului Analog Numeric este calibrat astfel nct se IN
citete 00H la curent 0 i FFH la un curent de 15Amperi
i c dorim o limit de decuplare la 10Amperi. n schema
logic a programului se vede cum la primul pas se citete CMP
valoarea msurat a curentului, se compar apoi cu 0AH < >
0AH
(valoarea corespunztoare pentru 10A. Dac valoarea
msurat este mai mic dect 0AH, totul este n ordine i
se reia msurtoarea. Dac valoarea msurat este mai OUT decuplare reea
mare dect 0AH atunci microcontrollerul trimite un
semnal care decupleaz sarcina, oprind curentul. Se CALL bucl ntrziere
ateapt o perioad de timp dup care se reia alimentarea
sarcinii i bucla de program se reia, continund
OUT cuplare reea
supravegherea curentului.
Cum ajunge programul scris pe PC n
microcontroller?
La sfrit punei ce ai fcut ntr-o carcas