Your cart is currently empty!
-LED dioodid ja RGB LED-
Katse 1.1 LED kasutamine
Töö kirjeldus:
Valgusdioodi vilgutamine, mis vilgutab plaadil olevat LED-i.
Komponendid:
Arudiono Uno 1tk
Arendusplaat1 tk
Valgusdiood 1tk
Takisti 330 Om
Juhtmed 3tk
Ühendamise skeem:
Programm:
void setup()
{
// Функция pinMode() получает два значения, которые Вы передаете ей
// в круглых скобках, сразу после имени функции. Первое это цифра - номер
// порта, второе - слово INPUT(ВХОД) или OUTPUT(ВЫХОД).
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH); // Включить светодиод
delay(1000); // Ожидание - 1 секунда
digitalWrite(13, LOW); // Выключить светодиод
delay(1000); // Ожидание - 1 секунда
}
Funktsioonid
pinMode(pin,reziim) //INPUT, OUTPUT
setup() — sätted
loop() — põhifunkstioonid, alati töötab
digitalWrite (pin,pinge) // HIGH, LOW
delay(aeg) //ms 1000 = 1s
analogWrite (pin,pinge) //0,255
Katse 1.2 RGB LED kasutamine
Töö kirjeldus:
Valgusdioodi vilgutamine, mis vilgutab plaadil olevat LED-i.
Komponendid:
Arudiono Uno
Arendusplaat
Valgusdiood (LED RGB)
Takisti
Juhtmed
Ühendamise skeem:

const int RED_PIN = 11;
const int GREEN_PIN = 9;
const int BLUE_PIN = 10;
int DISPLAY_TIME = 100; // переменная контролирует, на сколько быстро выполняется цикл по смене цветов в миллисекундах
void setup()
{
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
void loop()
{
// Мы создали функцию с именем mainColors (), которая проходит через все восемь цветов. Здесь мы только вызываем нашу функцию, Сам же код функции находится ниже.
mainColors();
// Эта функция включает и выключает отдельно каждый светодиод либо Вкл., либо Выкл. Если вы хотите получить больше чем восемь цветов, вам придется
// изменять еще и яркость каждого светодиода. Для этого можно воспользоваться
// функцию analogWrite(), - градация яркости от 0 до 255. Далее идет функция
// с именем showSpectrum (), которая плавно проследует через каждый из 8 цветов. ее, код находится ниже.
showSpectrum();
}
void mainColors()
{
// Выкл. – все светодиоды выключены
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
// Включаем КРАСНЫЙ – RED_PIN, HIGH.
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
// Включаем ЗЕЛЕНЫЙ – GREEN_PIN, HIGH.
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
// Включаем СИНИЙ – BLUE_PIN, HIGH.
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
// Включаем ЖЕЛТЫЙ – RED и GREEN HIGH.
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
// БИРЮЗОВЫЙ – GREEN и BLUE
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
//РОЗОВЫЙ – RED и BLUE
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
//БЕЛЫЙ – все цвета HIGH (Вкл.)
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
}
// Ниже приведен код еще двух функций: ShowSpectrum () и showRGB(). ShowRGB () - выводит один цвет на светодиод. ShowSpectrum () выводит все цвета по очереди – радуга.
void showSpectrum()
{
int x;
for (x = 0; x < 768; x++)
{
showRGB(x); // Вызов RGBspectrum() сновым значением x
delay(10); // Пауза 10 ms (1/100 секунды)
}
}
// ShowRGB()
// Базовые цифры:
// 0 = чистый красный
// 255 = чистый зеленый
// 511 = чистый синий
// 767 = чистый красный (опять же)
void showRGB(int color)
{
int redIntensity;
int greenIntensity;
int blueIntensity;
if (color <= 255)
{
redIntensity = 255 - color; // красный меняется из включенного на выключенный
greenIntensity = color; // зеленый меняется из выключенного на включенный
blueIntensity = 0; // голубой всегда выключен
}
else if (color <= 511)
{
redIntensity = 0; // красный всегда выключен
greenIntensity = 255 - (color - 256); // зеленый от включенного к выключенному
blueIntensity = (color - 256); // голубой от выключенного к включенному
}
else if (color >= 512)
{
redIntensity = (color - 512); // красный выкл. К вкл.
greenIntensity = 0; // зеленый всегда выкл.
blueIntensity = 255 - (color - 512); // голубой от вкл. К выкл.
}
analogWrite(RED_PIN, redIntensity);
analogWrite(BLUE_PIN, blueIntensity);
analogWrite(GREEN_PIN, greenIntensity);
}
Ülesanne «Valgusfoor»
Töö kirjeldus:
Päevvalgusfoor: päevaajal töötab valgusfoor autole nagu peab: punane, kollane ja roheline ning inimesele: punane ja roheline. Värvi vahetamised: roheline — kollane 5s, kollane — punane 2.5s, punane — kollane 5s, ning kui auto valgusfoor põleb punasega — inimene võib läbikäia, sest inimese valgusfoor on roheline. Kui põleb kollane auto valgusfoor sel ajal on inimesel punane värv ja läbikäia ei saa.
Öövalgusfoor: öösel töötab auto valgusfoor autonoomsel reziimis, ehk vilgutab kollasega ja inimese valgusfoor ei tööta. Auto valgusfoor vilgutab iga 1s vahel ning kordab seda reziimi selles koodis 8 korda.
Komponendid:
Arudiono Uno 1tk
Arendusplaat 1tk
Valgusdiood 5tk
Takisti 5tk
Juhtmed 7 tk
Ühendamise skeem:

// C++ code
//Anname pin numbrid vastavalt plaatile 11-13 auto valgusfoor, inimese valgusfoor 8-9
const int LIIK_RED_PIN = 12;
const int LIIK_GREEN_PIN = 13;
const int LIIK_YELLOW_PIN = 11;
const int INIM_RED_PIN = 9;
const int INIM_GREEN_PIN = 8;
void setup()
{
//Loeb pin väljaks
pinMode(LIIK_RED_PIN, OUTPUT);
pinMode(LIIK_GREEN_PIN, OUTPUT);
pinMode(LIIK_YELLOW_PIN, OUTPUT);
pinMode(INIM_RED_PIN, OUTPUT);
pinMode(INIM_GREEN_PIN, OUTPUT);
}
void loop()
{
//täitab paevvalgusfoor ja kordab tsüklis oovalgusfoor, et see võiks mitu korda vilgutama
paevvalgusfoor();
for(int i=0;i<8;i++)
{
oovalgusfoor();
}
}
void paevvalgusfoor()
{
//горит зелённый для машин, красный для пешехода
digitalWrite(LIIK_RED_PIN, LOW);
digitalWrite(LIIK_YELLOW_PIN, LOW);
digitalWrite(LIIK_GREEN_PIN, HIGH);
digitalWrite(INIM_RED_PIN, HIGH);
digitalWrite(INIM_GREEN_PIN, LOW);
delay(5000);
//переход на желтый для машин, красный для пешехода
digitalWrite(LIIK_RED_PIN, LOW);
digitalWrite(LIIK_YELLOW_PIN, HIGH);
digitalWrite(LIIK_GREEN_PIN, LOW);
digitalWrite(INIM_RED_PIN, HIGH);
digitalWrite(INIM_GREEN_PIN, LOW);
delay(2500);
//переход на красный для машин, зеленый для пешехода
digitalWrite(LIIK_RED_PIN, HIGH);
digitalWrite(LIIK_YELLOW_PIN, LOW);
digitalWrite(LIIK_GREEN_PIN, LOW);
digitalWrite(INIM_RED_PIN, LOW);
digitalWrite(INIM_GREEN_PIN, HIGH);
delay(5000);
//переход на желтый для машин, красный для пешехода
digitalWrite(LIIK_RED_PIN, LOW);
digitalWrite(LIIK_YELLOW_PIN, HIGH);
digitalWrite(LIIK_GREEN_PIN, LOW);
digitalWrite(INIM_RED_PIN, HIGH);
digitalWrite(INIM_GREEN_PIN, LOW);
delay(2500);
}
void oovalgusfoor()
{
//kollane värv põleb, kõik teised ei põle
digitalWrite(LIIK_RED_PIN, LOW);
digitalWrite(LIIK_YELLOW_PIN, HIGH);
digitalWrite(LIIK_GREEN_PIN, LOW);
digitalWrite(INIM_RED_PIN, LOW);
digitalWrite(INIM_GREEN_PIN, LOW);
delay(1000);
//kõik värvid ei põle
digitalWrite(LIIK_RED_PIN, LOW);
digitalWrite(LIIK_YELLOW_PIN, LOW);
digitalWrite(LIIK_GREEN_PIN, LOW);
digitalWrite(INIM_RED_PIN, LOW);
digitalWrite(INIM_GREEN_PIN, LOW);
delay(1000);
}

https://www.tinkercad.com/things/7BJQwkEN8Mt/editel?returnTo=%2Fdashboard
const int LIIK_RED_PIN = 12; // autode punane tuli
const int LIIK_GREEN_PIN = 13; // autode roheline tuli
const int LIIK_YELLOW_PIN = 11; // autode kollane tuli
const int INIM_RED_PIN = 9; // jalakäijate punane tuli
const int INIM_GREEN_PIN = 8; // jalakäijate roheline tuli
Siin määratakse ära, millistele Arduino pin’idele on LED-tuled ühendatud.LIIK_
viitab liiklusele (autod), INIM_
jalakäijatele.
void setup()
{
pinMode(LIIK_RED_PIN, OUTPUT);
pinMode(LIIK_GREEN_PIN, OUTPUT);
pinMode(LIIK_YELLOW_PIN, OUTPUT);
pinMode(INIM_RED_PIN, OUTPUT);
pinMode(INIM_GREEN_PIN, OUTPUT);
}
Funktsioon, mis käivitub korra programmi alguses.
Siin seadistatakse kõik pin’id väljunditeks, et neile saaks anda elektrisignaali (s.t. panna LEDid põlema või kustuma).
void loop()
{
paevvalgusfoor(); // käivitatakse päevarežiim
for(int i=0;i<8;i++)
{
oovalgusfoor(); // öörežiim: vilkuv kollane tuli
}
}
See on põhitsükkel, mida Arduino pidevalt kordab:
- Käivitatakse päevarežiimi funktsioon.
- Seejärel käivitatakse öörežiim 8 korda järjest (vilkuv kollane).
// ✅ paevvalgusfoor() funktsioon – päevarežiim
// 1. etapp: autod – roheline, jalakäijad – punane
digitalWrite(LIIK_GREEN_PIN, HIGH);
digitalWrite(INIM_RED_PIN, HIGH);
delay(5000); // 5 sekundit
// 2. etapp: autod – kollane, jalakäijad – punane
digitalWrite(LIIK_GREEN_PIN, LOW);
digitalWrite(LIIK_YELLOW_PIN, HIGH);
delay(2500); // 2.5 sekundit
// 3. etapp: autod – punane, jalakäijad – roheline
digitalWrite(LIIK_YELLOW_PIN, LOW);
digitalWrite(LIIK_RED_PIN, HIGH);
digitalWrite(INIM_RED_PIN, LOW);
digitalWrite(INIM_GREEN_PIN, HIGH);
delay(5000); // 5 sekundit
// 4. etapp: autod – kollane, jalakäijad – punane
digitalWrite(LIIK_RED_PIN, LOW);
digitalWrite(LIIK_YELLOW_PIN, HIGH);
digitalWrite(INIM_GREEN_PIN, LOW);
digitalWrite(INIM_RED_PIN, HIGH);
delay(2500); // 2.5 sekundit
// See funktsioon imiteerib päevast liiklusfoori tsüklit – sarnaselt päris liiklusfoorile.
// 🌙 oovalgusfoor() funktsioon – öörežiim
// ainult autode kollane tuli vilgub
digitalWrite(LIIK_YELLOW_PIN, HIGH);
delay(1000); // põleb 1 sekundi
digitalWrite(LIIK_YELLOW_PIN, LOW);
delay(1000); // kustub 1 sekundiks
// Seda funktsiooni kutsutakse loop() sees 8 korda.
// See tähendab, et kollane tuli vilgub 8 korda (iga kord 1 sekund põleb, 1 sekund ei põle).
Video:
https://drive.google.com/file/d/1Uwl-LoNCYEhIwse2QJJTLCcAYC3EdLBp/view?usp=sharing