2. Тест с использованием потенциометра

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

Scheme

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);
  }
}