Грибная светодиодная лампа Arduino

Источник:

Введение

Честно говоря, я сделал это, потому что мне было очень скучно, а также я хотел что-нибудь классное для своей спальни, но когда я закончил, мой отец убедил меня оставить это в гостиной, потому что ему это понравилось, так и произошло, и когда мои бабушка и дедушка приехали в гости, им всем это очень понравилось, хотя они не были поклонниками сумасшедших странных волшебных ламп lsdeeeee.

Что это делает

Это прекрасное творение имеет три режима.

Изменение цветов с помощью двух потенциометров (два значения в «квадратных» данных RGB + желтый)
Случайный переход цвета, интенсивность светодиода меняется с помощью одного потенциометра, а время перехода контролируется вторым
Отображается случайный цвет, потенциометры работают так же, как и в последнем режиме.
Аппаратное обеспечение

Компоненты должны быть легкодоступными, я использовал самые распространенные. Кстати, я не рекомендую покупать их сразу, потому что вы можете оказаться в сожженном доме, но, честно говоря, меня это не волнует.

2 х потенциометра

например ПК1023д

включить/выключить

кнопка ползункового переключателя (размер должен быть 4х9 мм)

переключатель режима

кнопка (12,2х12,2мм) с квадратным верхом/сенсорный датчик

ардуино

arduino nano/uno (плата, имеющая как минимум 3 контакта ШИМ), но лучше использовать платы меньшего размера, потому что они легко помещаются

5 светодиодов

RGB светодиоды с общим катодом

адаптер

вы можете использовать любой переходник, который будет раз��елять постоянный ток на vcc и землю (o

р больше)

Некоторые детали питаются от цифровых контактов вместо обычного заземления или напряжения 5 В. Это безопасно, но это сократит срок службы Arduino.

Программное обеспечение

#include

целое состояние = 4;
интервал vcc = 2;
интервал vcc2 = 5;
int земля = 3;
int gnd2= 13;
интервал b_pin = 9;
интервал g_pin = 10;
интервал r_pin = 11;
режим int = 0;
интенсивность плавания;
интервал OldbuttonState;
цвета структуры {int intblue;
интервал между;
интервал intgreen;
int intyell;};
цвета столбцов;
интервал сек;
интервал прим;
int dir1 = случайное (1,256);
int dir2 = случайное (1,256);
int dir3 = случайное (1,256);
плавать xVal;
плавать yVal;
#define pot1 A0
#define pot2 A1
беззнаковое длинное время;
интервал потенциометра;
плавающий потенциометр;

недействительная настройка() {
pinMode (b_pin, ВЫХОД);
pinMode (g_pin, ВЫХОД);
pinMode (r_pin, ВЫХОД);
pinMode (VCC, ВЫХОД);
pinMode (vcc2, ВЫХОД);
pinMode (состояние, ВВОД);
pinMode (земля, ВЫХОД);
pinMode (gnd2, ВЫХОД);
Серийный.начало(9600);

}

недействительный цикл() {

digitalWrite(vcc, ВЫСОКИЙ);
digitalWrite(vcc2, ВЫСОКИЙ);
digitalWrite(земля, НИЗКИЙ);
digitalWrite(gnd2, LOW);
int buttonState = digitalRead (состояние);

if (buttonState==HIGH и buttonState != OldbuttonState){
режим++;

}
OldbuttonState = buttonState;

если (режим == 0) {
цвет();
}
иначе, если (режим == 1) {
изменить();
}
иначе, если (режим == 2) {
рндм();
}
иначе, если (режим >=2){
режим = 0;
}
xVal = AnalogRead(pot1);
yVal = AnalogRead(pot2);

потИнтен = xVal/4;
PotTime = yVal / 200;

Время = миллис();
прим = Время/1000;

}
недействительный цвет () {

cols.intblue = xVal/1023 * (1-(yVal/1023)) * 255;
cols.intred = (1-(xVal/1023)) * (1-(yVal/1023)) * 255;
cols.intgreen =xVal/ 1023* yVal/1023 * 255;
cols.intyell = ((1-(xVal/1023))* yVal/1023 * 255)/2;

цветСвет();

}
недействительное изменение () {

if (prim — sec >= potTime){

сек = прим;

если (dir1== cols.intblue){
реж1 = случайный (1,256);
}
if(dir1 >cols.intblue){
cols.intblue=cols.intblue+1;
}
если(dir1< cols.intblue){
cols.intblue=cols.intblue-1;
}
если (dir2== cols.intgreen){
реж2 = случайный (1,256);
}
if(dir2> cols.intgreen ){
cols.intgreen =cols.intgreen+1;
}
if(dir2< cols.intgreen){
cols.intgreen=cols.intgreen-1;
}
если (dir3== cols.intred){
реж3 = случайный (1,256);
}
if(dir3> cols.intred ){
cols.intred=cols.intred+1;
}
если (dir3 < cols.intred) {
cols.intred=cols.intred-1;
}

}

cols.intyell=0;

режимыСветодиод();

}
недействительный ��ндм () {

if (prim — sec >= (potTime + 2)){
сек = прим;

cols.intyell = 0;
cols.intblue= случайный(0,256);
cols.intgreen= случайный(0,256);
cols.intred= случайный(0,256);

if (cols.intblue == 0 и cols.intgreen==0){
столбец

18:55
9
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

Корпус для адаптера питания
📁 Корпус для преобразователя питания сПодробнее
Корпус для DC регулируемого источника
📁 Корпус для DC регулируемого источникаПодробнее
Крепление "народного" налобного фонаря
📁 Крепление «народного» налобного фонаряПодробнее
Ручка настройки Yaesu FT-817
📁 Ручка VFO для FT-817/818. ИспользуйтеПодробнее
Модель кнопки для Imax B6
Вам понадобится капля клея, чтобыПодробнее
Антенный изолятор "орешек"
Это стандартный изолятор дляПодробнее
Адаптер питания Yaesu FT-817
📁 Вертикальный адаптер под коннекторыПодробнее
Корпус для ESP32 WROOM
📁 Корпус для ESP32 WROOM 📐 STL 🪵 PETGПодробнее
Корпус для ESP32
📁 3D модель корпуса для платы NodeMCU наПодробнее
Станок для намотки катушек с филаментом
📁 Станок для намотки катушек сПодробнее
Кабельный ввод
📁 3D модель для печати кабельнойПодробнее
Кабельный ввод #2
📁 Компактный контейнер с завинчивающейсяПодробнее
Кабельный гермоввод #3
📁 3D модель для печати кабельногоПодробнее
Кабельные вводы различных размеров
📁 Кабельные вводы различных размеровПодробнее
Распределительная коробка
📁 3D модель для печати распределительнойПодробнее
Водозащищенный кабельный ввод
📁 3D модель кабельного ввода сПодробнее
Кабельный ввод #4
📁 3D модель для печати качественногоПодробнее
Распределительная коробка с креплением на стену
📁 Распределительная коробка с креплениемПодробнее
Адаптеры для SIM карт - 3D модель для печати
📁 Адаптеры для SIM карт — 3D модель дляПодробнее
Корпус для метеодатчика на ESP8266
📁 Корпус для метеодатчика на ESP8266Подробнее
Улучшенный дрон «Nano Long Range» на 1х18650
📁 Улучшенный дрон «Nano Long Range» наПодробнее
Электронные "песочные часы"
📁 Электронные «песочные часы» 📐 STLПодробнее
Контейнер для батарей ft-817
📁 Контейнер для аккумулятора FT-817 сПодробнее
Защитный каркас Yaesu FT 817
📁 Защитные рельсы для Yaesu FT 817 и 818Подробнее
YAESU FT-817 Рельсы
📁 Рельсы с подвесом для тангенты иПодробнее
Портативный настольный источник питания
📁 Портативный настольный источникПодробнее
Кейс для хранения батарей ( 21700, 18650, AA, AAA)
📁 Кейс для хранения батарей ( 21700Подробнее
Каркас для батарей 18650
📁 Корпус для Heltec V4 с GPS, проектПодробнее
Корпус для датчика на esp8266
📁 Корпус для датчика на esp8266 📐 STLПодробнее
Корпус для метеодатчика с анемометром
📁 Корпус для метеодатчика с анемометромПодробнее
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.