MICROCONTROLLERE Privire general Petre Ogruan octombrie 2016 Ce
MICROCONTROLLERE Privire generală Petre Ogruţan, octombrie 2016
Ce este un microcontroller? Un microcontroller este un calculator pe un singur chip, dedicat unei aplicaţii. Un PC este mai rapid, are memorie mai mare şi se pot face mai multe aplicaţii. Un microcontroller este mai mic şi mai ieftin.
Unitatea centrală execută instrucţiunile din memoria program, pe care le primeşte prin magistrala de date. Structura Harvard este posibilă şi răspândită la MC pentru că de regulă instrucţiunile sunt stocate în memoria ROM iar datele în cea RAM. Fiecare MC are un controller de întreruperi şi unele au controller de DMA care admit atât intrări din exterior cât şi de la modulele interne. Modulele de I/O pot fi seriale sau paralele. 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 (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 văzute de UC ca locaţii de memorie (la familia Motorola) sau ca dispozitive de I/O într-un spaţiu de adresare separat (MCS 51). De regulă structura de bază a familiei conţine anumite interfeţe considerate foarte importante (timer, canal serial UART) şi linii de I/O grupate în porturi paralele de uz general. Pe structura de bază se adaugă diferite tipuri de interfeţe care împart liniile de I/O cu porturile paralele de uz general. 1 a. Structura Unitate centrală Unitate aritmetică şi logică Registre interne Memorie pentru programe Memorie pentru date (ALU) BUS INTERN Controller de întreruperi RS Controller DMA PORT RC RD Intrări/ ieşiri de date Seriale/ Paralele
1 b. Structura internă a unui microcontroller
2. Unitatea centrală este formată din ALU şi un set de regiştri interni, similari unor locaţii de memorie, folosiţi pentru memorarea unor date des folosite sau pentru programarea unor anumite funcţii. Diferitele familii de MC folosesc seturi diferite de regiştri. Există însă câţiva regiştri comuni: A (Accumulator) registrul acumulator care este folosit deseori pentru a stoca un operand şi rezultatul unei operaţii aritmetice. I registru de index, folosit la adresări indirecte. S registru de stare, care conţine indicatorii de stare: Carry, Zero etc. PC (Program Counter) este stocată adresa următoarei instrucţiuni de executat. După un RESET (iniţializarea MC), registrul PC se încarcă dintr-o locaţie de memorie numită vector de reset. Această locaţie conţine adresa primei instrucţiuni de executat. După execuţia acestei prime instrucţiuni, PC se incrementează. SP (Stack Pointer) conţine indicatorul de stivă. Stiva este o memorie de tip LIFO, în care ultimul octet stocat este primul scos din memorie. Conţinutul acestui registru stabileşte adresa din memorie unde este definită stiva. UC Acumulator (CISC) Registre generale (RISC) ROM/PROM/EPROM (memoria program) Program Counter ALU Indicator de stivă Decodificare instrucţiuni RAM (memoria de date) Registru de stare Magistrală internă Magistrala de instrucţiuni pentru sisteme cu arhitectura Harvard
3. Magistrale Blocurile interne ale MC sunt legate între ele printr-o magistrală (bus) de date şi una de adrese. Mărimea acestor magistrale constituie una dintre caracteristicile cele mai importante ale unui MC. Arhitectura Von Neuman prevede existenţa unui bus unic folosit pentru circulaţia datelor şi a instrucţiunilor. Când un controller cu o astfel de arhitectură adresează memoria pe linia de date se pune întâi codul instrucţiunii apoi conţinutul memoriei, accesul fiind realizat în 2 paşi, deci destul de lent. Arhitectura Harvard prevede un bus separat pentru date şi instrucţiuni. Când instrucţiunea este pusă pe busul de instrucţiuni, datele de la instrucţiunea anterioară sunt pe busul de date. Structura MC este mai complexă, dar performanţele de viteză sunt mai bune. Magistrala de date şi cea de adrese pot fi 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 biţi). Magistrala multiplexată CLK linii multiplexate de adrese şi date la citire linii multiplexate de adrese şi date la scriere adrese date Magistrala nemultiplexată CLKOUT linii de adresă linii de date la citire linii de date la scriere
4. Memoria internă Tipuri de memorii Memoria ROM (Read Only Memory) este cea mai ieftină şi simplă memorie şi se foloseşte la stocarea programelor în faza de fabricaţie. Unitatea centrală poate citi informaţiile, dar nu le poate modifica. Memoria PROM (Programmable Read Only Memory) este similară cu memoria ROM, dar ea se poate programa de către utilizator. După posibilităţile de ştergere, această memorie poate fi de mai multe feluri: · OTP (One Time Programmable, PROM) nu se poate şterge sau reprograma. Preţul unui MC cu OTP este mic, viteza este bună, dar aplicaţiile sunt lipsite de flexibilitate. · Memoria EEPROM (Electrically Erasable Programmable Read Only Memory) poate fi ştearsă electric de către unitatea centrală, în timpul funcţionării. Ştergerea este selectivă, iar pentru reînscriere trebuie făcuţi mai mulţi paşi. Memoria este lentă şi numărul de ştergeri/ scrieri este limitat (tipic 10000). · Memoria FLASH EPROM este o soluţie mai bună pentru că poate stoca cantităţi mari de date, este mai rapidă dar permite mai puţine ştergeri şi reînscrieri. Memoria RAM (Random Access Memory) este o memorie volatilă care poate fi citită sau scrisă de unitatea centrală. Locaţiile 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 puţin RAM. Memorie RAM static alimentată de la baterie se foloseşte pentru stocarea nevolatilă a cantităţilor mari de date, la o viteză de acces mare şi cu un număr nelimitat de ştergeri şi reînscrieri. Observaţii -Stocarea programelor în memorii nevolatile permite ca MC să fie programat fără a fi scos din circuitul în care funcţionează (Field Programming/ Reprogramming). -Producătorii recomandă ca la producţii de volum mare să se folosească memoria ROM, care se înscrie la fabricant, cu mască, la producţii de volum mic să se folosească memoria OTP (PROM) iar pentru prototipuri să se folosească memoria EPROM. -Unele familii de MC tratează spaţiul de intrare ieşire ca şi memoria, iar altele au spaţii diferite de adresare pentru memorie şi spaţiul I/O. Tratarea unitară a acestor spaţii are avantajul simplităţii dar limitează numărul de locaţii de memorie adresate. Tratarea unitară este justificată de asemănările 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 informaţie se poate scrie/citi în memorie ca în figura de sus, celula de memorie fiind reprezentată sub forma unui bistabil D. Prin gestionarea cu aceleaşi semnale de comandă se pot citi/scrie date din porturile de I/O Starea internă a MC şi controlul MC se realizează tot prin intrări/ ieşiri de date ca în figura de sus, dar semnalele nu sunt scoase în exterior ci comandă funcţii interne în MC. Citirea stărilor şi controlul MC se fac prin intermediul regiştrilor interni de stare şi control. Un exemplu de registru de control este registrul care comandă sensul transferului la porturile de I/O. O linie dintr -un port este de ieşire dacă bitul corespunzător din registrul de direcţie este 1. O linie de intrare/ ieşire cu sensul controlat de o linie a registrului de direcţie este dată în figura de jos. Bit de date D Q WRITE C /Q Bit de direcţie Bit de date WRITE D Q Driver C /Q READ Bit de date Buffer Intrare/ Ieşire digitală
Module interne cu funcţii 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 număr programabil de ori cu un numărător de prescalare (timer de prescalare). Comanda funcţionării timerului se face cu un registru de control şi stare. Timerul este format din 3 module, a căror caracteristică este numărul de biţi: -numărător (timer) -registru de încărcare -registru de captură Modurile de lucru sunt următoarele: -mod numărător, în care Timerul numără tactul de la intrare şi la depăşire înscrie un bit în registrul de stare sau se poate cere o întrerupere. Dacă tactul este extern înseamnă că se face o numărare a evenimentelor externe. De regulă frontul activ se poate programa, adică să se facă o incrementare a numărătorului la front pozitiv sau negativ. -mod captură, în care un pin exterior poate comanda oprirea timerului şi încărcarea valorii la care a ajuns în registrul de încărcare. Acest mod poate fi folosit pentru măsurarea unei perioade de timp. Tact sistem (intern) Tact fără prescalare sau cu prescalare Alegere tact Tact de la un pin extern Prescalare Bit selecţie tact Biţi selecţie prescalare REGISTRU DE CONTROL ŞI STARE Mod de lucru Selecţie prescalare Depăşire Magistrală internă Timer 0 Registru de încărcare Numărător 8 -16 biţi Registru de captură Pin de captură din exterior Cerere de întrerupere
7. Ceas de gardă (Watch Dog) CLR Numărător Registru de control RESET 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ă numărătorul ajunge la capăt, semnalul de depăşire declanşează un RESET al circuitului. Este sarcina programatorului să scrie în registrul de control un cuvânt care va reiniţializa numărătorul. În cazul în care MC nu mai este sub controlul programului, el va fi resetat de către ceasul de gardă
8. Generator PWM T 2 Comparator pe 8 biţi Registru PWM Numărător Registru de prescalare T 1 Factorul de umplere este T 2/T 1 BUS INTERN Modulaţia impulsurilor în lăţime (Pulse Width Modulation) are multe aplicaţii, 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, stânga. Un canal PWM este reprezentat în figura de sus, dreapta. Frecvenţa de repetiţie este programată cu un registru de prescalare care generează un ceas pentru un numărător de 8/16 biţi. Conţinutul numărătorului este comparat cu cel al registrului PWM, dacă este mai mare ieşirea 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 funcţii de comunicaţii
9. Port serial asincron Cereri de întrerupere către UC Acest port este numit UART (Universal Asyncronous Receiver Transmitter), iar Motorola îl numeşte pentru MC proprii port SCI (Serial Communications Interface). Caracterele seriale sunt transmise sau recepţionate serial în registrele de transmisie sau recepţie. La recepţia unui caracter, acesta se încarcă în bufferul de recepţie şi se cere o întrerupere. La emisie, un caracter se introduce în bufferul de transmisie de unde este trecut în registrul de deplasare şi se transmite serial, cerându-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 numărător de 16 biţi (prescalare) şi apoi un numărător de 11 biţi. Comanda USART se realizează cu un registru de stare şi control Magistrala internă Registru de prescalare Buffer de transmisie Buffer de recepţie Rata Baud Registru de deplasare la transmisie Registru de deplasare la recepţie Tx. D Rx. D
10. Port serial sincron SPI MC master SPI MISO MOSI SCK /SS +1 Port I/O 0 1 2 /SS SCK MOSI MISO MC slave Cu portul SPI (Serial Peripheral Interface) se poate realiza o comunicaţie sincronă simplă, folosită de regulă pentru a transfera date între circuite pe aceeaşi placă cu MC. Un transfer bidirecţional 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 iniţia 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 recepţie, acelaşi cu cel de transmisie. Când au intrat 8 biţi, 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 următoarea semnificaţie: -SCK (Serial Clock) este ieşire de tact pentru sincronizare; -MOSI (Master Output Slave Input) este ieşirea 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 celălalt port SPI modul master.
11. Interfaţa CAN (Controller Area Network) Protocolul CAN a fost definit de BOSCH în 1991 pentru utilizarea pe o magistrală la autoturisme, unde să îndeplinească condiţii specifice: procesare în timp real, fiabilitate într-un mediu perturbat şi preţ mic. La transmisia CAN datele sunt codificate pentru a fi trimise pe linie în cod NRZ, iar la fiecare grup consecutiv de 5 biţi cu aceeaşi valoare logică se introduce un bit (deci o tranziţie) care se extrage la decodificare. Nivelele pe linie sunt numite dominant (0) şi recesiv (1). Transferul de date prin CAN se face cu cadre (blocuri de date) care sunt citite de toate dispozitivele cuplate la CAN dar sunt reţinute de acestea doar acelea care conţin adresa dispozitivului. Magistrala internă Circuit pt. comanda interfeţei Serializare/ deserializare Gestionarea erorilor Registre de comandă, stare şi date Magistrala CAN Transceiver Generare CRC Tx. EN Registre de deplasare Tx MUX Inserare (recunoaştere adresă) Rx Introducerea biţilor de sincronizare Wakeup VREF (Vcc/2) Fiecare dispozitiv CAN recepţionează toate cadrele şi dispune de un filtru de acceptanţă care selectează cadrul cu adresa proprie a dispozitivului. în configuraţie se pot adăuga noi dispozitive, cu adresă proprie, fără nici un efort. Dacă cadrul recepţionat este eronat, toate dispozitivele CAN trimit un cadru de control care indică o eroare. Fiecare cadru eronat incrementează în dispozitiv un numărător de erori (care este decrementat de cadrele valide). Un număr de erori mare de o anumită limită produce decuplarea dispozitivului de la magistrala CAN
Module interne de legătură cu procesele analogice şi cu afişarea
12. Convertorul A/D Circuitul analogic de intrare constă într-un multiplexor analogic şi un convertor A/D de 8 -10 -12 biţi cu aproximaţii succesive (sunt câteva MC cu convertor cu integrare, COP 8). 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 declanşată î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 declanşarea unei conversii din exterior printr-un pin exterior. De regulă modul de conversie poate fi: -conversie singulară -conversie continuă Decl. conversie Multiplexor analogic ADC 0 ADC 1 ADC 2 ADC 3 Selecţie canal Convertor Analog Digital START ACK Registru de control BUS INTERN Registru de date Date Cu registrul de control se poate programa: -selecţia canalului analogic dorit de la intrare la convertorul AD; -se poate programa ca o conversie să fie declanşată de pinul extern ; -se poate declanşa o conversie; -conţine un bit care semnalează că s-a terminat conversia, care poate solicita o cerere de întrerupere;
13. Interfaţa cu LCD Generare matricială Afişaj LCD grafic DEM 64 x 128 Elementul principal al modulului îl reprezintă panoul de cristale lichide de dimensiunea 128 x 64 puncte, acesta fiind controlat de circuitele auxiliare (drivere) KS 0107 B care controlează liniile, iar doua circuite KS 0108 B pentru controlul coloanelor. De asemenea modulul dispune de un convertor intern de tensiune pentru generarea unei tensiuni negative necesară funcţionării afişorului. Semnale de comandă: CS 1 semnal de selecţie circuit de control segment stânga CS 2 semnal de selecţie 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 biţi
14. Sisteme de protecţie şi economie de energie Vechile MC se alimentau de la +5 V şi masă. Noile tehnologii au permis obţinerea circuitelor LV (Low Voltage) care se alimentează cu 3, 3 V, iar tendinţa este de scădere în continuare a tensiunii de alimentare. Se observă că 3 V se pot obţine de la 2 baterii în serie, deci s-au creat astfel posibilităţi 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ă (iniţializează) şi rămâne în această stare până tensiunea revine la valoarea normală. Acest circuit de protecţie se numeşte protecţie la subtensiune. Pentru a realiza economia de energie, esenţială în cazul alimentării de la baterii de exemplu, un MC poate fi comandat prin soft să treacă în starea de aşteptare (IDLE) sau în HALT. Prin intrarea în aceste stări memoria RAM nu-şi schimbă conţinutul şi ieşirile nu-şi schimbă valorile logice. Modul de aşteptare înseamnă încetarea activităţilor, cu excepţia: ·oscilatorul; ·ceasul de gardă; ·ceasul pentru modul de aşteptare. Curentul de alimentare în această stare este tipic 30% din curentul normal de funcţionare. Din modul de aşteptare se poate ieşi prin RESET sau la un stimul exterior (o întrerupere de la un dispozitiv de I/O). Ceasul pentru modul de aşteptare generează periodic întreruperi pentru ca MC să verifice starea. Dacă nu există cereri de activare (Wake Up), MC se întoarce în starea de aşteptare. Starea de HALT este asemănătoare cu cea de aşteptare. Capabilitatea MIWU (Multi Input Wake. Up) face ca un MC să poată fi trezit de una din mai multe cereri de întrerupere exterioare. Ceasul de gardă (Watchdog Timer) este o opţiune recomandată în cazul sistemelor care pot avea o evoluţie 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 protecţie poate determina trecerea MC în stare de RESET dacă ceasul de intrare o valoare sub cea permisă. Circuitul de protecţie care se numeşte monitor de tact poate fi activat/ dezactivat prin soft.
15. Criteriile pentru alegerea unui MC Scopul principal al alegerii unui MC este obţinerea calităţii dorite cu un cost cât mai mic. Calităţile dorite înseamnă performanţă, fiabilitate, calităţi EMC (de compatibilitate electromagnetică cu mediul), iar costul total include costurile cercetării, construcţiei, testării, reparării produsului. 1. Posibilitatea folosirii în aplicaţia dată -este suficient un MC sau este nevoie de circuite suplimentare -liniile de I/O sunt suficiente (un număr prea mic înseamnă că aplicaţia nu se poate face cu acest MC, iar un număr prea mare înseamnă un cost excesiv) -există toate interfeţele solicitate de aplicaţie: I/O serial, convertoare A/D, D/A şi nu există interfeţe în plus -există capacitatea de memorare suficientă: RAM, ROM -MC are viteza suficientă pentru această aplicaţie, se verifică timpul necesar rulării programului care trebuie să fie mai mic decât intervalul de timp în care trebuie să reacţioneze MC -alimentarea MC poate fi făcută din aplicaţie (este posibil ca aplicaţia să fie portabilă, atunci este nevoie de un MC care să funcţioneze la 3 V -preţul acestui MC este bun (acceptabil) pentru aplicaţia respectivă 2. Disponibiltatea MC -trebuie să fie disponibil în cantităţi suficiente -trebuie să fie în producţia actuală, dar şi în viitor pentru posibilitatea aprovizionării în viitor -disponibilitatea unor accesorii (convertoare A/D, D/A, alimentatoare etc 3. Disponibilitatea suportului de dezvoltare -asambloare -compilatoare -debuggere -module de evaluare -emulatoare în circuit -analizoare logice 4. Ajutor din partea constructorului -documentaţie tehnică -buletine de aplicaţii -rapoarte despre prbleme de funcţionare -software de utilizare -dacă MC este folosit şi de alţii, atunci sunt formate grupuri de lucru care pot oferi ajutor 5. Seriozitatea constructorului -dacă competenţa lui este demonstrată -stabilitate şi fiabilitatea MC realizate -viteza de livrare -număr de ani ca şi constructor şi rezultate financiare
16. Proiectarea sistemelor cu MC în vederea siguranţei în exploatare Pot apare 2 categorii de probleme: aplicaţia poate genera perturbaţii (conduse sau radiate) sau poate fi susceptibilă la perturbaţii (conduse sau radiate). Descoperirea unor probleme de EMI (Electromagnetic Interference) în timpul producţiei aplicaţiei poate fi costisitor deoarece s-ar putea ca să fie necesară reproiectarea aplicaţiei, de aceea este necesar să se proiecteze în vederea EMC (Electromagnetic Compatibility). Perturbaţiile 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 vârfuri de tensiune sau căderi de tensiune. Prin metodele de programare defensivă se poate îmbunătăţi mult siguranţa în funcţionare, fără nici un hardware suplimentar. Câteva din cele mai eficiente metode sunt: -reîncărcarea periodică a registrelor care comandă pinii de I/O şi a celor mai importante registre. Pinii de I/O sunt legătura MC cu exteriorul, de aceea ei sunt supuşi perturbaţiilor. Readucerea lor la nivele corecte micşorează probabilitatea ca o perturbaţie să se propage în circuit. -citirea repetată a semnalelor de intrare micşorează riscul unei citiri greşite. De exemplu citirea unui pin care este legat la o tastă de 3 ori la rând la intervalul de timp normal pentru 3 citiri succesive, dacă s-a citit aceeaşi valoare, elimină posibilitatea unei perturbaţii. -dacă există locaţii î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 aplicaţie există memorie nefolosită, aceasta se umple cu instrucţiuni de salt într-un loc cunoscut pentru ca un salt neprevăzut în memorie datorat unei perturbaţii 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 8000 h nop mov P 0, #0 Fh nop mov P 0, #00 h 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 cumpăra o mare diversitate de sisteme de dezvoltare, traductori şi elemente de execuţie. Două exemple de sisteme de dezvoltare: Arduino Leonardo (stânga) cu ATMega 32 şi Arduino Due cu microcontroller ARM pe 32 de biţi (dreapta)
Senzori de la Arduino Senzorul de distanţă cu ultrasunete HC-SR 04 este un senzor de distanţă fără contact care funcţionează pe principiul ecolocaţiei. Senzor analog temperatură cu cablu senzor 3 pini Un senzor analog de temperatură cu cablu 3 pini (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ă TMP 102. Acesta este un breakout pentru senzorul digital de temperatură TMP 102 la 3, 3 V. TMP 102 este un senzor digital (I 2 C sau DST) cu o rezoluţie de 0. 0625°C şi este exact până la 0, 5°C. Senzorul necesită foarte puţin curent şi are o sumedenie de funcţii. Un senzor de mişcare PIR (Passive Infrared) monitorizează emisiile în infraroşu din câmpul său vizual şi trimite semnal către placa conectată atunci când detectează mişcare. 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 MMA 7361. Accelerometrul MM 7631, modul cu 3 axe, este folosit pentru citirea în timp real a înclinării. 3999 leiÎn stoc. Adaugă Senzor temperatură şi umiditate DHT 11 cu cablu senzor 3 pini. Un senzor digital de umiditate şi temperatură (DHT 11), plus un cablu cu trei fire mamă-mamă pentru conectarea modulului la un shield senzor. Modul optocuplor. Un optocuplor detectează în mod optic prezenţa unui obiect opac între emiţătorul şi detectorul de lumină. Utilizat în mod frecvent pentru sisteme anti-efracţie şi pentru identificarea poziţiei ş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 proporţional.
Senzori de la Arduino Senzor non-invaziv curent 30 A. 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 măsurând câmpul magnetic generat de trecerea curentului prin cablul măsurat. 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ă BMP 085. Aceasta este o placă simplă ce conţine senzorul de presiune barometrică BMP 085 de înaltă precizie şi putere mică. BMP 085 oferă o plajă de măsurare de la 300 până la 1100 h. Pa cu o precizie absolută de până la 0, 03 h. Pa. Este bazată pe tehnologia piezo-rezistivă pentru rezistenţa la interferenţe, precizia ridicată, liniaritate îmbunătăţită şi stabilitate pe termen lung. Accelerometru Tinker. Kit 2/3 axe LIS 344 AL. Acesta este accelerometrul de la Tinker. Kit, bazat pe LIS 344 ALH 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 L 3 G 4200 D SPI/I 2 C. L 3 G 4200 D este un giroscop triaxial digital, cu tensiune de alimentare între 3 -5 V. Acesta comunică serial prin SPI/I 2 C
Module de comunicaţie Arduino Modul Ethernet ENC 28 J 60. Un modul Ethernet de sine stătător de dimensiuni foarte reduse. Modul Bluetooth serial master-slave BC 04. Un modul Bluetooth de dimensiuni reduse pentru comunicații seriale. Modulul trebuie alimentat la 3, 3 V. Modul de lucru (master/slave) poate fi comutat din software. Modul USB CH 375 B. Acesta este un modul USB SPI la 5 V care permite conectarea oricărui dispozitiv de stocare USB la placa dumneavoastră Arduino. Firmware-ul chipset-ului suportă nativ FAT 32, FAT 16 şi FAT 12. Transceiver radio n. RF 24 L 01+ cu RP-SMA. Modulul n. RF 24 L 01+ foloseşte un emiţător/receptor de 2, 4 GHz de la la Nordic Semiconductor. Placa are un regulator de tensiune inclus (suportă tensiuni de alimentare între 3, 3 -7 V si logică pe 3, 3 -5 V), functie de auto-retransmisie si rază de 100 m la 250 kbps (maxim 2 Mbps la distante mai mici). Modem Bluetooth - Blue. SMi. RF Silver. Această versiune de Blue. SMi. RF Silver foloseşte modulul RN-42, care o plajă mai mică decât a modulului RN-41, folosit de Blue. SMi. RF Gold. Aceste modemuri funcţionează ca un conductor serial (RX/TX). Orice flux de date serial de la 2400 la 115200 bps poate fi trecut cu uşurinţă dinspre computer către dispozitiv. Kit conectare radio APC 220. Un kit pentru conectare serială între orice dispozitiv electronic (e. g. Arduino) şi un PC. Kit-ul conţine două module transmisie wireless, două antene şi un modul de conversie USBTTL. Transceiver easy. Radio ERA 900 TRS. Acesta este modulul easy. Radio ERA 900 TRS la 868 MHz, cu alimentare între 2, 2 -5, 5 V si care se comportă la fel ca un port serial cu lătime de bandă între 2400115200 baud.
Module Arduino Shield LCD + tastatură. Un shield care conţine atât un afişaj LCD monocrom 16 x 2 caractere cât şi un set de şase butoane (dintre care unul este reset). Util pentru dezvoltare, întrucât permite interfaţarea simplă cu placa de dezvoltare. Shield Ethernet W 5100. 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, 3 V şi 5 V, o alimentare separată şi mai robustă, Shield LCD color 128 x 128. Shield-ul LCD color oferă posibiliatea de a conecta popularul LCD Nokia 6100 la placa dvs. Arduino. Placa are integrat atât un afisaj LCD color de 128 x 128 pixeli cât si un set de 3 butoane conectate la pinii D 3 -D 5. Shield LOL 10 mm (alb). Placă shield cu 126 de LED-uri de 10 mm, de culoare albă. Shield compatibil pentru sistemul Arduino. Placa foloseşte toţi pinii digitali din Arduino (D 2, . . . , D 13). Shield-ul Xbee cu modul wireless este soluţia completă pentru comunicare wireless pentru Arduino. Acesta poate comunica la distanţe de până la 30 m în interior sau 100 m în aer liber. Shield Ethernet Arduino cu Po. E. Shield-ul original de la Arduino cu Po. E (Power over Ethernet). Acest shield prezintă şi un slot pentru card micro-SD. Bazat pe chip Wiznet W 5100. 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 câteva 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 Wi. Fi Arduino. Acest shield original Arduino permite conectarea la o reţea Wi. Fi cu ajutorul antenei integrate.
Exemplu de aplicaţie cu Arduino Comanda unui motor pas cu pas void loop(){ //rotate a specific number of degrees rotate. Deg(360, 1); delay(1000); rotate. Deg(-360, 0. 1); //reverse delay(1000); //rotate a specific number of microsteps (8 microsteps per step) //a 200 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, interfaţa grafică a programului fiind arătată în dreapta.
Cât este de greu de construit un modul cu microcontroller?
Cât este de greu de construit un modul cu microcontroller. Exemplu de dispozitiv de protecţie la scurtcircuit Consumator (de exemplu un bec) Reţea Convertor Analog Numeric Microcontroller Unitate prelucrare date Releu comandat de microcontroller Microcontrollerul citeşte în buclă valoarea curentului şi o compară cu o valoare de referinţă. Dacă curentul măsurat este mai mare decât o anumită valoare microcontrollerul comandă întreruperea circuitului cu un releu
Cât este de greu de construit un modul cu microcontroller. Exemplu de dispozitiv de protecţie la scurtcircuit. Schema logică a programului Să presupunem că senzorul de curent cuplat la intrarea convertorului Analog Numeric este calibrat astfel încât se citeşte 00 H la curent 0 şi FFH la un curent de 15 Amperi şi că dorim o limită de decuplare la 10 Amperi. În schema logică a programului se vede cum la primul pas se citeşte valoarea măsurată a curentului, se compară apoi cu 0 AH (valoarea corespunzătoare pentru 10 A. Dacă valoarea măsurată este mai mică decât 0 AH, totul este în ordine şi se reia măsurătoarea. Dacă valoarea măsurată este mai mare decât 0 AH atunci microcontrollerul trimite un semnal care decuplează sarcina, oprind curentul. Se aşteaptă o perioadă de timp după care se reia alimentarea sarcinii şi bucla de program se reia, continuând supravegherea curentului. De la convertorul analog numeric (digital) IN < CMP 0 AH > OUT decuplare reţea CALL buclă întârziere OUT cuplare reţea
Cum ajunge programul scris pe PC în microcontroller?
La sfârşit puneţi ce aţi făcut într-o carcasă
- Slides: 41