2. Katse -Potentsiomeetri kasutamine-
// C++ code
//
int sensorPin = 0;
int ledPin = 13;
int sensorValue = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin); // loeb analoog sisendi väärtust ja saadab tagasi täisarvu vahemikus 0 kuni 1023. See tähendab 10 bitilist täpsust (2^10 = 1024).
digitalWrite(ledPin, HIGH);
delay(sensorValue);
digitalWrite(ledPin, LOW);
delay(sensorValue);
float voltage = sensorValue * (5.0 / 1023.0); // konverteerime väärtuse (0 - 1023) ja tagastab (0 - 5V):
Serial.println(voltage); // Saadud tulemused kirjutame Serial Monitori.
}

Ülesanne 2 Гирлянда-Valguskett
Kasutatud komponenid:
3 punane, roheline, kollane LED (kokku 9)
9 takesti 220 B
14 juhed
1 plaat ARDUINO UNO
1 potentsiomeeter
1 breadboard big

Töö protsess:
Koostage “Garland” skeem veebilehel “Tinkercad”.
Samal ajal teeme märkmeid
Programmeerime “Garland” käitumist.
Testimine
Paneme “Garland” kokku.
Viiakse töötav kood üle tahvlile
Testige prototüüpi
Parandage tulemus.
Rakendused
Rakendused
- Valgustuse heleduse reguleerimine ruumis
- Helitugevuse reguleerimine
- Millegi võimsuse reguleerimine
- Seadme töörežiimide vahetamine
- Ja nii edasi
SKEEM:

Programm:
// C++ code
//
int sensorPin = 0;
int ledred1 = 13; //red
int ledblue1 = 12; //blue
int ledgreen1 = 11; //green
int ledred2 = 10; //red
int ledblue2 = 9; //blue //свето диоды которые мы используем
int ledgreen2 = 8; //green
int ledred3 = 7; //red
int ledblue3 = 6; //blue
int ledgreen3 = 5; //green
int lamps[9] = {ledred1,ledblue1,ledgreen1,ledred2,ledblue2,ledgreen2,ledred3,ledblue3,ledgreen3};//список из наших светодиодов
int sensorValue = 0;//значение потенциометра
int Value_new;
void setup()
{
pinMode(ledred1,OUTPUT);
pinMode(ledred2,OUTPUT);
pinMode(ledred3,OUTPUT);
pinMode(ledblue1,OUTPUT);
pinMode(ledblue2,OUTPUT);
pinMode(ledblue3,OUTPUT);
pinMode(ledgreen1,OUTPUT);
pinMode(ledgreen2,OUTPUT);
pinMode(ledgreen3,OUTPUT);
}
void loop() //цикл в которм запускается прграмма
{
Value_new = analogRead(sensorPin);
Value_new = map(Value_new,0,1023,1,7);
if (Value_new == 1)
{
red();
}
else if (Value_new == 2)
{
blue();
}
else if (Value_new == 3)
{
green();
}
else if (Value_new == 4)
{
transfusion();
}
else if (Value_new == 5)
{
waves();
}
else if (Value_new == 6)
{
blinking();
}
}
void red()//моргают все красные диоды
{
digitalWrite(ledred1, HIGH);
digitalWrite(ledred2, HIGH);
digitalWrite(ledred3, HIGH);
delay(500);
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, LOW);
delay(500);
}
void blue()//моргают все синие/желтые диоды
{
digitalWrite(ledblue1, HIGH);
digitalWrite(ledblue2, HIGH);
digitalWrite(ledblue3, HIGH);
delay(500);
digitalWrite(ledblue1, LOW);
digitalWrite(ledblue2, LOW);
digitalWrite(ledblue3, LOW);
delay(500);
}
void green()//моргают все зеленые диоды
{
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledgreen2, HIGH);
digitalWrite(ledgreen3, HIGH);
delay(500);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledgreen3, LOW);
delay(500);
}
void transfusion()//по очередно загораются все диоды
{
for (int i = 0; i <= 9; i++)
{
digitalWrite(lamps[i], HIGH);
delay(100);
}
for (int i = 0; i <= 9; i++)
{
digitalWrite(lamps[i], LOW);
delay(100);
}
}
void waves()
{
for (int i = 0; i <= 3; i++) //цикл моргания от одного до четырех
{
digitalWrite(lamps[i], HIGH);
delay(100);
for (int i = 8; i >= 4; i--)//цикл моргания от 9 до 5
{
digitalWrite(lamps[i], HIGH);
delay(100);
}
for (int i = 8; i >= 4; i--)//цикл моргания от 9 до 5
{
digitalWrite(lamps[i], LOW);
delay(100);
}
}
for (int i = 0; i <= 3; i++)////цикл моргания от 1 до 2
{
digitalWrite(lamps[i], LOW);
delay(100);
}
}
void blinking()//поочерёдное мигание лампочек через 1
{
//0-2,1-3,4-6,5-7,8
digitalWrite(lamps[0], HIGH);
digitalWrite(lamps[2], HIGH);
delay(500);
digitalWrite(lamps[0], LOW);
digitalWrite(lamps[2], LOW);
delay(500);
digitalWrite(lamps[1], HIGH);
digitalWrite(lamps[3], HIGH);
delay(500);
digitalWrite(lamps[1], LOW);
digitalWrite(lamps[3], LOW);
delay(500);
digitalWrite(lamps[4], HIGH);
digitalWrite(lamps[6], HIGH);
delay(500);
digitalWrite(lamps[4], LOW);
digitalWrite(lamps[6], LOW);
delay(500);
digitalWrite(lamps[5], HIGH);
digitalWrite(lamps[7], HIGH);
delay(500);
digitalWrite(lamps[5], LOW);
digitalWrite(lamps[7], LOW);
delay(500);
digitalWrite(lamps[8], HIGH);
delay(500);
digitalWrite(lamps[8], LOW);
delay(500);
}
Video:
Uued funktsioonid:
sensorPin: Arduino analoogsisendi pinna number, millelt soovitakse andmeid lugeda (nt A0, A1, A2 jne).
analogRead(): Arduino funktsioon, mis loeb analoogsisendi pinna pinge väärtust. Tagastab väärtuse vahemikus 0 kuni 1023, olenevalt sisendpingest.
map(): Arduino funktsioon, mis teisendab ühe vahemiku väärtusi teise vahemikuks. Näiteks kasutatakse seda sageli analoogsisendi väärtuste kohandamiseks teisele skaalale. Funktsioon võtab argumendiks alg- ja sihtvahemiku piirid ning teisendatava väärtuse ning tagastab vastava väärtuse sihtvahemikus.