359043
столько раз учителя, ученики и родители
посетили сайт «Инфоурок»
за прошедшие 24 часа
+Добавить материал
и получить бесплатное
свидетельство о публикации
в СМИ №ФС77-60625 от 20.01.2015
Дистанционные курсы профессиональной переподготовки и повышения квалификации для педагогов

Дистанционные курсы для педагогов - курсы профессиональной переподготовки от 5.520 руб.;
- курсы повышения квалификации от 1.200 руб.
Престижные документы для аттестации

ВЫБРАТЬ КУРС СО СКИДКОЙ ДО 70%

ВНИМАНИЕ: Скидка действует ТОЛЬКО сейчас!

(Лицензия на осуществление образовательной деятельности № 5201 выдана ООО "Инфоурок")

ИнфоурокДругоеКонспектыУрок №3 по робототехнике "Подключение нескольких светодиодов к Ардуино"

Урок №3 по робототехнике "Подключение нескольких светодиодов к Ардуино"

библиотека
материалов
Скачать материал целиком можно бесплатно по ссылке внизу страницы.

4 урок Arduino


Управление несколькими светодиодами.
В этом
уроке вы узнаете, как управлять несколькими светодиодами. Для этого установите ещё 3 светодиода на плату и соедините их с резисторами и выводами Ardunio. Для того, чтобы включать и выключать светодиоды по очереди надо написать программу:

//Multi LED Blink


int led1Pin = 4;

int led2Pin = 5;

int led3Pin = 6;

int led4Pin = 7;


void setup() {

//установка пинов как ВЫХОД

pinMode(led1Pin, OUTPUT);

pinMode(led2Pin, OUTPUT);

pinMode(led3Pin, OUTPUT);

pinMode(led4Pin, OUTPUT);

}


void loop() {

digitalWrite(led1Pin, HIGH);//зажечь светодиод

delay(1000);//задержка 1 сек

digitalWrite(led1Pin, LOW);//потушить светодиод

delay(1000);//задержка 1 сек


//do the same for the other 3 LEDs

digitalWrite(led2Pin, HIGH);//зажечь светодиод

delay(1000);// задержка 1 сек

digitalWrite(led2Pin, LOW);//потушить светодиод

delay(1000);//задержка 1 сек


digitalWrite(led3Pin, HIGH);//зажечь светодиод

delay(1000);// задержка 1 сек

digitalWrite(led3Pin, LOW);//потушить светодиод

delay(1000);//задержка 1 сек


digitalWrite(led4Pin, HIGH);//зажечь светодиод

delay(1000);// задержка 1 сек

digitalWrite(led4Pin, LOW);//потушить светодиод

delay(1000);//задержка 1 сек

}

Эта программа будет отлично работать, но это не самое рациональное решение. Код надо изменить. Для того, чтобы программа работала раз за разом мы применим конструкцию, которая называется цикл For.
Циклы удобны, когда надо повторить одно и тоже действие несколько раз. В коде, проведенном выше мы повторяем строки

digitalWrite (led4Pin, HIGH);

delay (1000);

digitalWrite (led4Pin, LOW);

delay (1000);

Регулировка яркости светодиодов
Иногда вам надо будет менять яркость светодиодов в программе. Это можно сделать с помощью команды
analogWrite(). Эта команда так быстро включает и выключает светодиод, что глаз не видит это мерцание. Если светодиод половину времени будет включён, а половину выключен, то визуально будет казаться, что он светится в половину своей яркости. Это называется широтно-импульсная модуляция (ШИМ или PWM по-английски). Шим применяется довольно часто, так как с ее помощью можно управлять "аналоговым" компонентом с помощью цифрового кода. Не все выводы Ardunio подходят для этих целей. Только те выводы, около которых нарисовано такое обозначение "~". Вы увидите его рядом с выводами 3,5,6,9,10,11.
Соедините один из ваших светодиодов с одним из выводов ШИМ(у автора это вывод 9). Теперь запуститьскетч мигания светодиода, но прежде измените команду 
digitalWrite() на analogWrite()analogWrite() имеет два аргумента: первый это номер вывода, а второй- значение ШИМ (0-255), применительно к светодиодам это будет их яркость свечения, а для электродвигателей скорость вращения. Ниже представлен код примера для разной яркости светодиода.

//Меняем яркость светодиода


int ledPin = 9;//к этому выводу подсоединен светодиод

void setup() {

pinMode(ledPin, OUTPUT);// инициализация пина на вывод

}


void loop() {

analogWrite(ledPin, 255);//полная яркость (255/255 = 1)

delay(1000);// пауза 1 сек

digitalWrite(ledPin, LOW);//выключить светодиод

delay(1000);//пауза 1 сек


analogWrite(ledPin, 191);//яркость на 3/4 (191/255 ~= 0.75)

delay(1000);//пауза 1 сек

digitalWrite(ledPin, LOW);//выключить светодиод

delay(1000);//пауза 1 сек


analogWrite(ledPin, 127);//половина яркости (127/255 ~= 0.5)

delay(1000);// пауза 1 сек

digitalWrite(ledPin, LOW);//выключить светодиод

delay(1000);//пауза 1 сек


analogWrite(ledPin, 63);//четверть яркости (63/255 ~= 0.25)

delay(1000);// пауза 1 сек

digitalWrite(ledPin, LOW);//выключить светодиод

delay(1000);//пауза 1 сек

}

Попробуйте поменять значение ШИМ в команде analogWrite (),чтобы увидеть, как это влияет на яркость.
Далее вы узнаете, как регулировать яркость плавно от полной до нулевой. Можно ,конечно, скопировать кусок кода 255 раз

analogWrite(ledPin, brightness);

delay(5);//short delay

brightness = brightness + 1;

Но, сами понимаете - это будет не практично. Для этого лучше всего использовать цикл FOR, который использовали ранее.
В следующем примере используются два цикла, один для уменьшения яркости от 255 до 0

for (int brightness=0;brightness=0;brightness--){


analogWrite(ledPin,brightness);

delay(5);


}

delay(5) используется, чтобы замедлить скорость нарастания и уменьшения яркости 5*256=1280 мсек= 1.28 сек.)
В первой строке используется "
brightness-" ,для того чтобы значение яркости уменьшалось на 1, каждый раз, когда цикл повторяется. Обратите внимание, что цикл будет работать до тех пор, пока brightness >=0.Заменив знак > на знак >= мы включили 0 в диапазон яркости. Ниже смоделирован этот скетч.

//плавно меняем яркость


int ledPin = 9;//к этому пину подключен светодиод


void setup() {

pinMode(ledPin, OUTPUT);// инициализация пина на выход

}


void loop() {

//плавно увеличиваем яркость (0 to 255)

for (int brightness=0;brightness=0;brightness--){

analogWrite(ledPin,brightness);

delay(5);

}


delay(1000);//ждем 1 сек

//плавно уменьшаем яркость (255 to 0)

for (int brightness=255;brightness>=0;brightness--){

analogWrite(ledPin,brightness);

delay(5);

}


delay(1000);//ждем 1 сек

}

}

Это видно не очень хорошо, но идея понятна.


Общая информация

Номер материала: ДВ-426558

Вам будут интересны эти курсы:

Курс профессиональной переподготовки «Основы религиозных культур и светской этики: теория и методика преподавания в образовательной организации»
Курс «Менеджер по продажам»
Курс «Мерчендайзинг»
Курс «Логистика»
Курс повышения квалификации «Методика написания учебной и научно-исследовательской работы в школе (доклад, реферат, эссе, статья) в процессе реализации метапредметных задач ФГОС ОО»
Курс повышения квалификации «Формирование компетенций межкультурной коммуникации в условиях реализации ФГОС»
Курс повышения квалификации «Экономика предприятия: оценка эффективности деятельности»
Курс повышения квалификации «Введение в сетевые технологии»
Курс профессиональной переподготовки «Организация деятельности по подбору и оценке персонала (рекрутинг)»
Курс повышения квалификации «Применение MS Word, Excel в финансовых расчетах»
Курс повышения квалификации «Финансы: управление структурой капитала»
Курс профессиональной переподготовки «Методика организации, руководства и координации музейной деятельности»
Курс профессиональной переподготовки «Организация процесса страхования (перестрахования)»
Курс профессиональной переподготовки «Управление качеством»
Курс профессиональной переподготовки «Стратегическое управление деятельностью по дистанционному информационно-справочному обслуживанию»

Благодарность за вклад в развитие крупнейшей онлайн-библиотеки методических разработок для учителей

Опубликуйте минимум 3 материала, чтобы БЕСПЛАТНО получить и скачать данную благодарность

Сертификат о создании сайта

Добавьте минимум пять материалов, чтобы получить сертификат о создании сайта

Грамота за использование ИКТ в работе педагога

Опубликуйте минимум 10 материалов, чтобы БЕСПЛАТНО получить и скачать данную грамоту

Свидетельство о представлении обобщённого педагогического опыта на Всероссийском уровне

Опубликуйте минимум 15 материалов, чтобы БЕСПЛАТНО получить и скачать данное cвидетельство

Грамота за высокий профессионализм, проявленный в процессе создания и развития собственного учительского сайта в рамках проекта "Инфоурок"

Опубликуйте минимум 20 материалов, чтобы БЕСПЛАТНО получить и скачать данную грамоту

Грамота за активное участие в работе над повышением качества образования совместно с проектом "Инфоурок"

Опубликуйте минимум 25 материалов, чтобы БЕСПЛАТНО получить и скачать данную грамоту

Почётная грамота за научно-просветительскую и образовательную деятельность в рамках проекта "Инфоурок"

Опубликуйте минимум 40 материалов, чтобы БЕСПЛАТНО получить и скачать данную почётную грамоту

Включите уведомления прямо сейчас и мы сразу сообщим Вам о важных новостях. Не волнуйтесь, мы будем отправлять только самое главное.
Онлайн-конференция Идет регистрация