2.1 Vilgub

Kood:
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.
}
Funktsioonid:
map(sensorValue,0,1023,0,255)
– on funktsioon, mis teisendab muutuja sensorValue väärtuse uueks väärtuseks vahemikus 0 kuni 255, sõltuvalt sellest, milline väärtus sellel algselt oli (0 kuni 1023).- See funktsioon ütleb arduino kontrollerile, et ta adresseerib UART-liidese jadaporti, avab selle kirjutamiseks ja tellib kõik sündmused oma poolel (et saada andmeid).
Ülesanne 2 Valguskett:

https://www.tinkercad.com/things/cI4xWuqbIlG?sharecode=xRCKqZgWW0SIZ_SXlNbV7CS4cCeVor4eYmbsonKqVWQ
Ma kasutasin selle projekti jaoks:
- 9 värvilist LEDi
- 1 Arendusplaat
- 14 Juhtmed
- 1 Arduino Uno
- 9 takisti
- 1 Potentsiomeeter
Töö kirjeldus:
Alguses töötasime klassis välja potentsiomeetri põhimõtte. Daisy-chain režiimid lülitatakse “0-255” potentsiomeetri värava abil.
Näiteks punane muutub roheliseks ja roheline siniseks jne.
Kõik režiimid:
- Ainult roheline(green): Selles režiimis põlevad ainult rohelised LED-id.
- Ainult kollane(yellow): Selles režiimis põlevad ainult kollased LED-id.
- Ainult punane(red): Selles režiimis põlevad ainult punased LED-id.
- Multi: Selles režiimis lülitatakse sisse kolm LED-i ja 0,3 sekundit hiljem muutuvad järgmised kolm LED-i.
- Selles režiimis (offled) lülitatakse kõik LED-id kordamööda sisse, saadakse lambipirnide värvi sujuv muutus.
Kood:
int SENSOR_PIN = 0;
int SENSOR_VALUE = 0;
int LED_RED = 13;
int LED_GREEN = 12;
int LED_YELLOW = 11;
int LED_RED2 = 10;
int LED_GREEN2 = 9;
int LED_YELLOW2 = 8;
int LED_RED3 = 7;
int LED_GREEN3 = 6;
int LED_YELLOW3 = 5;
int VALUE_NEW;
void setup()
{
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_RED2, OUTPUT);
pinMode(LED_GREEN2, OUTPUT);
pinMode(LED_YELLOW2, OUTPUT);
pinMode(LED_RED3, OUTPUT);
pinMode(LED_GREEN3, OUTPUT);
pinMode(LED_YELLOW3, OUTPUT);
Serial.begin(9600);
}
void green()
{
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_GREEN2, HIGH);
digitalWrite(LED_GREEN3, HIGH);
delay(100);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_GREEN2, LOW);
digitalWrite(LED_GREEN3, LOW);
delay(100);
}
void yellow()
{
digitalWrite(LED_YELLOW, HIGH);
digitalWrite(LED_YELLOW2, HIGH);
digitalWrite(LED_YELLOW3, HIGH);
delay(100);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_YELLOW2, LOW);
digitalWrite(LED_YELLOW3, LOW);
delay(100);
}
void red()
{
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_RED2, HIGH);
digitalWrite(LED_RED3, HIGH);
delay(100);
digitalWrite(LED_RED, LOW);
digitalWrite(LED_RED2, LOW);
digitalWrite(LED_RED3, LOW);
delay(100);
}
void multi()
{
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_YELLOW, HIGH);
digitalWrite(LED_RED, HIGH);
delay(150);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED, LOW);
delay(150);
digitalWrite(LED_GREEN2, HIGH);
digitalWrite(LED_YELLOW2, HIGH);
digitalWrite(LED_RED2, HIGH);
delay(150);
digitalWrite(LED_GREEN2, LOW);
digitalWrite(LED_YELLOW2, LOW);
digitalWrite(LED_RED2, LOW);
delay(150);
digitalWrite(LED_GREEN3, HIGH);
digitalWrite(LED_YELLOW3, HIGH);
digitalWrite(LED_RED3, HIGH);
delay(150);
digitalWrite(LED_GREEN3, LOW);
digitalWrite(LED_YELLOW3, LOW);
digitalWrite(LED_RED3, LOW);
delay(150);
}
void multi2()
{
digitalWrite(LED_RED, HIGH);
delay(150);
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
delay(150);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, HIGH);
delay(150);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED2, HIGH);
delay(150);
digitalWrite(LED_RED2, LOW);
digitalWrite(LED_GREEN2, HIGH);
delay(150);
digitalWrite(LED_GREEN2, LOW);
digitalWrite(LED_YELLOW2, HIGH);
delay(150);
digitalWrite(LED_YELLOW2, LOW);
digitalWrite(LED_RED3, HIGH);
delay(150);
digitalWrite(LED_RED3, LOW);
digitalWrite(LED_GREEN3, HIGH);
delay(150);
digitalWrite(LED_GREEN3, LOW);
digitalWrite(LED_YELLOW3, HIGH);
delay(150);
digitalWrite(LED_YELLOW3, LOW);
delay(150);
}
void offled()
{
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_GREEN2, LOW);
digitalWrite(LED_GREEN3, LOW);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_YELLOW2, LOW);
digitalWrite(LED_YELLOW3, LOW);
digitalWrite(LED_RED, LOW);
digitalWrite(LED_RED2, LOW);
digitalWrite(LED_RED3, LOW);
}
void loop()
{
VALUE_NEW = analogRead(SENSOR_PIN);
VALUE_NEW = map(VALUE_NEW,0,1023,1,6);
if (VALUE_NEW==1)
{
green();
}
else if (VALUE_NEW==2)
{
yellow();
}
else if (VALUE_NEW==3)
{
red();
}
else if (VALUE_NEW==4)
{
multi();
}
else if (VALUE_NEW==5)
{
multi2();
}
else if (VALUE_NEW==6)
{
offled();
}
}
Potentsiomeetri kasutamine:
- Audiotehnika: Potentsiomeetreid kasutatakse võimendites, mikserites ja muudes audioseadmetes helitugevuse ja tooniseadete reguleerimiseks.
- Meditsiinis: Potentsiomeetrit kasutatakse meditsiinis regulaatorina, nt tilgutijaamades reguleerib see ravimi voolu patsiendile.