Тема 3: Задание – Ночник
Создайте ночник, который можно включать и выключать с помощью кнопки/потенциометр.
Интенсивность света (аналогово-цифровая запись(PIN ,0..255)/количество горящих светодиодов зависит от окружающего освещения (светового резистора).
Для яркости используйте AnalogdigitalWrite(PIN,0..255), если вы используете несколько светодиодов, используйте digitalWrite(PIN,HIGH/LOW).
При использовании светодиода RGB в потенциометре можно выбрать разные цвета.
Если в эмуляторе все работает, то создайте схему на реальном Arduino.
Оценку можно повысить!
!!!Встройте наборы в коробку или поверхность, которую вы сделали.!!! Посмотрите на картинку
!!!Используйте батарейки или аккумуляторы!!!
Создайте видео работающей лампы и добавьте его в подготовленный отчет.
const int sensorPin = A0;
const int button1Pin = 2;
const int ledPin = 9;
const int L1 = 13;
const int L2 = 12;
const int L3 = 11;
const int L4 = 10;
const int L5 = 8;
int lightLevel, high = 0, low = 1023;
bool ledState = false;
void setup() {
pinMode(button1Pin, INPUT);
pinMode(L1, OUTPUT);
pinMode(L2, OUTPUT);
pinMode(L3, OUTPUT);
pinMode(L4, OUTPUT);
pinMode(L5, OUTPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int button1State = digitalRead(button1Pin);
// Проверяем состояние кнопки
if (button1State == LOW) {
ledState = !ledState;
if (ledState) {
// Включаем светодиоды в зависимости от уровня яркости
if (lightLevel == 0) {
digitalWrite(L1, LOW);
digitalWrite(L2, LOW);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);
digitalWrite(L5, LOW);
digitalWrite(ledPin, LOW);
} else if (lightLevel <= 51) {
digitalWrite(L1, HIGH);
digitalWrite(L2, LOW);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);
digitalWrite(L5, LOW);
digitalWrite(ledPin, LOW);
} else if (lightLevel <= 102) {
digitalWrite(L1, HIGH);
digitalWrite(L2, HIGH);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);
digitalWrite(L5, LOW);
digitalWrite(ledPin, LOW);
} else if (lightLevel <= 153) {
digitalWrite(L1, HIGH);
digitalWrite(L2, HIGH);
digitalWrite(L3, HIGH);
digitalWrite(ledPin, HIGH);
digitalWrite(L4, LOW);
digitalWrite(L5, LOW);
} else if (lightLevel <= 204) {
digitalWrite(L1, HIGH);
digitalWrite(L2, HIGH);
digitalWrite(L3, HIGH);
digitalWrite(ledPin, HIGH);
digitalWrite(L4, HIGH);
digitalWrite(L5, LOW);
} else {
digitalWrite(L1, HIGH);
digitalWrite(L2, HIGH);
digitalWrite(L3, HIGH);
digitalWrite(ledPin, HIGH);
digitalWrite(L4, HIGH);
digitalWrite(L5, HIGH);
}
// Включаем светодиод
} else {
digitalWrite(L1, LOW);
digitalWrite(L2, LOW);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);
digitalWrite(L5, LOW);
digitalWrite(ledPin, LOW);
// Выключаем светодиод
}
delay(250);
}
// Считываем уровень освещенности
lightLevel = analogRead(sensorPin);
// Преобразуем уровень освещенности в диапазон яркости (0-255)
lightLevel = map(lightLevel, 0, 1023, 0, 255);
// Ограничиваем значение яркости
lightLevel = constrain(lightLevel, 0, 255);
// Выводим уровень освещенности в Serial Monitor
Serial.println(lightLevel);
delay(1000);
}


https://drive.google.com/file/d/1f-MZZfVCIdKXBwBz1jXvgnGuj4JYQwKG/view?usp=sharing