Практика 1 Led ja RGB Led

Katse -LED dioodid ja RGB LED-

1)Схема которая дает светодиоду моргать с дилеем 1000 милесекунд

Используется: 1 LED; 1 резистор 220V; 3 провода

//
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
digitalWrite(LED_BUILTIN, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(1000); // Wait for 1000 millisecond(s)

2) В этой работе лампочка изначально резко моргает разными цветами, а после начинает плавно переливаться

Используется: 1 LED RGB; 3 резистора 220V; 5 проводов

// C++ code
//
const int RED_PIN = 11;

const int GREEN_PIN = 9;

const int BLUE_PIN = 10;

int DISPLAY_TIME = 100; // värvimuutuse kiirus

void setup()
{

pinMode(RED_PIN, OUTPUT);

pinMode(GREEN_PIN, OUTPUT);

pinMode(BLUE_PIN, OUTPUT);

}

void loop()

{

mainColors();

showSpectrum();

}
void mainColors()

{

// Kõik LEDid on välja lülitatud

digitalWrite(RED_PIN, LOW);

digitalWrite(GREEN_PIN, LOW);

digitalWrite(BLUE_PIN, LOW);

delay(1000);

//Põleb punane

digitalWrite(RED_PIN, HIGH);

digitalWrite(GREEN_PIN, LOW);

digitalWrite(BLUE_PIN, LOW);

delay(1000);

// Põleb roheline

digitalWrite(RED_PIN, LOW);

digitalWrite(GREEN_PIN, HIGH);

digitalWrite(BLUE_PIN, LOW);

delay(1000);

// Sinine on sisse lülitatud

digitalWrite(RED_PIN, LOW);

digitalWrite(GREEN_PIN, LOW);

digitalWrite(BLUE_PIN, HIGH);

delay(1000);

// Kollane.

digitalWrite(RED_PIN, HIGH);

digitalWrite(GREEN_PIN, HIGH);

digitalWrite(BLUE_PIN, LOW);

delay(1000);

// Lilla

digitalWrite(RED_PIN, LOW);

digitalWrite(GREEN_PIN, HIGH);

digitalWrite(BLUE_PIN, HIGH);

delay(1000);

//Roosa

digitalWrite(RED_PIN, HIGH);

digitalWrite(GREEN_PIN, LOW);

digitalWrite(BLUE_PIN, HIGH);

delay(1000);

//Valge ehk kõik on sisse lülitatud

digitalWrite(RED_PIN, HIGH);

digitalWrite(GREEN_PIN, HIGH);

digitalWrite(BLUE_PIN, HIGH);

delay(1000);

}
void showSpectrum()

{

int x;

for (x = 0; x < 768; x++)

{

showRGB(x);  // 

delay(10);   // paus 0,001 sek

}

}

void showRGB(int color)
{
int redIntensity;
int greenIntensity;
int blueIntensity;
if (color <= 255)
{
redIntensity = 255 - color; // lülitakse välja punane
greenIntensity = color; // lülitakse sisse roheline
blueIntensity = 0; // sinine on välja lülitatud
}

else if (color <= 511)
{
redIntensity = 0; // punane on välja lülitatud
greenIntensity = 255 - (color - 256);
blueIntensity = (color - 256);
}

else if (color >= 512)

{
redIntensity = (color - 512);
greenIntensity = 0;
blueIntensity = 255 - (color - 512);
}
analogWrite(RED_PIN, redIntensity); // punase LED´i sujuv ümberlülitamine
analogWrite(BLUE_PIN, blueIntensity);
analogWrite(GREEN_PIN, greenIntensity);
}

3) Светофор

В моем светофоре одновременно горят 2 светодиода и когда время для перехода дороги заканчиваются действующий зеленый свет начинает моргать, после этого горит желтый свет и светофоры меняются цветами.

Этот цикл проходит 3 раза после чего начинается ночной режим в котором желтый цвет моргает

Используется: 5 LED; 5 резисторов 220V; 7 проводов

// C++ code
//

void setup()
{

pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);

}

void loop()
{
day();
night();
}
void day()
{
for (int j = 0; j < 3; j++)
{

digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, HIGH);

delay(4000);

digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(1000);
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(1000);
digitalWrite(9, HIGH);
delay(1000);

digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);

delay(1500);

digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);

delay(4000);

digitalWrite(11, HIGH);

delay(1000);
digitalWrite(11, LOW);
delay(1000);
digitalWrite(11, HIGH);
delay(1000);
digitalWrite(11, LOW);
delay(1000);
digitalWrite(11, HIGH);
delay(1000);
}
}

void night()
{
for (int j = 0; j < 3; j++)
{

digitalWrite(13, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);

digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);

digitalWrite(13, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);

digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);

digitalWrite(13, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);

digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);

digitalWrite(13, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);

digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(12, HIGH);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(12, LOW);
delay(1000);
}
}