1.- Näidis- (Nupp)
Töö kirjeldus:
Välja- ja sisselülitusnupuga Led
Kasutatud komponenid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (7tk)
Takisti (3tk)
LED (1tk: Punane)
Nupp (2tk)
Töö protsess:
Ühendage diood, takisti, nupud ja juhtmed plaadile. Valgusahel töötab järgmiselt.
Kui nuppu vajutatakse, lülitub LED sisse.
Nupp rakendamine:
Vajutage või hoidke all nuppu tulemuse saamiseks
Skeem:

Programm:
// Nuppud.
-----Kood-----
const int button1Pin = 2; //viik kunu on ühebdatud nupp1
const int button2Pin = 3; //viik kuhu on ühendatud nupp2
const int ledPin = 13;
void setup()
{
pinMode(button1Pin, INPUT); //algväärtuse nupu viigu sisendiks
pinMode(button2Pin, INPUT); //algväärtuse nupu viigu sisendiks
pinMode(ledPin, OUTPUT); //algväärtuse LED viigu väljundiks
}
void loop()
{
int button1State, button2State; //nupu oleku muutujad
button1State = digitalRead(button1Pin);// salvestame muutujasse nupu hetke väärtuse(HIGH või LOW)
button2State = digitalRead(button2Pin);
if (((button1State == LOW) || (button2State == LOW)) // kui nupu on alla vajutatud
&& !
((button1State == LOW) && (button2State == LOW))) // kui nupude on alla vajutatud
{
digitalWrite(ledPin, HIGH); // lülitame LED sisse
}
else
{
digitalWrite(ledPin, LOW); // lülitame LED välja
}
}
2.- Näidis- Slideswitch’i kasutamine
Töö kirjeldus:
LED koos sisse/väljalülitiga
Kasutatud komponenid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (7tk)
Takisti (1tk)
LED (1tk: Punane)
Switch (1tk)
Patarei (1tk)
Töö protsess:
Ühendage diood, takisti, switch ja juhtmed plaadile. Valgusahel töötab järgmiselt.
Kui Switch vajutatakse, lülitub LED sisse.
Switch rakendamine:
Lülita Switch sisse või välja tulemuse saamiseks
Skeem:

Programm:

3.2. Katse Photoresistor
(Fototakisti abil valguse mõõtmine, valgustundlik LED)
Töö kirjeldus:
LED Valgustusest sõltuv
Kasutatud komponenid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (6tk)
Takisti (2tk)
LED (1tk: Punane)
Fotoregister (1tk)
Töö protsess:
Ühendage diood, takisti, fotoregister ja juhtmed plaadile. Fotoresistor töötab järgmiselt.
LED süttib sõltuvalt valgusest
Fotoresistori rakendamine:
süttib sõltuvalt valgusest
Skeem:

Programm:
-----Kood-----
const int sensorPin = 0;
const int ledPin = 9;
int lightLevel, high = 0, low = 1023;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // //Serial monitori seadistamine
}
void loop()
{
// AnalogRead() kasutab väärtused vahemikus 0 (0 вольт) и 1023 (5 вольт).
// AnalogWrite(), kasutatakse, et LEDi sujuvalt sisselülitada 0(ei põle) kuni 255(põleb maksimalselt).
lightLevel = analogRead(sensorPin); //loeme mõõdetud analoogväärtuse
// Map() teisendab sisendi väärtused ühest vahemikust teisse. Näiteks, "from" 0-1023 "to" 0-255.
// Constrain() saed muutujale kindlad piirväärtused.
// Näiteks: kui constrain() kohtub arvudega 1024, 1025, 1026.., siis ta teisendab need 1023, 1023, 1023..). Kui arvud vähem kui 0, siis teisendab need 0:.
// lightLevel = constrain(lightLevel, 0, 255);
manualTune(); //
//autoTune(); //
analogWrite(ledPin, lightLevel);
// Выражение выше, будет изменять яркость светодиода вместе с уровнем освещенности. Чтобы сделать наоборот, заменить в analogWrite(ledPin, lightLevel) "lightLevel" на "255-lightLevel". Теперь у нас получился ночник!
Serial.print(lightLevel); // prindime tulemused Serial Monitori (вывод данных с фоторезистора (0-1023))
Serial.println("");
delay(1000);
}
void manualTune()
{
lightLevel = map(lightLevel, 300, 800, 0, 255); // kaardistame selle analoogväljundi vahemikku (будет от 300 темно, до 800 (светло)).
lightLevel = constrain(lightLevel, 0, 255);
}
void autoTune()
{
if (lightLevel < low)
{
low = lightLevel;
}
if (lightLevel > high)
{
high = lightLevel;
}
lightLevel = map(lightLevel, low+10, high-30, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
}
Ülesanne “Öölamp”
Töö kirjeldus:
Öövalgustus koos nupu ja pildisalvestajaga
Kasutatud komponenid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (17tk)
Takisti (9tk)
LED (8tk: 4tk Punane, 4tk Roheline)
Aku (1tk)
Fotoregister (1tk)
Switch (1tk)
Töö protsess:
Ühendage dioodid, takisti, Aku, fotoregister ja juhtmed plaadile. Öölamb töötab järgmiselt.
Öövalgustus hakkab tööle, kui vajutate lülitit, öövalgustus on kahes režiimis – öösel ja päeval.
Kui on pime, süttib see
Kui on päevane aeg, lülitub see välja.
Öölamp rakendamine:
Tänava-, tööstus- ja koduvalgustuseks (LED-lambid ja -valgustid); dekoratiivvalgustus, taustavalgustus.
Skeem:

Programm:
// C++ code
const int swPin = 4;
const int redled1 = 12;
const int blueled1 = 11;
const int redled2 = 10;
const int blueled2 = 9;
const int redled3 = 8;
const int blueled3 = 7;
const int redled4 = 6;
const int blueled4 = 5;
int switchstate = LOW;
int lightLevel;
void setup() {
pinMode(swPin, INPUT);
pinMode(redled1, OUTPUT);
pinMode(blueled1, OUTPUT);
pinMode(redled2, OUTPUT);
pinMode(blueled2, OUTPUT);
pinMode(redled3, OUTPUT);
pinMode(blueled3, OUTPUT);
pinMode(redled4, OUTPUT);
pinMode(blueled4, OUTPUT);
Serial.begin(9600); // Настройка сериального монитора
}
void loop() {
switchstate = digitalRead(swPin);
if (switchstate == HIGH) {
lightLevel = analogRead(A0); // читаем аналоговое значение
Serial.println(lightLevel);
lightLevel = map(lightLevel, 100, 1000, 0, 255); // маппируем его в диапазон (0-255)
lightLevel = constrain(lightLevel, 0, 255); // ограничиваем его в диапазоне (0-255)
analogWrite(redled1, lightLevel);
analogWrite(blueled1, lightLevel);
analogWrite(redled2, lightLevel);
analogWrite(blueled2, lightLevel);
analogWrite(redled3, lightLevel);
analogWrite(blueled3, lightLevel);
analogWrite(redled4, lightLevel);
analogWrite(blueled4, lightLevel);
Serial.print(lightLevel); // выводим результаты в сериальный монитор
Serial.println(«»);
delay(1000);
} else {
digitalWrite(redled1, LOW);
digitalWrite(blueled1, LOW);
digitalWrite(redled2, LOW);
digitalWrite(blueled2, LOW);
digitalWrite(redled3, LOW);
digitalWrite(blueled3, LOW);
digitalWrite(redled4, LOW);
digitalWrite(blueled4, LOW);
}}
Video:
Uued funktsioonid:
const int swPin = 4;– Объявляет константуswPinи присваивает ей значение 4, – (пин, к которому подключен переключатель.)const int redled1 = 12;,const int blueled1 = 11;, и т.д. – Объявляют константы для пинов, к которым подключены светодиодыint switchstate = LOW;– будет хранить текущее состояние переключателя. Изначально установлено вLOW.int lightLevel;– будет хранить уровень освещенности.digitalRead(pin)– Считывает состояние пина (HIGH или LOW).analogRead(pin)– Считывает аналоговое значение с аналогового пинаSerial.begin(speed)– Инициализирует последовательную связь с указанной скоростью в битах в секунду (speed).Serial.println(data)– Отправляет данные в последовательный монитор с новой строкой в конце.map(value, fromLow, fromHigh, toLow, toHigh)– Преобразует значение из одного диапазона в другой.constrain(value, min, max)– Ограничивает значение в заданном диапазоне.analogWrite(pin, value)– Устанавливает аналоговое значение на указанном пине (0-255).
