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:

  1. const int swPin = 4; – Объявляет константу swPin и присваивает ей значение 4, – (пин, к которому подключен переключатель.)
  2. const int redled1 = 12;, const int blueled1 = 11;, и т.д. – Объявляют константы для пинов, к которым подключены светодиоды
  3. int switchstate = LOW; – будет хранить текущее состояние переключателя. Изначально установлено в LOW.
  4. int lightLevel; – будет хранить уровень освещенности.
  5. digitalRead(pin) – Считывает состояние пина (HIGH или LOW).
  6. analogRead(pin) – Считывает аналоговое значение с аналогового пина
  7. Serial.begin(speed) – Инициализирует последовательную связь с указанной скоростью в битах в секунду (speed).
  8. Serial.println(data) – Отправляет данные в последовательный монитор с новой строкой в конце.
  9. map(value, fromLow, fromHigh, toLow, toHigh) – Преобразует значение из одного диапазона в другой.
  10. constrain(value, min, max) – Ограничивает значение в заданном диапазоне.
  11. analogWrite(pin, value) – Устанавливает аналоговое значение на указанном пине (0-255).