Тема 1: LED и RGB LED
LED и RGB LED
LED (светодиод) — это электронное устройство, которое излучает свет, когда через него проходит электрический ток. Светодиоды энергоэффективны, долговечны и компактны, что делает их популярными в различных приложениях, включая освещение, экраны и индикаторы сигналов. Температура цвета LED может варьироваться в зависимости от материалов, из которых они изготовлены, и может включать различные цвета, от теплого белого до холодного синего и красного.
RGB LED — это особый тип светодиода, который включает в себя три разных светодиода (красный, зеленый и синий) в одном устройстве. RGB светодиоды позволяют смешивать различные цвета, создавая широкую палитру, включая белый, когда все три цвета работают на полную мощность. Они популярны в приложениях, где требуется динамическое изменение цвета, например, в декоративном освещении, подсветке и LED-экранах. RGB светодиоды часто управляемы, позволяя пользователям создавать особые эффекты освещения и изменять цвета в зависимости от потребностей.
Эксперимент 1.1 Использование LED
Компоненты: Плата Arduino UNO (1 шт)
Макетная плата (1 шт)
Провода (3 шт)
Резистор (1 шт, 1 кОм)
LED (1 шт: 1 красный)

void setup() { pinMode(13, 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) }
Эксперимент 1.2. RGB светодиод ка-не
Плата Arduino UNO (1 шт.)
Макетная плата (1 шт.)
Провода (5шт)
Резистор (3шт, 1кОм)
Светодиод (1шт: 1 зеленый)

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); } // Vikerkaar. void showSpectrum() { int x; for (x = 0; x < 768; x++) { showRGB(x); // delay(10); // paus 0,001 sek } } // ShowRGB() põhivärvid: // 0 = punane // 255 = roheline // 511 = sinine // 767 = jälle punane 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); }
Задача «Светофор» Описание работы
Компоненты:
Плата Arduino UNO (1 шт.)
Макетная плата (1 шт.)
Провода (6шт)
Резистор (3шт, 1кОм)
Светодиод (5шт: 2 красных, 2 зеленых, 1 желтый)
Рабочий процесс:

// C++ code // void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); } void loop() { for (int i=0;i<3;i++){ digitalWrite(13, HIGH); digitalWrite(9, HIGH); delay(5000); // Wait for 1000 millisecond(s) digitalWrite(13, LOW); digitalWrite(9, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(12, HIGH); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(12, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(11, HIGH); digitalWrite(10, HIGH); delay(5000); // Wait for 1000 millisecond(s) digitalWrite(11, LOW); digitalWrite(10, LOW); delay(1000); // Wait for 1000 millisecond(s) for (int a=0;a<15;a++){ digitalWrite(12, HIGH); delay(500); // Wait for 1000 millisecond(s) digitalWrite(12, LOW); delay(500); // Wait for 1000 millisecond(s) } } }