Funktsioonid:
pinMode(pin,reziim) //INPUT, OUTPUT
setup()-sätted
loop()-põhifunktsioon, alati töötab
digitalWrite(pin,pinge) /HIGH, LOW
delay(aeg)//ms 1000=1s
analogWrite(pin, pinge) //0…255

void setup()
{
// Функция pinMode() получает два значения, которые Вы передаете ей
// в круглых скобках, сразу после имени функции. Первое это цифра - номер
// порта, второе - слово INPUT(ВХОД) или OUTPUT(ВЫХОД).
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH); // Включить светодиод
delay(1000); // Ожидание - 1 секунда
digitalWrite(13, LOW); // Выключить светодиод
delay(1000); // Ожидание - 1 секунда
}

void loop()
{
// Мы создали функцию с именем mainColors (), которая проходит через все восемь цветов. Здесь мы только вызываем нашу функцию, Сам же код функции находится ниже.
mainColors();
// Эта функция включает и выключает отдельно каждый светодиод либо Вкл., либо Выкл. Если вы хотите получить больше чем восемь цветов, вам придется
// изменять еще и яркость каждого светодиода. Для этого можно воспользоваться
// функцию analogWrite(), - градация яркости от 0 до 255. Далее идет функция
// с именем showSpectrum (), которая плавно проследует через каждый из 8 цветов. ее, код находится ниже.
}
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);
}

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 (), которая проходит через все восемь цветов. Здесь мы только вызываем нашу функцию, Сам же код функции находится ниже.
// Эта функция включает и выключает отдельно каждый светодиод либо Вкл., либо Выкл. Если вы хотите получить больше чем восемь цветов, вам придется
// изменять еще и яркость каждого светодиода. Для этого можно воспользоваться
// функцию analogWrite(), - градация яркости от 0 до 255. Далее идет функция
// с именем showSpectrum (), которая плавно проследует через каждый из 8 цветов. ее, код находится ниже.
showSpectrum();
}
void showSpectrum()
{
int x;
for (x = 0; x < 768; x++)
{
showRGB(x); // Вызов RGBspectrum() сновым значением x delay(15); // Пауза 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 1 Valgusfoor
Töö kirjeldus:
Päeva- ja öörežiimiga valgusfoor.
Komponendid:
Arudino Uno
Takisti (5)
Juhtmed (7)
5 värvilist LEDi (3 auto fooris ja 2 inimeste fooris)
Ühendamise skeem:
https://www.tinkercad.com/things/ibPNumlB0DO?sharecode=7Trvl3LO2yJRNQxyEO5Mv-P110FclcJynX_rqlR3Twc

Tööpõhimõte:
On kaks režiimi: päev ja öö. Päevarežiimis süttivad kolm tuld järjekorras: punane-kollane-roheline ja vastupidi. Kui autodele süttib punane, süttib inimestele roheline ja vastupidi. Enne kui rohelised foorid kustuvad, vilguvad need 3 korda. Öörežiimis vilgub ainult kollane 7 korda.
Kuidas seda kasutada saab?
Seda saab kasutada teedel liikluse reguleerimiseks.
Programm:
// C++ code
//
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(4, OUTPUT);
}
void loop()
{
day();
night();
}
void day()
{
for (int i=0;i<4;i++){
digitalWrite(13, HIGH);
delay(3000);
digitalWrite(4, HIGH);
delay(3000);
for (int i=0;i<3;i++){
digitalWrite(4, LOW);
delay(500);
digitalWrite(4, HIGH);
delay(500);
}
digitalWrite(4, LOW);
digitalWrite(13, LOW);
delay(10);
digitalWrite(12, HIGH);
delay(3000);
digitalWrite(12, LOW);
delay(10);
digitalWrite(8, HIGH);
delay(2000);
digitalWrite(7, HIGH);
delay(2000);
for (int i=0;i<3;i++){
digitalWrite(8, LOW);
delay(500);
digitalWrite(8, HIGH);
delay(500);
}
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
}
}
void night()
{
for (int i=0;i<7;i++){
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(500);
}
}