КАК СДЕЛАТЬ НОЧНИК НА ARDUINO [Уроки Ардуино #9]

preview_player
Показать описание
В уроке использовались следующие компоненты:
В следующих уроках вам может потребоваться:
___________________________
______________________________________
В этом выпуске вы узнаете: как сделать ночник на ардуино с помощью rgb светодиода; как можно сделать простой светильник ночник с переключением разных цветов. Этот arduino проект можно использовать например, как ночник детский, так как детям нравятся разные яркие цвета и их переключение с помощью кнопки будет очень интересно.
___
Смотрите наши видео, в которых мы простым языком рассказываем о радиотехнике, электронике и радиоэлектронике!
Наши уроки будут особенно полезны для начинающих радиолюбителей и студентов радиотехнических ВУЗов.
В видеороликах мы даём основы электроники: определения, описания, схемы и принцип работы различных элементов радиотехники.
В наших видео вы узнаете: что такое транзистор, диод, конденсатор, резистор, микросхема, электрический ток и много других разных интересных вещей и явлений, связанных с электроникой.
Рекомендации по теме
Комментарии
Автор

const int BLED=9;

const int GLED=10;

const int RLED=11;

const int BUTTON=2;

boolean lastButton = LOW;

boolean currentButton = LOW;

int ledMode = 0;

void setup ()

{

pinMode (BLED, OUTPUT);

pinMode (GLED, OUTPUT);

pinMode (RLED, OUTPUT);

pinMode (BUTTON, INPUT);

}

boolean debounce(boolean last)

{

boolean current = digitalRead(BUTTON);

if (last != current)

{

delay(5);

current = digitalRead(BUTTON);

return current;

}

}

void setMode(int mode)

{

// Красный

if (mode == 1)

{

digitalWrite(RLED, HIGH);

digitalWrite(GLED, LOW);

digitalWrite(BLED, LOW);

}

// Зеленый

else if (mode == 2)

{

digitalWrite(RLED, LOW);

digitalWrite(GLED, HIGH);

digitalWrite(BLED, LOW);

}

// Синий

else if (mode == 3)

{

digitalWrite(RLED, LOW);

digitalWrite(GLED, LOW);

digitalWrite(BLED, HIGH);

}

// Пурпурный (Красный+ Синий)

else if (mode == 4)

{

analogWrite(RLED, 127);

analogWrite(GLED, 0);

analogWrite(BLED, 127);

}

// Бирюзовый (Синий+ Зеленый)

else if (mode == 5)

{

analogWrite(RLED, 0);

analogWrite(GLED, 127);

analogWrite(BLED, 127);

}

// Оранжевый (Зеленый+ Красный)

else if (mode == 6)

{

analogWrite(RLED, 127);

analogWrite(GLED, 127);

analogWrite(BLED, 0);

}

// Белый (Зеленый+ Красный+ Синий)

else if (mode == 7)

{

analogWrite(RLED, 85);

analogWrite(GLED, 85);

analogWrite(BLED, 85);

}

// Выключен (mode = 0)

else

{

digitalWrite(RLED, LOW);

digitalWrite(GLED, LOW);

digitalWrite(BLED, LOW);

}

}

void loop()

{

currentButton = debounce(lastButton);

if (lastButton == LOW && currentButton == HIGH)

{

ledMode++;

}

lastButton = currentButton;

if (ledMode == 8)

ledMode = 0;

setMode(ledMode);

}
Просто так, чтобы яндекс не открывать.

luchtephero
Автор

огромное спасибо автору за очередной обучающий ролик!!! респект за труд
ВНИМАНИЕ ДЛЯ ТЕХ, КТО СПИСЫВАЕТ СКЕТЧ С ЭКРАНА!!! на 4.15
между lustbutton и currentbutton стоит знак равно!!! хорошо хоть автор скетч в описании оставил, а то я целый час бился и не мог понять, почему у меня через жопу все работает. диод цвета менял совершенно хаотично

krolichek
Автор

Добрый день! Все очень доходчиво и понятно. Хотелось бы видеть работу ардуино с временем (включение и выключение в определенное время), датчиками освещения, как включить приборы работающие от 220 или 12 вольт, переключение между разными источниками питания.

АлексейТрещев-эы
Автор

Белый цвет, исходя из треугольника цветности, получится примерно при 85 синего, 75 красного и 60 зеленого. В таких пропорциях работало в старых цветных телевизорах. С таким светодиодом надо будет подобрать экспериментально.

АлександрФедулов-пэ
Автор

Согласен с теми, кто критикует отсутствие схемы. Есть еще одна просьба, в описании показывать текст программы и писать побольше комментариев в операциям программы, это очень облегчит усвоение материала тем, кто никогда не писал программы. Спасибо за работу.

anlaz
Автор

Если интересно, можете попробовать использовать не предустановленные значения, а рандомные, через функцию random(0, 127) - аргументы её обязательно оставить именно такими, чтобы покрыть весь доступный диоду диапазон rgb.

dzyaniskurgan
Автор

Спасибо огромное, пришлось разбираться вместе с дочкой, 6 класс, учитель задал светофор на кнопке после двух уроков подкинь. Без вами бы совсем не разобрались.

ПолинаХадсон
Автор

Спасибо за доходчивые и подробные видео дружище!

АлексейМихайлов-шн
Автор

В первую очередь выражаю благодарность автору за видеоуроки и в тоже время подлизываюсь - мне необходим модулятор речи в голос Дарта Вейдэра, чтобы девушку напугать.И вот просьба хотя бы корявую попробовать версию сделать на Ардуине или каким-то образом конденсатор включать.А критиков самсэй не слушайте-большинство из них ничего даже подобного вашему не создало. Их душат жабы зависти и злобы.Да прибудет с нами сила.Ответы оставлять под мэссэджем - буду раз в неделю проверять(пока с Китая 2 месяца везут Ардуин). Хочу упредить 50% гневных комментов - необходима портативная версия, которую бы я смог вмонтировать в шлем, а ПК слишком громоздкий и модуляцию хочу в реальном времени.Пока пересмотрю уроки по ШИМ, наверное. Готовые устройства из магазина тоже не годятся - мой голос далёк от Дарта Эникена, поэтому я бы хотел иметь возможность перенастраивать глубину модуляции как скажем в NERO, но опять-таки в реальном времени.Спасибо, если дочитали.Кто не дочитал и палец вниз - средний палец вам вверх, .!..

batmanmageridon
Автор

супер видосы)!!! понятные подробные) и интересные. а кто не успевает пусть перемотают назад.\

АлексейПопелюх-бш
Автор

void loop()
{
currentButton = debounce (lastButton);
if (lastButton == LOW && currentButton == HIGH)
{
ledMode++;
}
lastButton currentButton;

if (ledMode == 8)
ledMode = 0;
setMode(ledMode);
}
на видео ошибка между lastButton currentButton; не хвотает =

everythingabout
Автор

Маленькое уточнение: RGB светодиоды бывают как с общим катодом, так и с общим анодом!

samantafox
Автор

Код на видео косячный. Берите код из ссылки. Автор редиска.

МаксимБервинов
Автор

Классно, только что читал книгу Блум Джереми - Изучаем Arduino. Инструменты и методы технического волшебства - 2015 58 станица и тут ваш видео. Скетч точ в точ как у книги)

KazSabak
Автор

Ардуино с ночником плохо справляется, когда будет ночник на процессоре I7?:)))

alexbond
Автор

у меня проблемка с кнопкой, проги работают но сами по себе, без участию кнопки-я так понимаю дело в резисторе на 10 кОМ? когда я жму на кнопку он стопит цвет, если отпускаю дальше перечисляет.

romn
Автор

Функции уже были в предыдущем видео, лучше и здесь написать свою функцию для установки цвета:

void setRGB(unsigned red, unsigned green, unsigned blue) {
analogWrite(RLED, red);
analogWrite(GLED, green);
analogWrite(BLED, blue);
}

тогда вместо
// Пурпурный (Красный+ Синий)
else if (mode == 4)
{
analogWrite(RLED, 127);
analogWrite(GLED, 0);
analogWrite(BLED, 127);
}

достаточно будет её вызвать:
// Пурпурный (Красный+ Синий)
else if (mode == 4)
{
setRGB(127, 0, 127);
}

В остальных случаях подобным образом, сильно сократит код и упростит его чтение

cpt-koala
Автор

Что такое setMode?
откуда это появилось, почему про это ранее не слова?

newandsnewands
Автор

все супер и доходчиво! но пожалуйста не тряси рукой, когда держишь детальки и рассказываешь :\

ntne
Автор

Что делать у меня при включении всей системы ледсветильник начянает мигать а при нажатии кнопки 5 сек и меняет свет затем обратно мигает.Помогите пж

streamkol