Устройство предназначено для управления светом. Рассмотрим два варианта управления светом либо включение или выключение осветительного прибора, либо изменение свечения светодиодной ленты.
Вариант 1:
В первом варианте будем включать ваш осветительные прибор в момент когда уровень освещенности слишком низок и вы хотели бы включить свет. Устройство само по заданному уровню определит, когда его включить и вы всегда будете находится при достаточном уровне освещенности.
Описание работы:
Для начала работы подключите питание к Arduino. Подключите к реле источнику света. Теперь потенциометром отрегулируйте уровень при котором будет включаться реле, а значит и наш источник света.
Нам понадобится:
- Arduino Uno х 1шт.
- Trema Set Shield х 1шт.
- Trema-модуль реле х 1шт.
- Trema-модуль потенциометр х 1шт.
- Trema-модуль датчик освещённости х 1шт.
- Проводков для пайки. (в ассортименте: 5 см, 10 см, 20 см)
Схема сборки:
- Устанавливаем Trema Set Shield в Arduino Uno.
- Устанавливаем Trema-модуль потенциометр во 2 посадочную площадку.

- Устанавливаем Trema-модуль реле в 4 посадочную площадку.

- Устанавливаем Trema-модуль датчик освещённости в 6 посадочную площадку.

- Подключаем лампочку через реле, как показано на рисунке.

Код программы:
const uint8_t pinDatL = A3; // Объявляем пин для работы с датчиком звука.
const uint8_t pinPot = A0; // Объявляем пин для работы с потенциометром.
const uint8_t pinRele = 3; // Объявляем пин для работы с реле.
//
int potValue; // Переменная для считывания показания потенциометра.
int datValue; // Переменная для считывания показании датчика освещенности.
//
void setup() //
{ //
pinMode(pinRele, OUTPUT); // Переводим вывод pinRele в режим выхода.
} //
//
void loop() //
{ //
potValue = analogRead(pinPot); // Считываем показания потенциометра
datValue = analogRead(pinDatL); // Считываем показания датчика освещенности.
//
if(potValue + 5 < datValue){digitalWrite(pinRele, HIGH);} // Если показания потенциометра + 5 меньше показаний датчика освещенности, то включаем реле.
if(potValue - 5 > datValue){digitalWrite(pinRele, LOW);} // Если показания потенциометра - 5 больше показаний датчика освещенности, то выключаем реле.
} //
Алгоритм работы:
В начале скетча (до кода setup) выполняются следующие действия:
- Объявляем пины для работы с Trema-модуль реле, Trema-модуль потенциометром, Trema-модуль датчиком освещённости.
- Объявляем переменные задействованные в скетче.
В коде setup выполняются следующие действия:
- Переводим выводы pinRele для реле в режим выхода.
В коде loop выполняются следующие действия:
- Считываем показания потенциометра.
- Считываем показания датчика освещенности.
- Если показания потенциометра + 5 меньше показаний датчика освещенности, то включаем реле.
- Если показания потенциометра - 5 больше показаний датчика освещенности, то выключаем реле.
Вариант 2:
Во втором варианте мы будем управлять светодиодной лентой. А именно чем темнее помещение, тем ярче будет светить светодиодная лента. Постепенный переход из дневного времени суток в ночной благоприятно влияет на организм и вы не заметите как наступит ночь.
Описание работы:
Для начала работы подключите питание к Arduino. Подключите источник света через силовой ключ. Теперь в зависимости от уровня освещенности наш источник света будет так же менять свое свечение. При максимальной яркости стороннего света.
Нам понадобится:
- Arduino Uno х 1шт.
- Trema Set Shield х 1шт.
- Trema-модуль cиловой ключ х 1шт.
- Trema-модуль потенциометр х 1шт.
- Trema-модуль датчик освещённости х 1шт.
- Источник питания на 12В. 1А. для Arduino х 1шт.
- Коннектор power jack Мама с клемником для Arduino х 1шт.
- Проводков для пайки. (в ассортименте: 5 см, 10 см, 20 см)
Схема сборки:
- Устанавливаем Trema Set Shield в Arduino Uno.
- Устанавливаем Trema-модуль потенциометр во 2 посадочную площадку.

- Устанавливаем Trema-модуль cиловой ключ в 4 посадочную площадку.

- Устанавливаем Trema-модуль датчик освещённости в 6 посадочную площадку.

- Подключить светодиодную ленту к Источник питания на 12В, через Коннектор с помощью Проводков, как показано на рисунке ниже.

Код программы:
const uint8_t pinDatL = A3; // Объявляем пин для работы с датчиком освещенности.
const uint8_t pinPowerKey = 3; // Объявляем пин для работы с силовым ключом.
//
const int minL = 50; //
const int maxL = 920; //
//
void setup() //
{ //
pinMode(pinPowerKey, OUTPUT); // Переводим вывод pinPowerKey в режим выхода.
} //
//
void loop() //
{ //
if (analogRead(pinDatL) > maxL) {analogWrite(pinPowerKey, 0);} // Если показания с датчика больше макисмальной границы, выключаем силовой ключ.
else // Если показания датчика в диапазоне от минимального значения до максимальго значения.
{analogWrite(pinPowerKey, map(analogRead(pinDatL), minL, maxL, 255, 0));} // Считываем показания датчика освещенности и присваиваем его значения силовому ключу в диапазоне от 255 до 0.
if (analogRead(pinDatL) < minL) {analogWrite(pinPowerKey, 255);} // Если показания с датчика меньше минимальной границы, подаем 100% напряжения на силовой ключ.
} //
Алгоритм работы:
В начале скетча (до кода setup) выполняются следующие действия:
- Объявляем пины для работы с Trema-модулем датчик освещённости, Trema-модулем cиловой ключ.
В коде setup выполняются следующие действия:
- Переводим выводы pinPowerKey для силового ключа в режим выхода.
В коде loop выполняются следующие действия:
- Проверяем показания с датчика освещенности, если показания больше максимального значения, то подаем ноль на силовой ключ.
- Считываем показания датчика освещенности и присваиваем его значения силовому ключу в диапазоне от 255 до 0.
- Проверяем показания с датчика освещенности, если показания меньше минимального значения, то подаем 100% напряжения на силовой ключ.
Особенности:
В скетче присутствуют переменные "minL" - минимальная граница и "maxL" - максимальная граница. Это переменные между которыми датчик освещенности плавно переходит из яркого состояния в темное. И так как датчик освещенности в зависимости от помещения не может достигнуть своего максимального или минимального значения, вводятся константы, для того чтобы, при значениях датчика освещенности которые вышли за пределы диапазона от "minL" до "maxL", источнику света принудительно подается максимальное либо минимальное напряжение. Эти константы регулируются в скетче в начале программы.
Ссылки
Комплект для повторения проекта
Что понадобится
Это быстрый ориентир по основным модулям и деталям. Полный список для повторения проекта смотрите в самой статье.
11 позиций
Arduino Uno R3 (USB ATmega16U2)
Платформа c микроконтроллером ATmega328P на ядре AVR с чипом USB ATmega16U2 для разработки электронных устройств на языке C++
Открыть в iArduino
Trema Set Shield
Плата расширения, которая упрощает процесс подключения модулей к Arduino.
Открыть в iArduino
Реле (Trema-модуль v2.0)
Позволяет коммутировать цепи как переменного, так и постоянного тока до 10 А.
Открыть в iArduino
Потенциометр v2 (Trema-модуль)
Сенсор для настройки скорости вращения двигателя, угол поворота сервопривода, яркости светодиода и т.д.
Открыть в iArduino
Датчик освещённости (Trema-модуль)
Trema-модуль датчик освещённости
Открыть в iArduino
Силиконовые провода 24AWG (10 шт. / 10 см)
Набор из 10 мягких силиконовых проводов сечением 0,2 мм² и длиной 10 см
Открыть в iArduino
Силиконовые провода 24AWG (10 шт. / 5 см)
Набор из 10 мягких силиконовых проводов сечением 0,2 мм² и длиной 5 см
Открыть в iArduino
Силиконовые провода 24AWG (10 шт. / 20 см)
20 см
Открыть в iArduino
Силовой ключ N-канал (Trema-модуль)
Позволит управлять нагрузкой ШИМ сигналом. Например яркостью светодиодной ленты или скоростью мотора
Открыть в iArduino
Источник питания на 12В. 3А.
Источник питания 12 вольт, 2 ампера, центр положительный, DC jack 5,5*2,1 мм
Открыть в iArduino
Коннектор power jack Мама с клемником
Коннектор power jack Мама с клемником для Arduino
Открыть в iArduino