Arduino Lectia 05
Arduino Lectia 05
Senzor de lumină
1
Lecția #5
Semnale. Senzor de
lumină
Figura 1
2
Semnale. Senzor de lumină
Figura 2
Figura 3
3
Lecția 5
citi. Pentru aceasta, ar trebui folosiți senzori, care în acest caz convertesc
temperatura într-o valoare a tensiunii. Aceste valori diferă de HIGH și
LOW, care caracterizează semnalele digitale, deoarece pot lua orice valoare
de la 0 la 5 volți, de exemplu, 0,3 volți, 3,27 volți, 4,99 volți. Acesta este un
semnal analogic, ia mult mai mult de două valori. Cantitatea de informații
transmise depinde doar de capacitățile microcontrolerului cu care vom lucra.
Microcontrolerul Arduino, de exemplu, poate distinge doar între 1.024 de
valori: de la 0 la 1023 (Figura 4).
Figura 4
Figura 5
4
Semnale. Senzor de lumină
Figura 6
Circuitul Tinkercad are un circuit gata făcut la care sunt deja conectate
o diodă și un fotorezistor. Să intrăm în bara de căutare „photorezistor", Și
adăugați schema Calibratione (Figura 7).
Figura 7
5
Lecția 5
Figura 8
Figura 9
6
Semnale. Senzor de lumină
Există deja cod pentru această schemă. Trebuie să-l eliminați pentru a
vă scrie programul. În primul rând, să adăugăm un element piezoelectric pe
placa, astfel încât să putem auzi un anumit sunet. Vom schimba tonul și
durata sunetului, în funcție de nivelul de iluminare. Conectați elementul
piezoelectric la pinul 8 (Figura 10).
Schema electrică:
Figura 10
void setup(){
pinMode(ledPin, OUTPUT); // Setăm ledPin - pin9 ca output
pinMode(pResistor, INPUT);// Setăm ledPin - pinA0 ca input
(optional)
7
Lecția 5
else{
digitalWrite(ledPin, HIGH); //LED on
tone(buzzerPin, 3000, 400);
8
Semnale. Senzor de lumină
Figura 11
Figura 12
9
Lecția 5
if (brightness > 0) {
// schimbăm luminozitatea prin bucla următoare:
brightness = brightness - fadeAmount;
if (brightness < 0) {
brightness = 0;
}
}
}
else{
…
10
Semnale. Senzor de lumină
Figura 13
//Variables
int value; // Stocăm valoare de la fotoresistor (0-1023)
11
Lecția 5
void setup(){
pinMode(ledPin, OUTPUT); // Setăm ledPin - pin9 ca output
pinMode(pResistor, INPUT);// pinA0 ca input (optional)
pinMode(buzzerPin, OUTPUT);// Setăm ledPin - pin0 ca output
pinMode (led, OUTPUT); // declar pinul 9 ca fiind o ieșire
}
void loop(){
value = analogRead(pResistor);
// setăm luminozitatea pinului 9:
analogWrite(led, brightness);
//Puteți schimbavaloarea "935"
if (value > 935){
digitalWrite(ledPin, LOW); //LED off
tone(buzzerPin, 2000, 50);
if (brightness > 0) {
// schimbăm luminozitatea prin bucla următoare:
brightness = brightness - fadeAmount;
if (brightness < 0) {
brightness = 0;
}
}
}
else{
digitalWrite(ledPin, HIGH); //LED on
tone(buzzerPin, 3000, 400);
Figura 14
Sau creați lămpi inteligente pentru iluminatul stradal care se vor aprinde
și stinge la un anumit nivel de iluminare (Figura 15).
Figura 15
13
Lecția 5
Figura 16
Codul sursă:
void setup() {
for(int thisPin =2; thisPin <8; thisPin++)
{
pinMode(thisPin, OUTPUT);
}
}
void loop()
{
// put your main code here, to run repeatedly:
for(int thisPin =2; thisPin<8; thisPin++)
14
Semnale. Senzor de lumină
{
digitalWrite(thisPin, HIGH);
delay(100);
digitalWrite(thisPin,LOW);
}
for(int thisPin=7;thisPin>=2;thisPin--)
{
digitalWrite(thisPin,HIGH);
delay(100);
digitalWrite(thisPin,LOW);
}
}
Exemplu de cod folosit:
for(i=1;i<=6;i++) //setează 1~6 pini de ieșire pe rând
pinMode(i,OUTPUT);/ /setează pinul ca ieșire
Figura 17
15
Lecția 5
Inițializarea are loc mai întâi și exact o dată. De fiecare dată prin buclă,
condiția este testată; dacă este adevărat, blocul de instrucțiuni și incrementul
este executat, atunci condiția este testată din nou. Când condiția devine
falsă, bucla se termină.
16
Semnale. Senzor de lumină
Lecția 5
Semnale. Senzor de lumină.
Toate drepturile asupra fișierelor foto, audio și video sunt protejate prin drepturi de autor, ale căror
fragmente sunt utilizate în material, aparțin deținătorilor lor legali. Fragmente de lucrări sunt
utilizate în scopuri ilustrative în măsura justificată de sarcina în cauză, în cadrul procesului
educațional și în scopuri educaționale, în conformitate cu art. 1274h. 4 din Codul civil al Federației
Ruse și art. 21 și 23 din Legea Ucrainei „Cu privire la dreptul de autor și dreptul total”. Volumul și
metoda lucrărilor citate respectă normele acceptate, nu aduce atingere utilizării normale a obiectelor
cu drepturi de autor și nu aduce atingere intereselor legitime ale autorului și ale titularilor de
drepturi. Fragmentele din lucrările citate în momentul utilizării nu pot fi înlocuite cu omologi
alternativi, fără drepturi de autor și, ca atare, îndeplinesc criteriile de utilizare loială și utilizare
loială.
Toate drepturile rezervate. Copierea completă sau parțială a materialelor este interzisă. Coordonarea
utilizării operelor sau a fragmentelor acestora se realizează cu autorii și deținătorii drepturilor de
autor. Utilizarea convenită a materialelor este posibilă numai cu indicarea sursei.
17