Интернет-магазин «Неглупый Дом»
RGB-светодиод KY-016, встречавшийся в других проектах как вспомогательный индикатор, здесь главный герой: потенциометр плавно двигает цвет от зелёного через жёлтый к красному — как индикатор заряда или громкости в бытовых приборах.
Потенциометр читается `analogRead()` (0-1023). Вместо управления яркостью одного канала число используется для смешивания ДВУХ каналов: сначала горит только зелёный, затем добавляется красный (жёлтый = смесь), к концу зелёный гаснет, остаётся чистый красный.
Классический приём "зелёный=хорошо, жёлтый=внимание, красный=критично" — подходит для любого измеренного уровня (заряд, температура, расстояние) из других проектов, если заменить потенциометр на реальный датчик.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить. Логика
// для общего катода — для общего анода инвертируйте значения ШИМ.
const int POT_PIN = A0;
const int RED_PIN = 9;
const int GREEN_PIN = 10;
void setup() {
Serial.begin(9600);
}
void loop() {
int level = analogRead(POT_PIN);
int redValue, greenValue;
if (level < 512) {
greenValue = 255;
redValue = map(level, 0, 511, 0, 255);
} else {
redValue = 255;
greenValue = map(level, 512, 1023, 255, 0);
}
analogWrite(RED_PIN, redValue);
analogWrite(GREEN_PIN, greenValue);
delay(50);
}
Дополнительных библиотек не требуется. Если цвета "вывернуты" — у вас светодиод с общим анодом, инвертируйте значения (`255 - значение`).
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 120 ₽ 108 ₽ (экономия 12 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.