Documente Academic
Documente Profesional
Documente Cultură
[3]
2.2 Tipuri de procesoare
PROCESOARE CISC ȘI RISC
[3]
2.2 Tipuri de procesoare
Dezavantajele procesoarelor CISC
Diferențe foarte mari în lungimea diferitelor instrucțiuni, ceea
ce impune procesorului operații logice suplimentare (numărarea
octețiilor pentru citirea unei instrucțiuni, execuția secvențială a unui
număr diferit de microinstrucțiuni pe instrucțiune etc.);
Diferențe foarte mari între timpii de execuție iar viteza de execuție
trebuie corelată cu timpul de execuție al celei mai complexe
instrucțiuni;
Realizarea unității microcodate ocupă mult spațiu pe pastila de
siliciu;
Studiile statistice au arătat că, în aplicații, instrucțiunile complexe sunt
mult mai puțin frecvente decât cele simple (sub 10%) dar ele
penalizează întregul sistem;
2.2 Tipuri de procesoare
Avantajele procesoarelor RISC
utilizarea a unui set cu mai puține instrucțiuni simple;
eliminarea microcodului și implicit creșterea vitezei de lucru;
posibilitatea executării unei instrucțiuni pe un singur ciclu de tact;
Instrucțiuni cu aceiași lungime;
accesarea memoriei principale prin doar două instrucțiuni simple LOAD și
STORE;
simplificarea modurilor de adresare a memoriei prin arhitectura internă;
creșterea numărului de registre interne, ceea ce reduce numărul acceselor la
memoria principală;
utilizarea unui format de instrucțiune care elimină aproape complet
decodificatorul de instrucțiuni, simplificând mult structura procesorului (la
procesoare pe 32 sau 64 biți);
facilitarea paralelismuluiîn activitatea procesorului (procesoare pipeline);
reducerea consumului de energie pe procesor.
2.2 Tipuri de procesoare
Dezavantajele procesoarelor RISC
Sunt necesare compilatoare complexe pentru optimizarea codului;
Codul obținut prin compilare este mai mare.[3]
2.2 Tipuri de calculatoare
Clasificarea calculatoarelor
Prima clasificare a calculatoarelor poate fi făcută după familia de calculatoare
căreia ii apartine:
1. Mainframe-uri.
2. Minicalculatoare.
3 Microcalculatoare.
4.Supercalculatoare
Mainframe-urile sunt calculatoare mari şi foarte scumpe,specifice anilor 1960-
1970.Aceste calculatoare prezinta urmatoarele avantaje:
• Procesează date la vitze superioare,astfel încît pot rezolva sarcinile complxe mult
mai rapid.
• Drive-urile pot stoca mult mai multe date si manipula fişiere mai mari decît o pot
face sistemele mai mici.
• Sisemele de operare permit utilizarea simultană a acestora de către mai mulţi
utilizatori,prin intermediul utilizării tehnicii multiprogramării(utilizatorii sunt
conectati la calculator prin unitaăţi de tastatura şi ecran,numite terminale si unităţi
vizuale de afişare,VDU-visual dysplay units.[4]
2.2 Tipuri de calculatoare
Clasificarea calculatoarelor
1. Mainframe-uri.
.[4]
2.2 Tipuri de calculatoare
Clasificarea calculatoarelor
1. Minicalculatoare.
Minicalculatoarele sunt calculatoare cu vitze de 10 la a treia - 10 la a
cincea operaţii pe secunda,cu o lungime a cuvîntului mică(8,12,16 biţi).
În general sunt calculatoare ieftine şi sunt recomandate pentru
companiile mai mici.Un asemenea calculator este mai mic decît un
mainframe,capacitatea de stocare este mai mică şi nu permite atît de
mulţi utilizatori simultan ca un mainframe.Primul minicalculator cu
adevărat popular a fost PDP 8,lansat în 1965,şi produs de firma DEC-
Digital Eqipament Corporation.Alte exemple de
minicalculatoare:NOVA,DEC-VAX.familia d4 calculatoare româneşti
FELIX.Actualmente,liderul mondial in domeniul minicalculatoarelor este
IBM,cu peste 300.000 instalări,disponibil in mai multe variante(IBM AS
400 Aplication Sistem 400).[4]
2.2 Tipuri de calculatoare
Clasificarea calculatoarelor
2. Minicalculatoare.
2.2 Tipuri de calculatoare
Clasificarea calculatoarelor
3. Microcalculatoare.
Microcalculatoarele sunt calculatoare a căror unitate centrală este un
microprocesor. Primele microprocesoare au apărut în anii '70 dar s-au dezvoltat
mai ales în anii '80 şi continuă să evolueze; ele lucrează pe 8, 16 sau 32 de biţi
(cazul calculatoarelor folosite în prezent). Sunt sisteme interactive,
monoutilizator (la un moment dat sunt exploatate de un singur utilizator).
Microcalculatoarele s-au răspîndit curînd ca urmare a evoluţiei tehnologiei care a
redus foarte mult costurile lor de fabricaţie. De alftel, aceste costuri sunt în
continuă scădere iar performanţele evoluează tot mai mult.
Primele microcalculatoare au fost calculatoare personale familiale: Sinclair
Spectrum, Commodore sau cele românesti Prae, aMIC, HC, TIMS, Cobra. Aceste
calculatoare puteau lucra direct în limbajul Basic fiindcă memoria lor internă
cuprindea o parte care nu se ştergea în absenţa curentului electric si în care
utilizatorul nu putea scrie (ROM), unde era înregistrat din fabricaţie un
interpretor Basic (un program care traduce în limbaj masină şi execută fiecare
instructiune, o dată ce aceasta a fost scrisă). Cel mai uzual periferic al acestor
calculatoare era casetofonul, a cărui fiabilitate lăsa uneori de dorit.[4]
2.2 Tipuri de calculatoare
Clasificarea calculatoarelor
3. Microcalculatoare.
ICE Felix Fabrica de Calculatoare Bucureşti (ICEF) a fost înfiinţată în 1970 şi a început să
producă sisteme de calcul pe baza licenţelor achiziţionate de la compania franceză CII
(Franţa).
Pe calculatoarele Felix se lucrau toate statisticile şi se rulau toate programele
informatice din România înainte de 1989. ICE Felix a produs şi minicalculatoarele HC, un
tip de precursor al PC-urilor de azi.
2.2 Tipuri de calculatoare
Clasificarea calculatoarelor
3. Microcalculatoare.
Ulterior au apărut calculatoarele personale (PC) profesionale. Dintre primele
microcalculatoare profesionale românesti amintim: M18, M118, CUBZ, M216 (de
remarcat că acesta din urmă putea lucra atît sub sistemul de operare CP/M, cвt si
sub DOS); ulterior a apărut familia Felix PC. Pe plan mondial amintim calculatoarele
Apple MacIntosh, cu o interfaţă foarte prietenoasă cu utilizatorul, create mai ales
pentru neprofesionişti şi calculatoarele de tip IBM PC, care au înregistrat o evoluţie
tehnologică de-a dreptul spectaculoasă, bazată în principal pe evoluţia
microprocesoarelor (cele mai cunoscute sunt realizate de firma Intel). Creşterea
performantelor tehnice a fost îndeaproape urmată de evoluţia soft-ului, într-o
spirală din ce în ce mai dinamică.
Pentru calculatoarele personale cu performanţe ridicate, care sunt dotate cu cîte un
microprocesor mai puternic si un monitor de calitate оnaltă, cu facilităţi grafice
deosebite, se foloseste uzual denumirea destaţii de lucru (“workstations”). Cele mai
cunoscute staţii de lucru au fost create de firmele SUN, Hewlett-Packard şi DEC.
Staţiile de lucru se folosesc uzual pentru aplicaţii profesionale, dezvoltare de soft,
probleme care necesită facilităţi grafice performante, cum ar fi proiectarea
inginerească şi pot fi conectate în reţele de calculatoare.
2.2 Tipuri de calculatoare
Clasificarea calculatoarelor
3. Microcalculatoare.
Cel mai răspîndit sistem de operare al microcalculatoarelor este DOS, care are la
bază primul sistem de operare al microcalculatoarelor, CP/M, îmbunătăţit cu
principii din UNIX (cum ar fi structura arborescentă a directoarelor).
Datorită mediilor de programare, calculatoarele personale au devenit
instrumente de lucru mai convenabile pentru informaticieni. În plus, mai ales in
ultimul deceniu, produsele soft au evoluat foarte mult, dezvoltîndu-şi o interfaţă
din ce în ce mai accesibilă, care a atras tot mai mult şi utilizatorii
neprofesionişti. În acest sens, exemplul sistemelor Windows, devenite şi ele din
ce în ce mai performante, este foarte concludent. Astfel, calculatoarele
personale au devenit un instrument de prelucrare a informaţiei larg utilizat atît
pentru prelucrări de birotică, cît şi pentru aplicaţii profesionale. Adesea, pentru
crearea de sisteme de calcul cu performanţe mai ridicate si un cost relativ redus,
se optează pentru conectarea calculatoarelor personale în reţele de
calculatoare.[4]
2.2 Tipuri de calculatoare
Clasificarea calculatoarelor
4. Supercalculatoare.
Obiectele POO sunt de obicei reprezentări ale obiectelor din viața reală
(domeniul problemei), astfel încât programele realizate prin tehnica POO
sunt mai ușor de înțeles, de depanat și de extins decât programele
procedurale. Aceasta este adevărată mai ales în cazul proiectelor software
complexe și de dimensiuni mari, care se gestionează făcând apel la
ingineria programării.
2.4 Limbaje orientate pe obiecte
Limbajele care folosesc principii de POO).
C++ – Limbaj perfecte pentru a construi interfete grafice (GUI) si pentru a construi
jocuri de calculator folosind Unity.
JavaScript – JavaScript (adesea numit si JS) este un limbaj de programare orientat
obiect (POO) folosit pentru introducerea de functionalitati in pagini web. JavaScript
introduce un element de dinamica si varietate intr-o pagina web care (in momentul
incarcarii) este rulata direct de catre browser.
PHP – Realizarea Backend-ului pentru o pagina web interactiva, limbaj intalnit si in
inlocuirea Shell Script-ului pe Linux. Doua dintre framework-urile populare pentru
acest limbaj sunt Laravel si Symfony, de asemenea PHP-ul este adesea folosit
impreauna cu SQL-ul, limbaj folosit in programarea bazelor de date.
Java / C# / Swift – Limbaje destinate aplicatiilor mobile pentru Android, Microsoft
sau Apple.
Python, Perl, Ruby – Aceste trei limbaje, sunt catalogate ca limbaje de scripting,
deoarece sunt cel mai des intalnite in automatizari. Ultimul dintre acestea, Ruby,
poate fi folosit ca inlocuitor al PHP-ului, prin framework-ul Ruby on Rails, destinat
Web Developing-ului
Bibliografie
[1] https://ro.wikipedia.org/wiki/Limbaj_de_programare,
[2] https://ro.wikipedia.org/wiki/Mediu_de_dezvoltare
[3] https://ro.wikipedia.org/wiki/Limbaje_de_asamblare
[4]
[5] https://ro.wikipedia.org/wiki/C%2B%2B
[6] Doina Logofătu: Algoritmi fundamentali in C++. Aplicații, Ed. 1, Editura Polirom, Iași, 2007,
ISBN 9734600939.
[7] Schach, Stephen (2006). Object-Oriented and Classical Software Engineering, Seventh
Edition. McGraw-Hill.
[8] Abadi, Martin; Luca Cardelli (1998). A Theory of Objects. Springer-Verlag.
[9] Abelson, Harold; Gerald Jay Sussman, (1997). Structure and Interpretation of Computer
Programs. The MIT Press.
[10] Armstrong, Deborah J. (February 2006). "The Quarks of Object-Oriented Development".
Communications of the ACM 49 (2): 123–128. doi:10.1145/1113034.1113040. ISSN 0001-0782.
Retrieved 2006-08-08.
PROGRAMAREA PLATFORMELOR
ARDUINO
CURSUL 7
S.L.DR.ING. CORNELIUS DRUGA
7.1. COMUNICAREA USART
• [1]
7.1. COMUNICAREA SERIALĂ (RX/TX)
7.1. COMUNICAREA SERIALĂ (RX/TX)- USART
7.1. COMUNICAREA SERIALĂ (RX/TX)- USART
7.1. COMUNICAREA SERIALĂ (RX/TX)- USART
7.1. COMUNICAREA SERIALĂ (RX/TX)- USART
7.1. COMUNICAREA SERIALĂ (RX/TX)- USART
7.1. COMUNICAREA SERIALĂ (RX/TX)- USART
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.2. COMUNICAREA PRIN SPI (SERIAL PERIPHERAL INTERFACE
7.3. EMITĂTOR ȘI RECEPTOR RADIO PE 433MHZ
Modulul format din receptor și emitator RF poate fi utilizat impreuna cu plăci de dezvoltare
Arduino sau alte tipuri de microcontrollere pentru transmisia datelor la distanta. Este util în
proiectele inovative ale tale in care doresti sa transmiti diferite date dintr-o camera in alta
sau chiar la distanțe mai mari.
7.3. EMITĂTOR ȘI RECEPTOR RADIO PE 433MHZ
7.3. EMITĂTOR ȘI RECEPTOR RADIO PE 433MHZ
7.3. EMITĂTOR ȘI RECEPTOR RADIO PE 433MHZ
7.3. EMITĂTOR ȘI RECEPTOR RADIO PE 433MHZ
7.4. COMUNICARE ÎN IR
7.4. COMUNICARE ÎN IR
7.4. COMUNICARE ÎN IR
7.4. COMUNICARE ÎN IR
7.4. COMUNICARE ÎN IR
7.4. COMUNICARE ÎN IR
7.4. COMUNICARE ÎN IR
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.5. COMUNICARE ETHERNET
7.6. COMUNICARE I2C
7.6. COMUNICARE I2C
7.6. COMUNICARE I2C
7.6. COMUNICARE I2C
7.6. COMUNICARE I2C
2.3.BIBIOGRAFIE
1. Sebastian Radu Sabou –Indrumator laborator microcontrolere ARDUINO, Ed.U.T. PRESS,
Cluj-Napoca, 2018, pp.9-20.
[2] https://www.arduino.cc/en/Tutorial/DigitalPins
[3] Varlan Cosmin: Cursul 8- Comunicare, Facultatea de Informatica – Univ. “Al. I. Cuza” Iasi,
2016
[4] https://www.arduino.cc/en/Reference/SPI
[5] https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus#Mode_Numbers
[6] https://blog.adafruit.com/2012/08/17/raspberry-pi-arduino-spi-piday-raspberrypi-
raspberry_pi/
[7] http://electronics.stackexchange.com/questions/42197/making-two-arduinos-talk-over-
spi
[8] http://forum.arduino.cc/index.php?topic=222327.0
[9] http://labalec.fr/erwan/?m=201403&paged=2
[10] http://arduinobasics.blogspot.ro/2014/06/433-mhz-rf-module-with-arduino-
tutorial.html
[11] http://arduinobasics.blogspot.ro/2014/06/433-mhz-rf-module-with-arduino-
tutorial.html
PROGRAMAREA PLATFORMELOR
ARDUINO
CURSUL 6
S.L.DR.ING. CORNELIUS DRUGA
6.1.INTRĂRI- IEȘIRI DIGITALE
• Pinii microcontrolerului Atmega328 pot fi configurați ca și intrări sau ieșiri digitale, adică cu
nivele logice. Chiar si pinii analogici pot fi utilizati ca și intrări sau ieșiri cu nivele logice.
• Înainte de a fi utilizati este necesară configurarea pinilor ca fiind de intrare sau de ieșire.
În cazul platformei Arduino, implicit pinii digitali sunt configurați ca fiind de intrare, adică
sunt în starea de înaltă impedanță. Dacă se utilizează pinii astfel configurați si nu au
conectate alte componente care să le stabilească un nivel logic, există posibilitatea ca
nivelele logice ale pinilor să fie influențate de către mediul ambiant si să genereze
modificari ale nivelelor logice „citite”, rezistenta lor echivalenta de intrare fiind de ordinul
100 Mohm. Prin urmare este necesara stabilirea unui nivel logic stabil prinintermediul unor
componente electronice externe, pentru a fi siguri ca nu se obtin valori influentate de catre
mediu. Dacă pinii respectivi nu sunt utilizati în cadrul programului ca fiind intrări atunci nu e
necesară conectarea altor componente la acei pini. [1]
6.1.INTRĂRI- IEȘIRI DIGITALE
• Atunci când sunt utilizati ca si pini de intrare este recomandata utilizarea unor rezistente
externe, de valori de ordinul 10k, conectate la VCC sau la GND („pull -up” sau „pull-down”).
• Microcontrolerul Atmega328 din componenta platformei Arduino Uno are integrate rezistente
electrice de „pull -up”, care pot fi activate utilizând parametrul INPUT_PULLUP în cadrul
instructiunii de setare a tipului de pin (de intrare sau de iesire). Activarea acestor rezistente
interne de pull-up are ca efect, oarecum, inversarea comportamentului pinilor de intrare, în
sensul în care daca nu este active senzorul de la intrare (de exemplu un comutator) se va citi
valoarea HIGH iar când senzorul este activat se va citi valoarea LOW. Uzual valoarea
rezistentelor interne de pull-up este de ordinul 20k-50k dar difera si functie de tipul
microcontrolerului. Conectând un led la GND si la un pin digital (având activa rezistenta de pull
-up) este foarte probabil ca LED-ul sa lumineze suficient cât sa fie vizibil. În cazul în care se
activeaza rezistentele de pull-up, senzorii sau comutatoarele care se conecteaza la intrare
trebui sa fie active (sa comute la activarea lor) pe starea logica de LOW. [1]
6.1.INTRĂRI- IEȘIRI DIGITALE
• Utilizarea pinilor ca ieșire digitală implică utilizarea parametrului OUTPUT în instructiunea
pinMode(). Pinul configurat ca fiind de iesire poate furniza curent de maxim 40mA, fie în starea
LOW fie in starea HIGH. Ca urmare pot alimenta sau comanda diverse circuite electrice pentru
care este suficienta valoarea maximă suportata de circuitul intern al pinului respectiv. [1]
• Uzual se pot comanda direct LED-uri (cu ajutorul unei rezistente de limitare a curentului) dar nu
se pot comanda direct motoare care necesită curenți mai mari pentru functionarea lor.
• Unul din cele mai simple programe utilizate pentru initierea utilizarii mediului de
• programare Arduino IDE precum si pentru învatarea programarii platformei Arduino Uno este
programul “Blink”, are ca efect comanda unui LED realizând efectul de clipire.
6.1.INTRĂRI- IEȘIRI DIGITALE
Acest modulator PWM constă dintr-un generator în dinte de fierastrău (saw-tooth generator),
un amplificator de eroare şi un comparator.
Frecvenţa generatorului este setata de valoarea constantei de timp RC.
Amplificatorul de eroare compară tensiunea de referinţă şi semnalul de reacţie.
Semnalul de reacţie este obtinutţ de obicei, printr-o divizare a tensiunii de ieşire.
6.2. MODULAȚIA ÎN DURATA A IMPULSURILOR - PWM
• Tensiunea de la iesirea amplificatorului de eroare este comparata cu valoarea semnalului in
dinte de fierastrau. Daca iesirea acestuia este mai mare decat valoarea dintelui de fierastrau
atunci la iesirea comparatorului vom avea ‘1’ logic adica Ton.
• Daca iesirea amplificatorului este mai mica decat valoarea dintelui de fierastrau atunci la
iesirea comparatorului vom avea ‘0’ logic adica Toff. Formele de unda ale circuitului sunt
prezentate in figura de mai jos
6.2. MODULAȚIA ÎN DURATA A IMPULSURILOR - PWM
• Daca tensiunea de iesire tinde să crească, atunci tensiunea de reactie va creste peste
tensiunea de referință, astfel tensiunea de ieșire a amplificatorului de eroare va scădea
rezultand astfel o durată mai mică pentru care la iesirea comparatorului vom avea acel ‘1’
logic. Daca tensiunea de iesire scade atunci la iesire comparatorului vom avea o durata mai
mare de ‘1’ logic. Aceasta modificare a latimi impulsurilor in functie de tensiunea de iesire este
datorată factorului de umplere (duty-cicle).
• În cazul în care tensiunea de ieşire este constantă aceasta este menţinută de reacţia negativa la
valoarea dorita.
• PWM (Pulse Width Modulation) este o tehnica folosita pentru a varia în mod controlat
tensiunea data unui dispozitiv electronic. Aceasta metoda schimba foarte rapid tensiunea
oferita dispozitivului respectiv din ON în OFF și invers (treceri rapide din HIGH (5V de exemplu)
in LOW (0V).
6.2. MODULAȚIA ÎN DURATA A IMPULSURILOR - PWM
• Perioada de timp corespunzatoare valorii ON dintr-un ciclu ON-OFF se numește factor de
umplere (duty cycle) și reprezinta, în medie, ce tensiune va primi dispozitivul electronic. Astfel, se
pot controla circuite analogice din domeniul digital. Practic, asta înseamna ca un LED acționat
astfel se va putea aprinde / stinge gradual, iar în cazul unui motor acesta se va învârti mai
repede sau mai încet.
• În cazul unui motor, caruia i se aplica un semnal PWM cu factor de umplere de 0%, viteza de
rotație a acestuia va fi egala cu 0 rpm. Un factor de umplere de 100% va duce la o turație
maxima a acestuia.
• Factorul de umplere se exprima în procente și reprezinta cât la suta din perioada unui
• semnal acesta va fi pe nivelul ON. În Figura 1 se pot observa semnale PWM cu factori
• de umplere diferiți. Astfel, se poate deduce foarte ușor formula pentru a obține
• valoarea factorului de umplere (D):
6.2. MODULAȚIA ÎN DURATA A IMPULSURILOR - PWM
Explicații:
Un obiect șir este creat și i se atribuie o valoare (sau un șir)
în partea superioară a schiței (codului).
Se evaluează mai întâi expresia1. Dacă valoarea sa este adevărată, atunci expresia2 este
evaluată și expresia3 este ignorată. Dacă expresia1 este evaluată ca falsă, atunci
expresia3 se evaluează iar expresia2 este ignorată. Rezultatul va fi o valoare fie a
expresiei2, fie a expresiei3 în funcție de care dintre ei se evaluează ca Adevărat.
Operatorul condiționat se asociază de la dreapta la stânga.
2.2.ARDUINO- STRUCTURI DE TIP BUCLĂ- LOOPS
Instrucţiunile de ciclare (repetitive, iterative, etc) sunt utilizate în situaţia în care o anumită
secvenţă de cod trebuie executată de mai multe ori în mod consecutiv, numărul de repetiţii
fiind fix, stabilit iniţial, sau variabil, depinzând de rezultatul acţiunii repetate.
Limbajul C pune la dispoziţia programatorilor trei instrucţiuni de ciclare: while, do-while şi
for, toate trei utilizând pentru continuarea ciclării o condiţie de tip “cât timp este adevărat
că …”, diferenţa dintre ele fiind dată, în principal, de momentul testării condiţiei de ciclare:
în cazul instrucţiunii while testarea are loc înaintea fiecărei execuţii a acţiunii repetate
(testare anterioară), în cazul do-while testarea se face la reluare, după fiecare execuţie
(testare posterioară), iar în cazul instrucţiunii for testarea se face analog cazului while,
instrucţiunea for având însă prevăzută şi evaluarea unei anumite expresii înainte de fiecare
reluare, precum şi o secvenţă iniţială, executată înaintea intrării în ciclare.
Instrucţiunile repetitive păstrează controlul fluxului de execuţie al programului până când
are loc ieşirea din ciclare. O ieşire din ciclare poate fi normală, atunci când controlul este
preluat de următoarea instrucţiune din textul sursă în urma evaluării condiţiei de repetare a
ciclării, sau poate fi forţată, prin executarea unei instrucţiuni de salt aflate în corpul
instrucţiunii repetitive.
2.2.ARDUINO- STRUCTURI DE TIP BUCLĂ- LOOPS
Limbajele de programare oferă diverse structuri de control care permit căi de execuție
mai complicate. O instrucțiune tip buclă ne permite să executăm o declarație sau un grup
de declarații de mai multe ori. Următoarea este forma generală a unei instrucțiuni de tip
buclă în cea mai mare parte a limbajelor de programare.
2.2.ARDUINO- STRUCTURI DE TIP BUCLĂ- LOOPS
Limbajul de programare C oferă următoarele tipuri de bucle:
bucla while
bucla do while
bucla for
bucla nested
buclă infinită
A. While Loop - se va bucla continuu și la infinit până când expresia din interiorul parantezelor,
() devine falsă. Dacă starea variabilei testate nu se schimbă bucla while nu se va sfârși
niciodată. While este un ciclu/buclă cu test inițial.
Sintaxa buclei/ ciclului while este următoarea:
2.2.ARDUINO- STRUCTURI DE TIP BUCLĂ- WHILE LOOP
2.2.ARDUINO- STRUCTURI DE TIP BUCLĂ- WHILE LOOP
Instrucţiunea while îşi inserează în mod repetat în fluxul de execuţie instrucţiunea sa corp,
atât timp cât expresia-test este adevarată (are o valoare nenulă). Este asemănătoare cu
instrucţiunea if, cu diferenţa esenţială că instrucţiunea while păstrează controlul după
executarea instrucţiunii corp, reluând evaluarea expresiei-test. Controlul execuţiei trece la
următoarea instrucţiune din textul sursă al programului (dacă în corp nu sunt prevăzute
salturi) numai atunci când expresia test devine falsă (egală cu zero). Dacă expresia test
este falsă de la bun început, instrucţiunea corp nu este
executată niciodată.Tipul expresiei-test trebuie sa fie boolean sau scalar (număr sau
pointer, caz în care are loc conversia implicită la tipul bool) şi la evaluare sunt completate
toate efectele ei secundare înaintea luării deciziei de contiunare sau de terminare a
ciclării. Instrucţiunea-corp poate fi de orice tip (inclusiv o instrucţiune while), dar ca să
aibe sens utilizarea ei trebuie sa fie o instrucţiune efectivă şi nu o declaraţie, de exemplu.
De regulă, instrucţiunea corp este o instrucţiune compusă, conţinând
o secvenţă de cod care descrie acţiunea care trebuie repetată.
2.2.ARDUINO- STRUCTURI DE TIP BUCLĂ- DO WHILE LOOP
Bucla do ... while este similară cu bucla while. În bucla while, continuare
corpului buclei/ciclului este testată la începutul buclei înainte de a se efectua
corpul buclei.
În cazul do ... while se testează condiția de continuare a buclei după
executarea corpului buclei. Prin urmare, corpul buclei va fi executat cel puțin o
dată.
2.2.ARDUINO- STRUCTURI DE TIP BUCLĂ- FOR LOOP
Sintaxa: for (expresie-inițială; expresie-test; expresie-reluare)
Instrucțiunea for, cu o sintaxă mult mai complexă decât celelalte instrucțiuni de ciclare,
furnizează o scriere compactă a etapelor standard de execuție a unui proces iterativ:
inițializarea variabilelor înaintea startului, evaluarea testului de ciclare, execuţia acţiunilor
din corpul ciclului, actualizarea variabilelor implicate în expresia-test, reluarea testării.
Execuţia instrucţiunii for începe cu evaluarea expresie-iniţiale şi completarea tuturor
efectelor sale secundare. Expresia iniţială poate fi de orice tip, scopul ei este de
iniţializare a valorilor variabilelor implicate în ciclare (dacă trebuie facute mai multe
atribuiri se poate folosi operatorul virgulă, desigur). Ea este evaluată o singură dată,
imediat înainte de intrarea în ciclarea propriu-zisă. După evaluarea expresiei de
iniţializare se trece la evaluarea expresiei-test (şi completarea efectelor ei secundare).
Expresia test trebuie să fie de tip boolean sau scalar.
Dacă rezultatul evaluarii e fals execuţia instrucţiunii for se încheie aici, iar controlul este
preluat de următoarea instrucţiune din textul sursă.
2.2.ARDUINO- STRUCTURI DE TIP BUCLĂ- FOR LOOP
În cazul în care folosiți Arduino Nano, veți avea nevoie de un cablu USB (A la Mini-B),
așa cum se arată în imaginea următoare.
• Step 2: Download Arduino IDE Software. Puteți obține diferite versiuni ale IDE Arduino
din pagina de Download (Descărcare) de pe web site-ul Oficial Arduino. Trebuie să
selectați software-ul dvs., compatibil cu sistemul dvs. de operare (Windows, IOS sau
Linux). După terminarea descărcării fișierului, dezarhivați fișierul.
Pasul 3: Alimentați placa Arduino. Arduino Uno, Mega, Duemilanove, Leonardo și Arduino
Nano se alimentează automat de la conexiunea USB la computer, fie dintr-o sursă externă
de alimentare. Dacă utilizați un Arduino Diecimila, trebuie să vă asigurați că placa este
configurată corect pentru a se alimenta cu energie de la conexiunea USB (Sursa de
alimentare este selectată cu un jumper). Conectați placa Arduino la computer utilizând
cablul USB adecvat, astfel LED-ul de alimentare verde (PWR etichetat) ar trebui să fie
aprins.
Pasul 4: Rulați IDE-ul Arduino. După ce software-ul Arduino IDE este descărcat, trebuie să
dezarhivați dosarul. În interiorul dosarului, puteți găsi pictograma aplicației cu o etichetă
de infinit (application.exe). Faceți dublu clic pe pictograma pentru a rula IDE-ul.
Pasul 5: Deschideți primul proiect.
Aveți două opțiuni:
Creați un nou proiect.
Deschideți un exemplu de proiect existent.
Pentru a crea un nou proiect, selectați Fișier -> Nou.
Pentru a deschide un exemplu de proiect existent, selectați Fișier -> Exemplu ->
Elemente de bază -> Blink.
Pasul 6: Selectați placa dvs. Arduino.
Pentru a evita orice eroare în timpul încărcării programului pe placă, trebuie să selectați
corect modelul de placă Arduino folosit. Mergeți la Tools -> Board și selectați modelul plăcii.
Pasul 7: Selectați portul serial.
Selectați dispozitivul serial al plăcii Arduino. Accesați meniul Instrumente -> Port serial.
Pasul 8: Încărcați programul pe placa Arduino.
Înainte de a explica modul în care putem încărca programul nostru pe placă, trebuie să
prezentăm funcțiile fiecărui simbol care apare în bara de instrumente Arduino IDE.
INTRARE: -
IEȘIRE: -
RETURN: -
1.5 TIPURI DE DATE
• Tipurile de date din C se referă la un sistem extins utilizat pentru
declararea variabilelor sau funcțiilor de diferite tipuri. Tipul unei
variabile determină spațiul pe care îl ocupă în memorie și modul în
care este interpretat modelul de biți stocat.
• Următorul tabel oferă toate tipurile de date pe care le veți folosi în
timpul programarii platformelor Arduino.
1.5 TIPURI DE DATE
• VOID : Cuvântul cheie void este utilizat doar în declarațiile de funcții.
Acesta indică faptul că funcția se aștepta să nu returneze nicio
valoare/informație catre funcției din care a fost apelată.
• Boo
• Int: întregii sunt tipul principal de date pentru stocarea numerelor. Acest tip de date
stochează o valoare de 16 biți (2 byte). Se obține astfel un interval de la -32,768
la 32,767 (valoarea minimă de -2 ^ 15 și valoarea maximă din (2 ^ 15) - 1).
1.5 TIPURI DE DATE
• Int: Dimensiunea acestora variază de la placă la placă. Pe Arduino Due, de exemplu,
acest tip de date se memorează pe 32 de biți (4 byte). Astfel, se obține o gamă de
la -2,147.483.648 la 2.147.483.647 (o valoare minimă de -2 ^ 31 și o valoare
maximă de (2 ^ 31) - 1).
• Unsigned int : Ints-urile nesemnate (numere întregi nesemnate) sunt identice cu cele în
modul în care stochează un 2 octeți
• valoare. În loc să stocheze numere negative, acestea stochează doar valori pozitive,
• obținând un interval util de la 0 la 65.535 (2 ^ 16) - 1). The Due stochează o
valoare de 4 biți (32 biți), variind de la 0 la 4.294.967.295 (2 ^ 32 - 1).
1.5 TIPURI DE DATE
• Word: Pe Arduino Uno și pe alte platforme bazate pe ATMEGA, un cuvânt stochează
un număr fara semn pe 16 biți. Pe Arduino Due si Zero, stochează un număr fara semn
pe 32 de biți.
• Long: Variabilele de tip Long sunt variabile de mărime extinsă pentru stocarea
numărului și stochează pe 32 biți (4 octeți), de la 2.147.483.648 la 2.147.483.647.
1.5 TIPURI DE DATE
• Unsigned long : sunt variabile de mărime extinsă pentru stocarea numărului și
stocarea pe 32 biți (4 octeți). Spre deosebire de variabilele lungile standard (Long),
cele lungile fara semn (unsigned long) nu vor stoca numere negative, ceea ce face ca
intervalul lor sa fie de la 0 la 4.294.967.295 (2^32 -1).
• Double: Pe Arduino Uno și alte platforme bazate pe ATMEGA, acest tip de date
(numere reale cu dubla precizie) ocupă patru octeți. Pe Arduino Due, acest tip de date
ocupa 8-octeți (64 biți).
1.6 VARIABILE SI CONSTANTE
• După cum știm, în C++ variabilele despre care am învățat până acum trebuie declarate și odată cu
declararea li se alocă în memorie spațiu în conformitate cu tipul lor. Sistemul de operare alocă
fiecărui program, în memoria RAM, trei zone în care putem memora variabile:
• zona de date
• zona de stivă
• zona liberă (heap)
• O variabilă se caracterizează prin: clasa de memorare, vizibilitate, durata de viață, tipul variabilei
• Variabilele în limbajul de programare C/C++, pe care le utilizează si Arduino, au o proprietate
numită domeniu de aplicare. Un domeniu de aplicare este o regiune a programului și există trei
locuri unde pot fi variabile declarate:
• În interiorul unei funcții sau a unui bloc, caz in care se numesc variabile locale.
• În definirea parametrilor funcției, caz in care se numesc parametrii formali.
• În afara tuturor funcțiilor, caz in care se numesc variabile globale.
1.6 VARIABILE SI CONSTANTE
• Variabilele locale
Variabilele declarate în interiorul unei funcții sau bloc sunt numite variabile locale. Pot
fi folosite numai pentru enunțurile care se află în acea funcție sau bloc de cod.
1.6 VARIABILE SI CONSTANTE
• Variabilele globale: sunt definite în afara tuturor funcțiilor, de obicei în partea de sus a
programului. Variabilele globale își vor păstra valoarea pe toată durata de viață a
programului. O variabilă globală poate fi accesată de orice funcție. Adică este
disponibilă o variabilă globală pentru utilizare pe întregul program după declararea
acestuia.
1.7 OPERATORI
• Un operator este un simbol care îi spune compilatorului să efectueze anumite funcții
matematice sau logice. Limbajul C /C++ este bogată în operatori integrați și oferă
următoarele tipuri de operatori:
• Operatori aritmetici
• Operatori de comparație
• Operatori booleeni
• Operatori pe bit
• Operatori compuși.
1.7 OPERATORI
• Operatori aritmetici- Exemplu
1.7 OPERATORI
• Operatori comparatie- Exemple
1.7 OPERATORI
• Operatori comparatie-
Exemple
1.7 OPERATORI
• Operatori comparatie- Exemple continuare
1.7 OPERATORI
• Operatori booleeni
1.7 OPERATORI
• Operatori booleeni- Exemple
1.7 OPERATORI
• Operatori booleeni- Exemple continuare
1.7 OPERATORI
• Operatori pe biti
1.7 OPERATORI
• Operatori pe biti
1.7 OPERATORI
• Operatori pe biti
1.7 OPERATORI
• Operatori pe biti