Su ostukorv on hetkel tühi!
Praktika 2 -Potentsiomeetri kasutamine-
Самое базовое и простое


Projektiülesanne: Valguskett

const int ledPins[] = {2, 3, 4, 5, 6}; // 5 светодиодов
const int potPin = A0;
int arrayLength = sizeof(ledPins) / sizeof(ledPins[0]);
void setup() {
for (int i = 0; i < arrayLength; i++) {
pinMode(ledPins[i], OUTPUT);
}
randomSeed(analogRead(A1)); // для эффекта свечи
}
void loop() {
int potValue = analogRead(potPin);
int mode = map(potValue, 0, 1023, 0, 5); // 6 режимов (0–5)
mode = constrain(mode, 0, 5);
switch (mode) {
case 0: allBlink(); break;
case 1: oneByOne(); break;
case 2: colorGroups(); break;
case 3: candleEffect(); break;
case 4: runningLight(); break;
case 5: nightMode(); break;
}
}
// Режим 0: Все мигают одновременно
void allBlink() {
for (int i = 0; i < arrayLength; i++) digitalWrite(ledPins[i], HIGH);
delay(500);
for (int i = 0; i < arrayLength; i++) digitalWrite(ledPins[i], LOW);
delay(500);
}
// Режим 1: Один за другим
void oneByOne() {
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], HIGH);
delay(200);
digitalWrite(ledPins[i], LOW);
}
}
// Режим 2: Группы по цвету (логически)
void colorGroups() {
for (int i = 0; i < arrayLength; i++) digitalWrite(ledPins[i], LOW);
delay(200);
// "Красные"
digitalWrite(ledPins[0], HIGH);
digitalWrite(ledPins[1], HIGH);
delay(300);
digitalWrite(ledPins[0], LOW);
digitalWrite(ledPins[1], LOW);
// "Зелёные"
digitalWrite(ledPins[2], HIGH);
digitalWrite(ledPins[3], HIGH);
delay(300);
digitalWrite(ledPins[2], LOW);
digitalWrite(ledPins[3], LOW);
// "Синий"
digitalWrite(ledPins[4], HIGH);
delay(300);
digitalWrite(ledPins[4], LOW);
}
// Режим 3: Свеча (рандомное мигание)
void candleEffect() {
for (int i = 0; i < arrayLength; i++) {
if (random(0, 10) < 3) {
digitalWrite(ledPins[i], HIGH);
delay(random(10, 100));
digitalWrite(ledPins[i], LOW);
delay(random(10, 50));
}
}
}
// Режим 4: Бегущий огонь
void runningLight() {
static int pos = 0;
for (int i = 0; i < arrayLength; i++) digitalWrite(ledPins[i], LOW);
digitalWrite(ledPins[pos], HIGH);
delay(150);
pos = (pos + 1) % arrayLength;
}
// Режим 5: Ночной режим
void nightMode() {
digitalWrite(ledPins[2], HIGH); // центральный диод
delay(500);
digitalWrite(ledPins[2], LOW);
delay(500);
}