Katse 2

-Potentsiomeetri kasutamine-

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.

}

Valguskett

Komponendid:

Arudino Uno
Takisti (8)
Juhtmed (13)
8 värvilist LEDi
Potentsiomeetr

https://www.tinkercad.com/things/27sHReAAI8A

https://drive.google.com/file/d/1JVO1TkX-aOtfH-KJq6TsW0TridM2qJ7B/view?usp=sharing

// C++ code
//

int sensorPin = 0;
int val;
void setup()
{
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}

void loop()
{
val = analogRead(sensorPin);
val = map(val, 0, 1023, 1, 5);
val = constrain(val, 1, 5);
if(val==1)
{
rezim1();
}

if(val==2)
{
rezim2();
}

if(val==3)
{
rezim3();
}

if(val==4)
{
rezim4();
}

if(val==5)
{
rezim5();
}
}

void rezim1()
{
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
delay(random(10,100));
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
delay(random(10,50));
}

void rezim2()
{
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
digitalWrite(11,HIGH);
digitalWrite(13,HIGH);
digitalWrite(6,LOW);
digitalWrite(8,LOW);
digitalWrite(10,LOW);
digitalWrite(12,LOW);
delay(1000);
digitalWrite(6,HIGH);
digitalWrite(8,HIGH);
digitalWrite(10,HIGH);
digitalWrite(12,HIGH);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(11,LOW);
digitalWrite(13,LOW);
delay(1000);
}

void rezim3()
{
for(int i=6; i<13; i++)
{
digitalWrite(i+7,LOW);
digitalWrite(i,HIGH);
delay(100);
digitalWrite(i,LOW);
digitalWrite(i+1,HIGH);
delay(100);
digitalWrite(i+1,LOW);
digitalWrite(i+2,HIGH);
delay(100);
digitalWrite(i+2,LOW);
digitalWrite(i+3,HIGH);
delay(100);
digitalWrite(i+3,LOW);
digitalWrite(i+4,HIGH);
delay(100);
digitalWrite(i+4,LOW);
digitalWrite(i+5,HIGH);
delay(100);
digitalWrite(i+5,LOW);
digitalWrite(i+6,HIGH);
delay(100);
digitalWrite(i+6,LOW);
digitalWrite(i+7,HIGH);
delay(100);
}

}

void rezim4()
{
digitalWrite(6, LOW);
digitalWrite(10, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(500);
digitalWrite(6, HIGH);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(7, HIGH);
digitalWrite(12, HIGH);
delay(500);
digitalWrite(8, HIGH);
digitalWrite(11, HIGH);
digitalWrite(6, LOW);
digitalWrite(13, LOW);
delay(500);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(7, LOW);
digitalWrite(12, LOW);
delay(500);
digitalWrite(8, LOW);
digitalWrite(11, LOW);
delay(500);
digitalWrite(8, HIGH);
digitalWrite(11, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
delay(500);
digitalWrite(7, HIGH);
digitalWrite(12, HIGH);
digitalWrite(8, LOW);
digitalWrite(11, LOW);
delay(500);
digitalWrite(6, HIGH);
digitalWrite(13, HIGH);
digitalWrite(7, LOW);
digitalWrite(12, LOW);
delay(500);
}

void rezim5()
{
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
}

Tööpõhimõte:

5 erineva töörežiimiga vanik, mida saab potentsiomeetri abil ümber lülitada.

Uued funktsioonid:

analogRead() — Funktsioon.

Loeb väärtust määratud analoogtihvtilt. Arduino plaadid sisaldavad mitme kanaliga 10-bitist analoog-digitaalmuundurit. See tähendab, et see kaardistab sisendpinged vahemikus 0 kuni tööpinge (5 V või 3,3 V) täisarvudeks vahemikus 0 kuni 1023.

map() — Funktsioon.

Kaardistab arvu ühest vahemikust teise. See tähendab, et väärtus fromLow vastendatakse väärtusele toLow, väärtus fromHigh kuni kõrgele, vahepealsed väärtused vahepealsete väärtustega jne.

Ei piira väärtusi vahemikku, sest vahemikust väljapoole jäävad väärtused on mõnikord mõeldud ja kasulikud. Funktsiooni constrain() võib kasutada kas enne või pärast seda funktsiooni, kui soovitakse vahemikke piirata.

constrain() — Funktsioon.

Piirab arvu jäämist vahemikku.

kasutamisvõimalused tavaelus.

Potentsiomeetreid kasutatakse parameetrite regulaatoritena (helitugevus, võimsus, väljundpinge jne), seadmete vooluahelate (häälestustakisti) sisemiste omaduste reguleerimiseks, täppispotentsiomeetrite baasil on ehitatud mitut tüüpi nurk- või lineaarnihke andureid.