Katse 1.1

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


Komponendid:
Arudiono Uno
Arendusplaat
Valgusdiood (LED RGB)
Takisti
Juhtmed
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();
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);
}
Funktsioonid:
pinMode(pin,reziim) // INPUT, OUTPUT
setup() – sätted
loop() – põhifunktsioon, alati töötab
digitalWrite(pin,pinge) //HIGH, LOW
delay(aeg) //ms 1000ms = 1s
analogWrite(pin,pinge) //0…255
Ülesanne 1
Selle projekti raames tegin valgusfoori autodele ja inimestele öösel ja päeval.
See projekt toimib nii, et kõigepealt on autod rohelised ja inimesed punased 3000 millisekundit, seejärel hakkavad nad korraga vilkuma ja lülituvad välja. Pärast seda on kollane värv sees 2000 millisekundit ja lülitub välja sel hetkel, kui kollane värv on sisse lülitatud, ülejäänud on välja lülitatud. Jällegi, peale seda lähevad autod punaseks ja inimesed roheliseks 3000 millisekundiks ning hakkavad siis vilkuma. Seda korratakse 4 korda ja see oli päev. Kui päeva korratakse 4 korda, töötab ööfunktsioon, kus kõik tuled kustutatakse ja vilkuma jääb vaid kollane värv. Vilkumise intervall on kõigil sama ja nad vilguvad 4 korda, süttib 500 millisekundiks ja seejärel lülitub välja 500 millisekundiks.
Komponendid:
Arduino UNO 1 tk.
Arendusplaat 1 tk.
Valgusdiood 5tk.
Takistid 5 tk.
Juhtmed 7tk.
Kasutamise näited:
Tavaliselt kasutatakse teedel igapäevaelus valgusfoori ja tavalisi lambipirne näiteks kodus lühtrites või öösiti tänavatel laternates, aga öösel ka stendides.

code:
const int LED_RED = 12;
const int LED_YELLOW = 11;
const int LED_GREEN = 10;
const int second_LED_RED = 7;
const int second_LED_GREEN = 5;
void setup()
{
pinMode(LED_RED, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
}
void loop()
{
for (int i=0; i<4; i++)
day();
for (int i=0; i<4; i++)
night();
}
void day()
{
digitalWrite(LED_GREEN, HIGH);
digitalWrite(second_LED_RED, HIGH);
delay(3000);
for (int i=0; i<4; i++)
{
digitalWrite(LED_GREEN, LOW);
digitalWrite(second_LED_RED, LOW);
delay(500);
digitalWrite(LED_GREEN, HIGH);
digitalWrite(second_LED_RED, HIGH);
delay(500);
}
digitalWrite(second_LED_RED, LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, HIGH);
delay(2000);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED, HIGH);
digitalWrite(second_LED_GREEN, HIGH);
delay(3000);
for (int i=0; i<4; i++)
{
digitalWrite(LED_RED, LOW);
digitalWrite(second_LED_GREEN, LOW);
delay(500);
digitalWrite(LED_RED, HIGH);
digitalWrite(second_LED_GREEN, HIGH);
delay(500);
}
digitalWrite(second_LED_GREEN, LOW);
digitalWrite(LED_RED, LOW);
digitalWrite(LED_YELLOW, HIGH);
delay(2000);
digitalWrite(LED_YELLOW, LOW);
}
void night()
{
for (int i=0; i<4; i++)
{
digitalWrite(LED_YELLOW, HIGH);
delay(500);
digitalWrite(LED_YELLOW, LOW);
delay(500);
}
}