2.1. Katse Vilgub
int sensorPin = 0; int ledPin = 13; int sensorValue = 0; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { sensorValue = analogRead(sensorPin); digitalWrite(ledPin, HIGH); delay(sensorValue); digitalWrite(ledPin, LOW); delay(sensorValue); float voltage = sensorValue * (5.0 / 1023.0); Serial.println(voltage); }

potentsiomeetrit saab kasutada valgusdioodide intensiivsuse muutmiseks.
Uued funktsioonid:
map(value, fromLow, fromHigh, toLow, toHigh) - tagastab uude vahemikku üle kantud uue väärtuse switch(value){ case }- režiimi ümberlülitamise tingimus
Ülesanne Valguskett
Komponeendid:
- Arduino Uno
- Arendusplaat
- LED
- Takisti
- Juhtmed
- Potentsiomeeter

Video:

käivitamisel, kui potentsiomeeter on minimaalne, süttib LED lihtsalt üksteise järel 100 millisekundilise viivitusega, režiimide vahel vahetamiseks tuleb potentsiomeetrit keerata, teisel tasemel süttib LED ükshaaval muutuva viivitusega, sõltuvalt sellest, kui lähedal või kaugel nad on järgmisest režiimist, kolmandal tasandil põlevad valgusdioodid kõik koos suure intensiivsusega ja viivitusega, sõltuvalt sellest, kui lähedal või kaugel on järgmine tase; neljandal tasandil põlevad valgusdioodid samamoodi nagu kolmandal tasandil, kuid sel juhul kustuvad nad aeglasemalt, sõltuvalt sellest, kui lähedal või kaugel on järgmine tase; järgmine tase on väljalülitamine — viies tase.
Potentsiomeetri kasutamine igapäevaelus:
1) gaasivoolu suurendamine ja vähendamine pliidil
2) põrandaküte
3) Helitugevuse suurendamine ja vähendamine magnetofonil
4) valguse intensiivsuse reguleerimine
5) pliidi kütte reguleerimine ja pliidi režiimide reguleerimine
Code:
const int numLeds = 5; int ledPins[numLeds]; int potPin = 0; int mode = 0; void setup() { for (int i = 0; i < numLeds; i++) { ledPins[i] = i + 2; pinMode(ledPins[i], OUTPUT); } } void loop() { int potValue = analogRead(potPin); mode = map(potValue, 0, 1023, 0, 5); switch (mode) { case 1: // Kõik tuled põlevad korraga On(); break; case 2: // Tuled vilguvad kõik korraga Blink(); break; case 3: // Tuled vilguvad vaheldumisi altBlink(); break; case 4: // Tuled vilguvad kordamööda sBlink(); break; case 5: // lülitab LEDid välja turnBlink(); break; } } void On() { for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); } delay(500); for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], LOW); } delay(500); } void Blink() { for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); } delay(250); for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], LOW); } delay(250); } void altBlink() { for (int i = 0; i < numLeds; i += 2) { digitalWrite(ledPins[i], HIGH); digitalWrite(ledPins[i + 1], LOW); } delay(500); for (int i = 0; i < numLeds; i += 2) { digitalWrite(ledPins[i], LOW); digitalWrite(ledPins[i + 1], HIGH); } delay(500); } void sBlink() { for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); delay(100); digitalWrite(ledPins[i], LOW); } } void turnBlink() { for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], LOW); } }