Katse 1

void setup()
{
// pinMode() määrab töörežim
pinMode(13, OUTPUT); // 13-pini number, INPUT/OUTPUT(Sisend/Väljund).
}
void loop()
{
digitalWrite(13, HIGH); // Lülita sisse
delay(1000); // Ootab 1 sek
digitalWrite(13, LOW); // Lülita välja
delay(1000); // Ootab 1 sek
}
На русском:
Этот код написан для платформы Arduino. Он использует два основных блока: setup() и loop(). Давайте разберём его по частям:
void setup():- Эта функция выполняется один раз при старте программы.
- Внутри этой функции используется
pinMode(13, OUTPUT);, которая настраивает пин номер 13 как выход (OUTPUT). Это значит, что через этот пин можно подавать напряжение (включать или выключать светодиод или другое устройство).
void loop():- Это основная часть программы, которая будет выполняться постоянно (в цикле).
- Внутри цикла используются две команды
digitalWrite()иdelay():digitalWrite(13, HIGH);— включает пин 13 (подаёт на него напряжение, светодиод загорится).delay(1000);— заставляет программу «заснуть» на 1000 миллисекунд (или 1 секунду).digitalWrite(13, LOW);— выключает пин 13 (убирает напряжение, светодиод погаснет).delay(1000);— снова заставляет программу ждать 1 секунду.
- Таким образом, программа будет включать и выключать пин 13 (например, светодиод) с интервалом в 1 секунду.
Eestikeelne selgitus:
See kood on kirjutatud Arduino jaoks. Kood sisaldab kahte peamist plokki: setup() ja loop(). Vaatame seda samm-sammult:
void setup():- See funktsioon käivitub ainult üks kord programmi alguses.
- Selles funktsioonis on kasutatud
pinMode(13, OUTPUT);, mis määrab pin 13 töörežiimiks väljundi (OUTPUT). See tähendab, et selle piniga saab juhtida seadet (näiteks lülitada sisse või välja LED-i).
void loop():- See on programmi põhiosa, mis töötab pidevas tsüklis.
- Tsüklis on kaks käsku
digitalWrite()jadelay():digitalWrite(13, HIGH);— lülitab pin 13 sisse (paneb sellele pinget, LED süttib).delay(1000);— paneb programmi «magama» 1000 millisekundiks (1 sekund).digitalWrite(13, LOW);— lülitab pin 13 välja (eemaldab pinget, LED kustub).delay(1000);— paneb programmi jälle ootama 1 sekundi.
- Nii töötab programm pidevalt, lülitades pin 13 (näiteks LED) sisse ja välja 1 sekundi vahedega.
Katse 2

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);
}
На русском:
Этот код предназначен для управления RGB-светодиодом на платформе Arduino. Он создает плавные переходы цветов и отображает спектр цветов. Давайте разберём его по частям:
1. Объявление переменных и констант:
const int RED_PIN = 11;
const int GREEN_PIN = 9;
const int BLUE_PIN = 10;
int DISPLAY_TIME = 100; // скорость изменения цвета
RED_PIN,GREEN_PIN,BLUE_PIN— это пины, к которым подключены компоненты RGB-светодиода.DISPLAY_TIME— это переменная для настройки времени между изменениями цвета.
2. Функция setup():
void setup() {
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
- Функция
setup()выполняется один раз при старте программы. - Внутри этой функции устанавливаются пины 11, 9 и 10 как выходные (OUTPUT) для управления светодиодами.
3. Основной цикл loop():
void loop() {
mainColors();
showSpectrum();
}
В цикле loop() вызываются две функции:
mainColors()— управляет основными цветами (красный, зелёный, синий и т. д.).showSpectrum()— показывает спектр цветов, плавно переходя от одного к другому.
4. Функция mainColors():
void mainColors() {
// Всё выключено
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
// Показ цветов по очереди
digitalWrite(RED_PIN, HIGH);
delay(1000);
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
delay(1000);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
digitalWrite(BLUE_PIN, LOW);
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, HIGH);
delay(1000);
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
digitalWrite(RED_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
}
- Эта функция сначала выключает все светодиоды на 1 секунду, а затем поочередно включает разные цвета.
- Каждый цвет (красный, зелёный, синий, желтый, фиолетовый, розовый и белый) горит по 1 секунде.
5. Функция showSpectrum():
void showSpectrum() {
int x;
for (x = 0; x < 768; x++) {
showRGB(x);
delay(10);
}
}
- Функция
showSpectrum()запускает цикл от 0 до 767, при этом на каждом шаге вызывается функцияshowRGB(x)для отображения различных цветов спектра.
6. Функция showRGB():
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 {
redIntensity = (color - 512);
greenIntensity = 0;
blueIntensity = 255 - (color - 512);
}
analogWrite(RED_PIN, redIntensity);
analogWrite(BLUE_PIN, blueIntensity);
analogWrite(GREEN_PIN, greenIntensity);
}
- Эта функция управляет интенсивностью каждого из цветов (красного, зелёного и синего) в зависимости от текущего значения
color. - Для значения
colorот 0 до 255 активируется красный, от 256 до 511 — зелёный, от 512 до 767 — синий. - Функция плавно изменяет цвета, создавая эффект перехода через спектр.
Eestikeelne selgitus:
See kood on mõeldud Arduino jaoks RGB LED-i juhtimiseks. Kood loob sujuvad värvimuutused ja kuvab vikerkaare värve. Vaatame koodi samm-sammult:
1. Muudatavate väärtuste ja konstandite määramine:
const int RED_PIN = 11;
const int GREEN_PIN = 9;
const int BLUE_PIN = 10;
int DISPLAY_TIME = 100; // värvimuutuse kiirus
RED_PIN,GREEN_PIN,BLUE_PIN— pin’id, millele on ühendatud RGB LED-i komponendid.DISPLAY_TIME— muutuv väärtus, mis määrab värvimuutuse kiirus.
2. Funktsioon setup():
void setup() {
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
- Funktsioon
setup()käivitub ainult üks kord programmi alguses. - Selles funktsioonis määratakse pin’id 11, 9 ja 10 väljunditeks (OUTPUT), et juhtida LED-e.
3. Põhiloop loop():
void loop() {
mainColors();
showSpectrum();
}
- Tsüklis
loop()kutsutakse välja kaks funktsiooni:mainColors()— haldab peamisi värve (punane, roheline, sinine jne).showSpectrum()— kuvab vikerkaare värve, liikudes sujuvalt ühelt värvilt teisele.
4. Funktsioon mainColors():
void mainColors() {
// Kõik LED-id on välja lülitatud
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
// Kuvatakse värve järjestikku
digitalWrite(RED_PIN, HIGH);
delay(1000);
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
delay(1000);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
digitalWrite(BLUE_PIN, LOW);
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, HIGH);
delay(1000);
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
digitalWrite(RED_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
}
- See funktsioon lülitab kõik LED-id välja üheks sekundiks ja seejärel lülitab iga värvi järjestikku üheks sekundiks.
5. Funktsioon showSpectrum():
void showSpectrum() {
int x;
for (x = 0; x < 768; x++) {
showRGB(x);
delay(10);
}
}
- Funktsioon
showSpectrum()käivitab tsükli, mis liigub vahemikus 0 kuni 767, ja igal sammul kutsub välja funktsioonishowRGB(x), et kuvada erinevaid värve vikerkaare spektris.
6. Funktsioon showRGB():
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 {
redIntensity = (color - 512);
greenIntensity = 0;
blueIntensity = 255 - (color - 512);
}
analogWrite(RED_PIN, redIntensity);
analogWrite(BLUE_PIN, blueIntensity);
analogWrite(GREEN_PIN, greenIntensity);
}
See funktsioon määrab iga värvi intensiivsuse vastavalt color väärtusele ja muudab iga LED-i heleduse, et kuvada sujuvat värvimuutust.
VIDEO
