Ночная лампа
Описание работы
Ночная лампа(ночник), которая работает ночью.
Основной принцип её работы выглядит так, что от уровня света попадающий в фоторезистор зависит от тусклости RGB LED(например: если света вообще нет, светодиод начинает гореть ясно, а если свет имеется, тогда наоборот).
Естественно, если свет будет, то смысла от ночника никакого нет и тратить её заряд в пустую тоже не стоит.
Конструкция будет работать и светодиод будет гореть если:
- Имеется источник энергии(например: аккумулятор)
- Slideswitch(переключатель) переключен на верную позицию(схож на обычный механизм “вкл/выкл”).
- Фоторезистор не получает свет.
О том, как подробно все это дело работает, можно найти в “Отчетах” видео-отчет.
Список компонентов
- Плата “Arduino UNO”.
- Макет.
- 1 потенциометр.
- 15 провода.
- 4 резистора(3 – 220 Ом, 1 – 10000 Ом).
- 1 RGB LED светодиод.
- 1 Фоторезистор.
- 1 Slideswitch
- 1 аккумулятор.
Код
const int RED_PIN = 13; // красная часть RGB LED
const int GREEN_PIN = 11; // зеленая часть RGB LED
const int BLUE_PIN = 12; // синяя часть RGB LED
const int switchPin = 10; // пин под Slideswitch
const int sensorPin = A0; // аналоговое соединение с потенциометром
const int photoPin = A1; // аналоговое соединение с фоторезистором
int switchState = 0; // статус Slideswitch
int sensorValue = 0;
int photoValue = 0;
int lightLevel, high = 0, low = 1023;
int potValue = 0;
void setup()
{
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
pinMode(switchPin, INPUT);
Serial.begin(9600);
}
void loop()
{
switchState = digitalRead(switchPin);
if (switchState == HIGH) { // если Slideswitch включен
sensorValue = analogRead(sensorPin);
photoValue = analogRead(photoPin);
lightLevel = map(photoValue, 0, 1023, 0, 255);
if (lightLevel < 100) {
potValue = analogRead(sensorPin);
int color = map(potValue, 0, 1023, 0, 5);
switch(color) { //настройка цвета с потенциометром
case 0: // красный
analogWrite(RED_PIN, 255);
analogWrite(GREEN_PIN, 0);
analogWrite(BLUE_PIN, 0);
break;
case 1: // зеленый
analogWrite(RED_PIN, 0);
analogWrite(GREEN_PIN, 255);
analogWrite(BLUE_PIN, 0);
break;
case 2: // синий
analogWrite(RED_PIN, 0);
analogWrite(GREEN_PIN, 0);
analogWrite(BLUE_PIN, 255);
break;
case 3: // желтый
analogWrite(RED_PIN, 255);
analogWrite(GREEN_PIN, 255);
analogWrite(BLUE_PIN, 0);
break;
case 4: // оранжевый
analogWrite(RED_PIN, 255);
analogWrite(GREEN_PIN, 165);
analogWrite(BLUE_PIN, 0);
break;
case 5: // белый
analogWrite(RED_PIN, 255);
analogWrite(GREEN_PIN, 255);
analogWrite(BLUE_PIN, 255);
break;
}
} else { // если уровень света выше порога, выключаем RGB LED
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
}
} else { // если Slideswitch выключен, все выключаем
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
}
}
Конструкция в Tinkercad

Отчеты
Конструкция в реальности

Видеоотчеты
В видео виден сам процесс работы.
На самом видео можно увидеть, что светодиод горит при недостатке света и может менять цвета при помощи потенциометра. Еще стоит подметить что светодиод не будет гореть, если переключатель переключен в “ложное” положение.
https://drive.google.com/file/d/1vGfhKTocCtSWaZiik4xuMM9uJnsfG1ad/view?usp=sharing