Tema 3.
Arduino
indice
1. Introducere în Arduino........................
2. La placa Arduino UNO........................
3. Programarea plăcii.......................................................................................................................................
4. Ieș iri digitale........................
1. Introducere în Arduino.
1. Ce este un microcontroler? Unde se utilizează?
Este o mică placă care funcționează ca creierul circuitului. În multe
mașini noi precum mașinile sau telefoanele mobile.
2. Explică ce vrea să spună că microcontrolerele urmează un schelet
intrare-proces-scoatere.
microcontrolerul primește un semnal de intrare și apoi microcontrolerul
procesează toată informația și apoi, în funcție de informația care există
receput și procesat va da un răspuns sau o ieșire
3. De ce sunt atât de folosite microcontrolerele?
pentru că sunt flexibile, ieftine, mici și consumă puțină energie
4. Ce este Arduino? La ce servește?
Este un microcontroler open source foarte utilizat. Pentru a trimite comenzi către o
mașină.
5. Care sunt obiectivele proiectului Arduino?
Să fie microcontrolerele accesibile pentru toată lumea
6. Ce înseamnă "software open source"? Și "hardware open source"? Au?
există vreo limită pentru acest tip de licențe?
că tot codul software-ului este publicat și poate fi preluat și modificat. Că
toate planurile, materialele și metodele de construcție. Da, ca tot ceea ce fac
alte companii diferite de Arduino trebuie să aibă un alt nume
7. Cum se numește cea mai folosită placă Arduino? Indică numele altor două.
placi Arduino.
Arduino UNO este cea mai folosită. Arduino Yún și Arduino Nano sunt alte plăci de la
marca
8. Ce sunt modulele Arduino? Dă 3 exemple.
Sunt periferice care se conectează la placă pentru a avea o utilizare. Există module de
senzori, module de electronică de putere, module de comunicații
9. Ce este IoT? Ce trebuie să faci pentru a folosi Arduino într-un sistem IoT?
conexiunile pe care le au diverse obiecte de zi cu zi cu internetul pentru a putea
controlați-le pe toate de pe un singur dispozitiv. Conectați un modul de internet
10. Ce este un 'oraș inteligent'? Oferă două exemple de sisteme de oraș inteligent.
un oraș care utilizează internetul obiectelor (IoT) pentru a îmbunătăți calitatea vieții.
De exemplu, autobuzele au localizatori pentru a ști când vor ajunge la destinație.
următoarea oprire și senzori de gaze pentru a ști cât de mult se poluează în oraș
11. La ce se folosește Arduino în industrie?
pentru a face prototipuri ale mașinilor, se utilizează Arduino ca
controler.
2. La placa Arduino UNO
1. Ce funcție îndeplinește microcontrolerul Arduino? Ce microcontroler
ai placa Arduino UNO?
Este este locul unde se păstrează un program și un circuit miniaturizat care procesează
informație. Are un Atmega328P de la Atmel.
2. Unde se păstrează programul care controlează placa Arduino UNO? Cum
Se creează acest program?
În microcontroler. Se creează în programul de calculator.
3. Pentru ce sunt folosite diferitele indicatoare luminoase de pe placa Arduino
UNO?
Ledul ON indică dacă este aprins sau nu, L-ul poate fi programat din program
de ordenador și ledurile TX și RX servesc pentru a indica dacă primește date sau nu
placă.
4. Ce funcție are butonul de reset?
Pentru a opri programul și a-l face să înceapă din nou
5. Ce trebuie făcut pentru ca o placă Arduino să funcționeze fără a fi
conectată la un calculator?
Trebuie să încărcați programul pe computer în memoria plăcii și să-l conectați la
o sursă de alimentare.
6. Cum putem alimenta circuite externe de 3,3 sau 5 V din placă
Arduino?
Conectându-l la pinii de putere ai plăcii și la GND
7. Pentru ce sunt folosite ieșirile digitale? Ce pini sunt ieșiri digitale în
Arduino UNO?
Pentru a controla actuatori externi. Sunt ieșiri digitale de la 0 la 13.
8. Explică cum funcționează exemplul de intrare analogică care există pe pagină
10.
La entrada analógica primește o tensiune care este detectată de placă și care
după care CPU-ul procesează informația și dă o valoare de la 0 la 1023
9. În ce diferă intrările analogice de intrările digitale?
că intrările digitale detectează doar 2 valori: 0 și 1, în timp ce intrările
analogicele detectează mult mai multe valori de tensiune.
10. Are there analog outputs on Arduino UNO? Justify your answer.
de fapt nu are ieșiri analoge, are doar simulări ale acestora.
3. Programare placa
1. Ce este IDE-ul Arduino? În ce diferă cele două versiuni?
salut?
Este programul care se folosește pentru a utiliza placa Arduino și a face programe pe ea.
Că una este pe web și cealaltă este un program de calculator
2. În ce două moduri se pot scrie comentarii în codul unui
programa de Arduino? Scrie un exemplu pentru fiecare dintre ele. Pentru ce
serveste pentru a comenta codul?
punând // când va ocupa doar o linie sau punând /* și așezând-o deasupra
sub comentarii
3. Ce este o funcție în programare? Care este diferența între funcție
setup și funcția loop de Arduino?
Sunt seturi de instrucțiuni care se execută atunci când sunt apelate din altă parte a
cod
4. Explică pentru ce sunt funcțiile pinMode(), digitalWrite() și delay().
pinMode servește pentru a spune dacă pinul este în modul de intrare sau în modul de ieșire,
digitalwrite pentru a schimba tensiunea unui pin și delay pentru a face să după
o acțiune așteaptă un timp determinat
5. Copiați codul programului de pe pagina 10 și explicați-l.
DigitalWrite (13, ÎNALT)
Întârziere (1000)
DigitalWrite (13, LOW)
Întârziere (1000)
primul lucru este să setezi pinul 13 la tensiune mare, apoi adaugă o comandă
pentru a aștepta un secund și apoi repetă același lucru, dar de data aceasta pune-l pentru
să nu aibă voltaj
6. Modifică programul de la întrebarea anterioară pentru a executa următoarele
acțiuni
1. Să se aprindă și să se stingă ledul foarte repede, la fiecare 200 de milisecunde.
DigitalWrite (13, MARO)
Întârziere (200)
DigitalWrite (13, SCĂZUT)
Întârziere (200)
2. Să se aprindă ledul timp de jumătate de secundă și să se stinge timp de un
al doilea.
DigitalWrite (13, ÎNALT)
Întârziere (500)
DigitalWrite (13, LOW)
Întârziere (1000)
3. Să se aprindă și să se stingă ledul timp de 1 secundă, dar doar de două ori.
total, nu repetat. Aceasta trebuie să se întâmple de fiecare dată când este aprinsă
apăsați butonul Reset. O sugerează: Funcția loop() trebuie să fie
gol
void setup() {
DigitalWrite (13, ÎNALT)
Întârziere (1000)
DigitalWrite (13, LOW)
Întârziere (1000)
7. Cum se transferă programul pe care l-am creat pe computerul nostru la
la placa Arduino?
conectându-l la usb și selectând portul
8. Ce este programarea vizuală? Citați numele unui editor de
programare vizuală pentru Arduino.
Este un tip de programare mai simplă care permite utilizarea Arduino-ului să fie
inclusiv și mai accesibil pentru oameni. Arduino Blocks este un program de
programare vizuală
4. Ieşiri digitale
Ce face microcontrolerul Arduino pentru a activa un actuator
conectat la una dintre ieșirile sale digitale?
Ceea ce face este să trimită un curent de 5V
2. Ce trebuie să pui într-un program Arduino pentru a activa ieșirea digitală
8? Și pentru a o dezactiva?
Trebuie să pui mai întâi pinMode(13, OUTPUT); și apoi trebuie să pui
digitalWrite(13, ÎNALT) și digitalWrite(13, JOASPRU).
3. Ce este o placă de testare sau protoboard? Desenează un schelet al acesteia.
conexiuni electrice interne pe care le are protoboard-ul de la practică.
este o placă care ne permite să conectăm diferite componente pentru a face un circuit
electronic
4. Desenează schema electrică a circuitului din practică și indică numele de
componentele.
5. Explică cum funcționează programul care controlează circuitul practicii
ceea ce face programul este să activeze ieșirea, să aștepte 1 secundă, să revină la
dezactivează-o și așteaptă un secunde din nou
6. Modifică programul pentru a face ca led-ul circuitului extern să clipească
la fiecare 250 milisecunde și testează-l pe placă.
void loop(){
digitalWrite(13, HIGH);
întârziere(250);
digitalWrite(13, LOW);
întârziere(250);
7. Pentru ce sunt folosite simulatoarele Arduino? Citează două dintre ele.
pentru a face teste fără a fi necesară asamblarea circuitului. Tinkercad și Wokwi.
8. Cum se poate aprinde și stinge un receptor care are o putere mare
utilizând Arduino?
Se poate realiza conectând un modul de putere
5. Iesiri digitale 2
1. Desenează schema electrică a circuitului practicii și indică numele de
componentele.
2. Pentru ce servește pinul GND în circuitul practicii?
pentru a conecta polii negativi
3. Spune dacă aceste afirmații despre circuitul practicii sunt adevărate sau nu:
a) Terminalele negative ale celor 3 leduri sunt conectate între ele și cu
pin GND
b) Terminalele pozitive ale celor 3 leduri sunt conectate între ele prin
de rezistori intercalati. fals, fiecare este conectat la un pin diferit
4. ¿Qué es un algoritmo? ¿Y un diagrama de flujo?
este fiecare pas pe care vrem să-l facă un program. Un diagrame de flux este
reprezentare grafică a unui algoritm.
5. Explică cum funcționează versiunea 1 a programului
Este un cod foarte simplu în care i se dă comanda să se aprindă, să aștepte și
a stinge fiecare dintre led-uri
6. Ce este o variabilă? Ce avantaj are punerea variabilei "timer" în
versiunea 2 a programului?
Este un valoare care se acordă unui cuvânt anume. Care este mai simplu decât
pune numărul
7. Ce este pagina de referință pentru limbajul de programare Arduino?
este un site unde putem vedea coduri ale limbajului scris.
8. Caută în ea ce două valori poate avea o variabilă de tip bool.
adevărat
9. Explică cum funcționează bucla for din versiunea 3 a programului.
Ceea ce face este să îi spună programului să schimbe pini între 2 și mai mic decât 5
10. Circuitul folosește ieșirile digitale 2, 3 și 4 pentru a controla LED-urile, cum
ar trebui să fie codul versiunii 3 a programului dacă se folosesc ieșirile
digitale 5, 6 și 7?
pentru (int thisPin = 5; thisPin < 8; thisPin++) {
[Link] aprinde secvențial ledurile de la dreapta la stânga,
Cum ar trebui să fie codul versiunii 3 a programului dacă vrem să
LED-urile se aprind de la stânga la dreapta?
pentru (int thisPin = 4; thisPin > 1; thisPin++) {
6. Intrări digitale 1
1. La ce sunt utile intrările digitale? Explică pe scurt cum funcționează.
servesc pentru ca Arduino să poată detecta ceea ce se întâmplă în exterior. Când
recepționează 5V de putere, pinul trimite această informație programului.
2. Pe Arduino, pini de intrare digitale sunt aceiași cu cei de ieșire.
ieșiri digitale, cum îi spui lui Arduino că un pin digital trebuie să funcționeze
ca intrare?
Se setează în mod pinMode (INPUT) pentru intrare și (OUTPUT) pentru ieșire.
3. Care sunt cei mai comuni senzori digitali?
sunt butoanele, senzorii de limită, magnetici, de înclinație și de
nivel de lichide.
4. Explică codul versiunii 1 a programului.
Ceea ce face codul este să-i spună că, dacă pinul 12 detectează puterea de intrare, pinul 2
de putere.
5. Modifică versiunea 1 a programului pentru a face ca ledul să fie întotdeauna activ.
aprins și se stinge când se apasă butonul. Scrie aici codul necesar.
butonStare = citireDigitală (pinButon);
dacă (stareaButonului == ÎNALTĂ) {
digitalWrite(ledPin, LOW);
în caz contrar {
digitalWrite(ledPin, ÎNALT);
6. Modifică versiunea 1 a programului pentru a crea o lumină temporizată. La apăsarea
odată butonul apăsat, ledul trebuie să se aprindă și să rămână aprins timp de
3 secunde. Când se termine acest timp, ledul trebuie să se stingă.
în mod automat, ca într-o lumină de scară. Pentru a realiza acest lucru trebuie să folosești
funcția delay(). Scrie aici codul necesar.
butonStare = citireDigitala (pinButon);
dacă (stareaButonului == ÎNALTĂ) {
digitalWrite(ledPin, HIGH);
întârziere (3000)
digitalWrite(ledPin, JOASĂ)
altfel {
digitalWrite(ledPin, LOW);
7. Explică cum funcționează bucla while în versiunea 2 a programului.
ce face bucla while este că, atâta timp cât butonul este apăsat, ledul se
întrețină și stinge
7. Intrări digitale 2
Senzorii magnetici și senzorii de final de curs pot fi folosiți
pentru a controla dacă o ușă este deschisă sau nu, cum funcționează?
funcționează detectând dacă sunt apăsate sau nu
2. Explică diagrama de flux de pe pagina 7.
în primul rând se verifică dacă sunt apăsate amândouă, dacă răspunsul este da atunci
se va arăta că cele două uși sunt deschise, dacă răspunsul este nu atunci se
va verifica dacă doar ușa unu este deschisă, dacă răspunsul este da, atunci se
va arăta că ușa 1 este deschisă, dacă nu se va verifica dacă ușa 2 este deschisă
și dacă răspunsul este da, se va arăta că ușa 2 este deschisă, dacă răspunsul este nu
se va arăta că cele două uși sunt închise și apoi se așteaptă un secund până la
repeti acest proces
3. În ce constă comunicația în serie? Ce cod trebuie să folosim?
programa pentru un placa Arduino pentru a iniția o comunicare serială cu
calculatorul la care este conectat.
Consistă în trimiterea informației în 0 și 1 către computer prin intermediul Arduino. Există
ce să pun [Link]
4. Ce este Monitorul serial al IDE-ului Arduino?
O fereastră de informații care ne arată informațiile care vin de la
Arduino
5. În ce constă structura de programare if... else if... else? Pune un
exemplu care să nu apară în miniunitate.
funcționează ca condiții pe care le impunem pentru a trimite o informație. dacă nu
se dă unul mai departe pentru a vedea dacă se creează condiții pentru a trimite
informație
6. Adaugă la circuitul miniunității un led care se aprinde când vreuna dintre
Ambele uși sunt deschise. Scrie aici codul necesar. Îți va fi de folos.
ajută să revizuiesc miniunitatea anterioară.
void loop()
întârziere(5000);
pulsador1 = digitalRead(7);
digitalRead(12);
dacă (pulsator1 == 0 && pulsator2 == 0) {
ușile 1 și 2 deschise
ton(10, 523, 1000);
digitalwrite(10, ÎNALT);
} altfel {
dacă (pulsator1 == 1 && pulsator2 == 1) {
ușile 1 și 2 închise
} altfel {
dacă (pulsador1 == 0) {
[Link]("ușa1 deschisă");
ton(10, 523, 1000);
DigitalWrite(10, ÎN ALTĂ PARTE);
dacă (pulsator2 == 0) {
puerta2 deschisă
tone(10, 523, 1000);
DigitalWrite(10, HIGH)
}
7. Modifică programul miniunității pentru a se comporta astfel: La
apăsați cele două butoane se afișează: "Ambele butoane sunt apăsate".
Când apăsați doar butonul 1: "Butonul 1 este apăsat". Când apăsați doar
Butonul 2 este apăsat.
butonul este apăsat". Scrie aici codul.
întârziere(5000);
digitalRead(7);
pulsador2 = digitalRead(12);
dacă (pulsator1 == 0 && pulsator2 == 0) {
2 butoane apăsate
ton(10, 523, 1000);
} altfel {
dacă (pulsator1 == 1 && pulsator2 == 1) {
[Link]("niciun buton apăsat");
} altfel {
dacă (pulsator1 == 0) {
[Link]("buton1 apăsat");
ton(10, 523, 1000);
dacă (pulsator2 == 0) {
[Link]("buton2 apăsat");
ton(10, 523, 1000);
}
8. Înlocuiește liniile 15 până la 26 ale programului din miniunitate cu următoarele
cod:
linie 15: dacă (stareaButon1 == LOW || stareaButon2 == LOW) {
linie 16: [Link]("Există uși deschise.");
linie 17: }
linie 18: altfel {
linie 19: [Link]("Nu sunt uși deschise.");
}
Ce înseamnă cele două linii verticale paralele după primul LOW?
Cum va funcționa acest program?
înseamnă că se poate da una sau cealaltă și că nu este necesar să se dea ambele
funcționează verificând dacă există o ușă deschisă, dacă da, atunci comunică că există
uși deschise deschise. Dacă nu, atunci spune că nu sunt uși deschise
8. Intrări analogice
1. În ce se diferențiază intrările analogice de intrările digitale?
în care intrările analogice detectează valori între 0 și 5 V, în timp ce cele digitale
detectează valoarea 0 sau 5
2.Câte intrări analogice are Arduino UNO? Care sunt pinii de la acestea?
intrări analogice?
au 6 intrări analogice. A0 A1 A2 A3 A4 și A5
3. Explică ce se întâmplă în simularea de pe pagina 2 atunci când urcăm sau coborâm.
intensitate luminosă. De ce spunem că un LDR este un senzor analogic?
cu cât mai multă lumină pătrunde în el, cu atât mai mult curent trece și ajunge la intrarea analogică. Da, deoarece
obține valori intermediare și nu valori 0 sau 1
[Link] este un potențiometru? Cum arată în interior?
Potentiometrul este o rezistență variabilă. În interior are o pistă rezistivă care leagă
terminal A cu C și o placă metalică rotativă atașată la B care freacă pista rezistivă.
[Link] este posibil să existe senzori de temperatură digitali dacă temperatura este
un parametru analogic?
pentru că sunt trimise codificate în cod binar.
6. La ce servesc funcțiile analogRead(), [Link]() și [Link]()?
pentru ca senzorul analogic să fie pus în modul de intrare, pentru ca comunicarea serială
între calculator și Arduino să fie la frecvența pe care o dorești și pentru ca Arduino
trimite un semnal către computer
[Link] sunt numerele care apar pe monitorul serial în practica 1? Ce
se întâmplă când se rotește axa potențiometrului?
tensiunea care ajunge la intrarea analogică. Fie că numerele și tensiunea cresc sau
scade în funcție de direcția în care ai rotit potentiometrul
[Link] se decide când se aprinde sau se stinge ledul în versiunea 1 a practicii
2?
Când tensiunea care ajunge la intrarea analogică este mai mare sau egală cu 512, ledul se stinge.
În caz contrar se oprește
9. În versiunea 2 a practicii 2, potențiometrul este înlocuit cu un LDR, în ce
schimbă comportamentul circuitului?
În care acum circuitul servește ca detector de lumină
10.Și la tensiunea pe care o primește o intrare analogică pe Arduino UNO este cuprinsă
între 0 și 5 V, dar microcontrolerul o "traduce" într-o valoare proporțională
înțeles între 0 și 1023, cum s-ar putea obține tensiunea care există în
intrare analogică pe baza valorii generate de microcontroler? Modifică-l
programa de la practică 1 pentru a arăta tensiunea. Dacă nu știi cum
rezolvă-l, uită-te la: [Link]/built-in-examples/basics/ReadAnalogVoltage.