Уроки Arduino #7 - подключение светодиода

preview_player
Показать описание
В этом уроке рассмотрим подключение светодиодов к Arduino, научимся рассчитывать токоограничивающий резистор, а также управлять светодиодом при помощи кнопки.

▼ Пачку светодиодов можно купить здесь▼

▼ Огромный стартовый набор GyverKIT ▼
▼ Уроки Arduino на сайте ▼
▼ Модули и датчики с Али ▼
▼ Страница "Заметок Ардуинщика" ▼

Теги: #arduino #уроки #ардуино #alexgyver
●●●●●●●●●●●●●●●●●●●●
Рекомендации по теме
Комментарии
Автор

Ребята, я берусь за уроки с новыми силами, сейчас озвучено ещё 4 штуки, и ещё для нескольких написан сценарий. В начале осени думаю выйдут все уроки! Дальше будем распиливать библиотеки и всякие модули

ArduNotes
Автор

Благодаря тебе познакомился с ардуино и сижу в 30 лет светодиоды включаю)
Спасибо, Саша. Лучшие уроки!

Strannick
Автор

Просто супер понятно, логично. Нет воды! Все наглядно. Глаз радуется качественному контенту! Спасибо большое!

kotowor
Автор

D4 и D5 пин. (2 светодиода)
Код, который убирает нужду в перезагрузке после загорания всех светодиодов.


boolean butt_flag = 0;
boolean butt;
boolean led_flag = 0;
unsigned long last_press;
byte LEDcounter = 4;


void setup() {
pinMode(A5, INPUT_PULLUP);
Serial.begin(9600);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
digitalWrite(4, 0);
digitalWrite(5, 0);
}

void loop() {
butt = !digitalRead(A5); // считать текущее положение кнопки

if (butt == 1 && butt_flag == 0 && millis() - last_press > 100) {
butt_flag = 1;
Serial.println("Button pressed");
digitalWrite(LEDcounter, 1); //Включаем светодиод с текущим номером
LEDcounter++;
if (LEDcounter > 6) { // У нас 4 и 5 pin, 6-го нет, поэтому сбрасываем.
digitalWrite(4, 0); // Выключаем D4 pin
digitalWrite(5, 0); // Выключаем D5 pin
LEDcounter = 4; // Сбрасываем до первого pin'a
}
last_press = millis();
}
if (butt == 0 && butt_flag == 1) {
butt_flag = 0;
Serial.println("Button released");
}
}

bassdevware
Автор

Сделай пожалуйста новых уроков - уже третий день смотрю и всё проделываю сам - очень круто и очень тебе благодарен за новые знания и твоё время!!

vidi
Автор

Спасибо за то, что ты делаешь) уже на данный момент это ЛУЧШЕЕ пособие в рунете

FastReviewer
Автор

Какие неадекваши в комментариях, уф...
Хороший урок - простой, понятный, короткий, наглядный! И тема с домашним заданием и разбором на следующем уроке очень крутая

energochel
Автор

Ура, ты вернулся!
Лайк не глядя, продолжай пилить видосы про ардуино, у тебя классно получается!

ДмитрийДорофеев-эь
Автор

Спасибо Вам огромное за старания! Прекрасные уроки, Ардуино открыл для себя буквально пару дней назад. Сегодня выходной. Завёл по Вашему совету тетрадку, всё конспектирую, и это отличный метод для понимания. Сегодня начал изучать Ваши уроки, с утра, дошёл до 7 урока, и мне очень захотелось сделать так, чтобы диоды по очереди зажигались, и в обратном порядке гасли. Я вспомнил про такую штуку, как Switch, и благодаря ей реализовал то, что хотел. У меня всего три диода, вот такой код получился:
boolean butt_flag = 0;
boolean butt;
boolean led_flag = 0;
unsigned long last_press;
byte LEDcounter = 4;
void setup() {
pinMode(3, INPUT_PULLUP); // сюда подключена кнопка
Serial.begin(9600);
pinMode(4, OUTPUT); // сюда подключен светодиод
pinMode(5, OUTPUT); // сюда подключен светодиод
pinMode(6, OUTPUT); // сюда подключен светодиод

digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);

}

void loop() {
butt = !digitalRead(3); // считать текущее положение кнопки

if (butt == 1 && butt_flag == 0 && millis() - last_press > 300) {
butt_flag = 1;
Serial.println("Button pressed");
digitalWrite(LEDcounter, 1); // включить светодиод с текущим номером
LEDcounter++; // увеличить номер для следующего включения
switch (LEDcounter) {
case 8:digitalWrite(6, 0);

break;
case 9:digitalWrite(5, 0);

break;
case 10:digitalWrite(4, 0);
LEDcounter=4;
break;
}

last_press = millis();
}
if (butt == 0 && butt_flag == 1) {
butt_flag = 0;
Serial.println("Button released");
}
}

ohmygodisaprettyfalcon
Автор

Большое спасибо за хорошие видео уроки. Ну прям неистовое состояние, Я В ПЕРВЫЕ САЖУСЬ ЗА УРОКИ ВОПРЕКИ ЧТО ЭТО ДОМАШНЯЯ РАБОТА. Знаешь это как в прорубь зайти. Год как школу закончил. А тут за домашку сел. СПАСИБО!!!

МыТроеточие
Автор

Сижу 3.5 ч. пытаюсь сообразить домашнее задание

ПетроПавлович-йы
Автор

Наконец то, новые Заметки Ардуинщика! Ура.

notDANGEROUSnot
Автор

Скрытая видео/аудио камера по датчику движения.
Технология умный дом. Ни одного путного видео на эту тему на базе ардуино.
Кто за - ставь лайк посту чтобы Алекс увидел

ДмитрийДьяченко-пв
Автор

если вдруг кому надо то я написал прошивку на 3 диода (основа для управления вентилятором на 3 скорости):
boolean btn;
boolean btn_flag = 0;
unsigned long last_press;
byte press_count = 0;

void setup() {
pinMode(7, INPUT_PULLUP); // сюда подключена кнопка
Serial.begin(9600);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
digitalWrite (6, 0);
digitalWrite (4, 0);
digitalWrite (5, 0);
}
void loop() {
btn = !digitalRead(7); // считать текущее положение кнопки
if (btn == 1 && btn_flag == 0 && millis() - last_press > 100) {
btn_flag = 1;
if (press_count > 3){
press_count = 0;
}
press_count ++;
if (press_count == 1) {
Serial.println("fan 0");
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
}
if (press_count == 2) {
Serial.println("fan 1");
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
}
if (press_count == 3) {
Serial.println("fan 2");
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 0);
}
if (press_count == 4) {
Serial.println("fan 3");
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
}
last_press = millis();
}
if (btn == 0 && btn_flag == 1 && press_count >= 0 && millis() - last_press > 100) {
btn_flag = 0;
last_press = millis();
}

}

НиколайПотапенко-ъб
Автор

Балдежный урок. Простая тема, но объяснения проще этого не видел)

DimaSsooTv
Автор

Идея для видео "на потом" - собрать и прошить свою ардуину - с удобными портами, с немного поменянной для удобства и производительности рассыпухой, на самодельной плате, со своим форматом шилдоф=)

Harad_nur
Автор

Спасибо за уроки! Очень хорошее объяснение материала.
А для всех троечников уставших думать над домашним заданием отправляю решение для очередного зажигания и отключения светодиодов.
Объявите вторую переменную byte LEDcounter2 = 10; и присвойте её для состояния порта...
if (LEDcounter > 10) {
LEDcounter2--;
digitalWrite(LEDcounter2, 0);
Serial.print("LEDcounter2 = "); // вывод в монитор порта для мониторинга
Serial.println(LEDcounter2); // вывод в монитор порта для мониторинга состояния переменной 2 счетчика
}
if (LEDcounter == 16){ // при достижении первого счетчика значения 16
LEDcounter = 4; // "обнуляем" счетчики и дальше зажигаем огни и радуемся!
LEDcounter2 = 10;
}
P.S. Для понимания гляди на изменения счетчиков в мониторе порта!

abibor
Автор

извините, а можно урок про пищалку сделать

MrStrawberryyy
Автор

Для экономии энергии, LED можно подключать через SMD катушку вместо резистора, получается понижайка - BUCK CONVERTER.

alexloktionoff
Автор

Здорово, понятно и прочая хвала). Заказал стартер набор ардуино, будем пробовать.

swasy
welcome to shbcf.ru