Guerland

Katse -Potentsiomeetri kasutamine

Komponeendid :

  • 1 Patentiometer ;
  • 1 LED ;
  • 1 resistor ;
  • 7 juhtmed ;
  • 1 Breadboard Small ;
  • 1 Arduino Uno R3

Tööpõhimõte :

  • Üks LED põleb ;
  • LED vilgutamise kiiruse reguleerimiseks kasutatakse potentsiomeetrit;
  • Koostas skeemi ja salvestas koodi keskkonda «tinkercad.com» ;
  • Koostas skeemi Arduino ise ;
  • Loos video töötav skeem ;

Ühendamise skeem:

Kõigepealt tuleb paigutada LED ja potentsiomeeter maketeerimislauale ja ühendada need, sarnaselt joonisel kujutatule arendusplaadiga.

LED vilgutamise kiiruse reguleerimiseks kasutatakse potentsiomeetrit.

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.         
}

https://www.tinkercad.com/things/lSby6RslLzs-daring-jarv-krunk?sharecode=CNGQLN2C_DAFVp56sB5SVn0BM0Q69EK-b0pYiwesDfc

FOTO

Video

https://drive.google.com/file/d/15pEZWq96Gy6FcAUmvRc7bzNddxV9Iuhc/view?usp=drivesdk

Valguskett

Valguskett kasutab komponente:

  • 12 – värvilist LED (3 punane, 3 roheline, 3 kollane ja 3 sinine) või/ja RGB-LED;
  • 12 – resistor;
  • 17 – juhtmed;
  • 1 – Breadboard Small ;
  • 1 – Arduino Uno R3;
  • 1 – Potentiometer.

Tööpõhimõte : 

  • Töötab nagu Valguskett;
  • Üleminek ühelt režiimilt teisele toimub potentiometeri abil;
  • In tinkercad.com koostas skeemi ja kirjutas koodi realiseeriva töö Valguskett kuus režiimi;
  • Koostati skeem Arduino enda kohta ;
  • Loome video töötavast Valguskett.

Valguskett töötab nii:

Esimene režiim:

Kõik dioodid süttivad kordamööda. Iga 5 sekundi järel korratakse tegevust.

  1. Kõigepealt süttivad kõik punased dioodid millisekundi pärast. 5 sekundi pärast süttivad uuesti.
  2. Kõik rohelised dioodid süttivad pärast punaseid ja kustuvad millisekundi pärast. 6 sekundi pärast süttivad uuesti.
  3. Kõik kollased dioodid süttivad pärast rohelist ja kustuvad millisekundi pärast. 7 sekundi pärast süttivad uuesti.
  4. Kõik sinised dioodid süttivad pärast kollaseid ja kustuvad millisekundi pärast. 8 sekundi pärast süttivad uuesti.

Teine režiim:

Teises režiimis süttivad ja põlevad kõik dioodid, kuni režiim muutub.

Kolmas režiim:

Kordamööda süttivad ja põlevad kaks dioodi. Iga 6 sekundi järel korratakse tegevust.

  1. Kõigepealt süttivad kollased ja sinised dioodid 2 sekundit, siis kustuvad kollased dioodid.
  2. Süttivad rohelised dioodid (sinised põlevad veel) 2 sekundit, siis kustuvad sinised dioodid.
  3. Süttivad punased dioodid (rohelised põlevad) 2 sekundit, siis kustuvad rohelised dioodid.
  4. Lõpus kustuvad punased dioodid.

Neljas režiim:

Kordamööda süttib ja kustub iga diood algusest lõpuni 1 millisekundilise intervalliga. Siis on need samad tegevused ainult algusest lõpuni (с конца до начала). Tegevused korduvad iga 14 sekundi järel.

Viies režiim:

Kõik dioodid süttivad vaheldumisi (algusest punane, roheline, kollane ja sinine). Tegevus kestab 3 sekundit. Siis nad hakkavad kustuma (algusest punane, roheline, kollane ja sinine). Tegevus kestab 3 sekundit.
Tegevused korduvad iga 6 sekundi järel.

Kuues režiim:

Kuuendal režiimil on kõigi dioodide virvendus. Pausi suurus genereeritakse juhuslikult. Tegevus kordub iga sekund.

Skeem ja kood keskkonnas tinkercad.com:

Skeem:

https://www.tinkercad.com/things/3Tdl60EudhU-swanky-allis-maimu?sharecode=LNawyrioYS2T6LGIwbVzciqwLG2svvMWkHbdbG66M9I

Kood:

int sensorPin = 0;
int sensorValue = 0;
int Valuenew;
void regime()//первый режим
{
  digitalWrite(13, HIGH); // красные деоды (загорание)
  digitalWrite(9, HIGH);
  digitalWrite(5, HIGH);
  delay(600);
  digitalWrite(13, LOW);// красные деоды (потухают)
  digitalWrite(9, LOW);
  digitalWrite(5, LOW);
  delay(600);
//  
  digitalWrite(12, HIGH); // зеленые деоды (загорание)
  digitalWrite(8, HIGH);
  digitalWrite(4, HIGH);
  delay(600);
  digitalWrite(12, LOW);// зеленые деоды (потухают)
  digitalWrite(8, LOW);
  digitalWrite(4, LOW);
  delay(600);
// 
  digitalWrite(11, HIGH); // желтые деоды (загорание)
  digitalWrite(7, HIGH);
  digitalWrite(3, HIGH);
  delay(600);
  digitalWrite(11, LOW);// желтые деоды (потухают)
  digitalWrite(7, LOW);
  digitalWrite(3, LOW);
  delay(600);
//  
  digitalWrite(10, HIGH); // синие диоды (загорание)
  digitalWrite(6, HIGH);
  digitalWrite(2, HIGH);
  delay(600);
  digitalWrite(10, LOW);// синие диоды (потухают)
  digitalWrite(6, LOW);
  digitalWrite(2, LOW);
  delay(600);  
}
void regime_2()//второй режим
{
  digitalWrite(13, HIGH); //все диоды загораются
  digitalWrite(9, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(2, HIGH);
}
void regime_3()//третий режим
{
  digitalWrite(12, LOW);// красные деоды (потухают)
  digitalWrite(8, LOW);
  digitalWrite(4, LOW);
  delay(700);
  digitalWrite(11, HIGH); // желтые деоды (загорание)
  digitalWrite(7, HIGH);
  digitalWrite(3, HIGH);
  delay(800);
  digitalWrite(10, HIGH); // синие диоды (загорание)
  digitalWrite(6, HIGH);
  digitalWrite(2, HIGH);
  delay(800);
  digitalWrite(11, LOW);// желтые деоды (потухают)
  digitalWrite(7, LOW);
  digitalWrite(3, LOW);
  delay(700);
  digitalWrite(12, HIGH); // зеленые деоды (загорание)
  digitalWrite(8, HIGH);
  digitalWrite(4, HIGH);
  delay(800);
  digitalWrite(10, LOW);// синие диоды (потухают)
  digitalWrite(6, LOW);
  digitalWrite(2, LOW);
  delay(700);
  digitalWrite(13, HIGH); // красные деоды (загорание)
  digitalWrite(9, HIGH);
  digitalWrite(5, HIGH);
  delay(800);
  digitalWrite(12, LOW);// зеленые деоды (потухают)
  digitalWrite(8, LOW);
  digitalWrite(4, LOW);
  delay(700);
}
void regime_4()//четвертый режим
{
  digitalWrite(13, HIGH);// по очереди диоды загораються и потухают 
  delay(300);
  digitalWrite(13, LOW);
  delay(300);
  digitalWrite(12, HIGH);
  delay(300);
  digitalWrite(12, LOW);
  delay(300);
  digitalWrite(11, HIGH);
  delay(300);
  digitalWrite(11, LOW);
  delay(300);
  digitalWrite(10, HIGH);
  delay(300);
  digitalWrite(10, LOW);
  delay(300);
//  
  digitalWrite(9, HIGH);
  delay(300);
  digitalWrite(9, LOW);
  delay(300);
  digitalWrite(8, HIGH);
  delay(300);
  digitalWrite(8, LOW);
  delay(300);
  digitalWrite(7, HIGH);
  delay(300);
  digitalWrite(7, LOW);
  delay(300);
  digitalWrite(6, HIGH);
  delay(300);
  digitalWrite(6, LOW);
  delay(300);
//  
  digitalWrite(5, HIGH);
  delay(300);
  digitalWrite(5, LOW);
  delay(300);
  digitalWrite(4, HIGH);
  delay(300);
  digitalWrite(4, LOW);
  delay(300);
  digitalWrite(3, HIGH);
  delay(300);
  digitalWrite(3, LOW);
  delay(300);
  digitalWrite(2, HIGH);
  delay(300);
  digitalWrite(2, LOW);
// 
  digitalWrite(2, HIGH);
  delay(300);
  digitalWrite(2, LOW);
  delay(300);
  digitalWrite(3, HIGH);
  delay(300);
  digitalWrite(3, LOW);
  delay(300);
  digitalWrite(4, HIGH);
  delay(300);
  digitalWrite(4, LOW);
  delay(300);
  digitalWrite(5, HIGH);
  delay(300);
  digitalWrite(5, LOW);
  delay(300);
  digitalWrite(6, HIGH);
  delay(300);
  digitalWrite(6, LOW);
  delay(300);
  digitalWrite(7, HIGH);
  delay(300);
  digitalWrite(7, LOW);
  delay(300);
  digitalWrite(8, HIGH);
  delay(300);
  digitalWrite(8, LOW);
  delay(300);
  digitalWrite(9, HIGH);
  delay(300);
  digitalWrite(9, LOW);
  delay(300);
  digitalWrite(10, HIGH);
  delay(300);
  digitalWrite(10, LOW);
  delay(300);
  digitalWrite(11, HIGH);
  delay(300);
  digitalWrite(11, LOW);
  delay(300);
  digitalWrite(12, HIGH);
  delay(300);
  digitalWrite(12, LOW);
  delay(300);
  digitalWrite(13,HIGH);
  delay(300);
  digitalWrite(13,LOW);
}
void regime_5()//пятый режим
{
  digitalWrite(13, HIGH); // красные деоды (загорание)
  digitalWrite(9, HIGH);
  digitalWrite(5, HIGH);
  delay(800);
//
  digitalWrite(12, HIGH); // зеленые деоды (загорание)
  digitalWrite(8, HIGH);
  digitalWrite(4, HIGH);
  delay(800);
// 
  digitalWrite(11, HIGH); // желтые деоды (загорание)
  digitalWrite(7, HIGH);
  digitalWrite(3, HIGH);
  delay(800);
 // 
  digitalWrite(10, HIGH); // синие диоды (загорание)
  digitalWrite(6, HIGH);
  digitalWrite(2, HIGH);
  delay(800);
// 
  digitalWrite(13, LOW); // красные деоды (потухают)
  digitalWrite(9, LOW);
  digitalWrite(5, LOW);
  delay(800);
// 
  digitalWrite(12, LOW); // зеленые деоды (потухают)
  digitalWrite(8, LOW);
  digitalWrite(4, LOW);
  delay(800);
// 
  digitalWrite(11, LOW); // желтые деоды (потухают)
  digitalWrite(7, LOW);
  digitalWrite(3, LOW);
  delay(800);
//  
  digitalWrite(10, LOW); // синие диоды (потухают)
  digitalWrite(6, LOW);
  digitalWrite(2, LOW);
  delay(800);
}
void regime_6() // шестой режим, мерцания
{
  digitalWrite(13, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(13, LOW);
  delay(random(10,50));
  digitalWrite(12, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(12, LOW);
  delay(random(10,50));
  digitalWrite(11, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(11, LOW);
  delay(random(10,50));
  digitalWrite(10, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(10, LOW);
  delay(random(10,50));
  digitalWrite(9, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(9, LOW);
  delay(random(10,50));
  digitalWrite(8, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(8, LOW);
  delay(random(10,50));
  digitalWrite(7, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(7, LOW);
  delay(random(10,50));
  digitalWrite(6, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(6, LOW);
  delay(random(10,50));
  digitalWrite(5, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(5, LOW);
  delay(random(10,50));
  digitalWrite(4, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(4, LOW);
  delay(random(10,50));
  digitalWrite(3, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(3, LOW);
  delay(random(10,50));
  digitalWrite(2, HIGH);
  delay(random(10,100)); // pausi suurus genereerime juhuslikult
  digitalWrite(2, LOW);
  delay(random(10,50)); 
}
void setup()
{
  pinMode(13,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(2,OUTPUT);
}  
void loop()
{
  Valuenew = analogRead(sensorPin);
  Valuenew=map(Valuenew,0,1023,0,5);
  digitalWrite(13, LOW); //выключение всех диодов
  digitalWrite(9, LOW);
  digitalWrite(5, LOW);
  digitalWrite(12, LOW);
  digitalWrite(8, LOW);
  digitalWrite(4, LOW);
  digitalWrite(11, LOW);
  digitalWrite(7, LOW);
  digitalWrite(3, LOW);
  digitalWrite(10, LOW);
  digitalWrite(6, LOW);
  digitalWrite(2, LOW);
if (Valuenew == 0)
{
regime();
}
  else if(Valuenew==1)
{
    regime_2();
}
  else if (Valuenew==2)
{
    regime_3();
}
  else if (Valuenew == 3)
{
    regime_4();
}
  else if(Valuenew==4)
{
    regime_5();
}
  else if(Valuenew==5)
{
    regime_6();
}
}

FOTO

Video

https://drive.google.com/file/d/1vfXK0L6Rz6IacvFbrSGEli9OSbhjo9uK/view?usp=drivesdk

Kommentaatorid (uued võimalused):

sensorPin

SensorPin in Tinkercad kasutatakse ühendada ja kontrollida erinevaid andureid ja seadmeid. See võimaldab anduritelt andmeid lugeda ja neid programmis kasutada.

sensorValue

SensorValue Tinkercadis on muutuja, mida kasutatakse ühendatud anduri väärtuse lugemiseks. Sellele muutujale saab määrata andurilt loetud väärtuse ja seejärel kasutada seda programmis erinevate tegevuste tegemiseks.

delay(random(10,100))

pausi suurus genereerime juhuslikult

else if

Konstruktsioon “else if” mitme haruga tinglike operaatorite loomiseks. See võimaldab teil kontrollida mitmeid tingimusi järjest ja täita vastava koodi plokk, kui tingimus on tõsi.

Konstruktsioon “else if” võimaldab kontrollida ühte või mitut tingimust ja kui tingimus ei vasta tõele, siis täita teist koodi või kontrollida teist tingimust.

map()

Funktsiooni Arduino map () kirjeldus võimaldab numbreid ühest vahemikust teise suunata. See on väga kasulik, kui on vaja teisendada väärtused ühest vahemikust teise, et need vastaksid nõuetele.

constrain()

Arduino funktsioon constrain () võimaldab piirata väärtust teatud vahemikus. Näiteks kui teil on muutuja, mis võib võtta väärtusi 0 kuni 100, kuid soovite veenduda, et see ei ületa kunagi seda vahemikku, saate kasutada funktsiooni constrain (). See aitab teil piirata väärtust õiges vahemikus ja vältida soovimatuid tulemusi.

Kasutamisvõimalused tavaelus:

Selle töö komponente saab kasutada LED-lindid, helendavad nöörid, helendavad pallid, helendavad tähed.