Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Доп. образование / Конспекты / Урок №3 по робототехнике "Подключение нескольких светодиодов к Ардуино"

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

Идёт приём заявок на самые массовые международные олимпиады проекта "Инфоурок"

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

1. Бесплатные наградные документы с указанием данных образовательной Лицензии и Свидeтельства СМИ;
2. Призовой фонд 1.500.000 рублей для самых активных учителей;
3. До 100 рублей за одного ученика остаётся у учителя (при орг.взносе 150 рублей);
4. Бесплатные путёвки в Турцию (на двоих, всё включено) - розыгрыш среди активных учителей;
5. Бесплатная подписка на месяц на видеоуроки от "Инфоурок" - активным учителям;
6. Благодарность учителю будет выслана на адрес руководителя школы.

Подайте заявку на олимпиаду сейчас - https://infourok.ru/konkurs

  • Доп. образование

Поделитесь материалом с коллегами:

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 сек

}

}

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


Самые низкие цены на курсы профессиональной переподготовки и повышения квалификации!

Предлагаем учителям воспользоваться 50% скидкой при обучении по программам профессиональной переподготовки.

После окончания обучения выдаётся диплом о профессиональной переподготовке установленного образца (признаётся при прохождении аттестации по всей России).

Обучение проходит заочно прямо на сайте проекта "Инфоурок".

Начало обучения ближайших групп: 18 января и 25 января. Оплата возможна в беспроцентную рассрочку (20% в начале обучения и 80% в конце обучения)!

Подайте заявку на интересующий Вас курс сейчас: https://infourok.ru/kursy

Автор
Дата добавления 07.02.2016
Раздел Доп. образование
Подраздел Конспекты
Просмотров711
Номер материала ДВ-426558
Получить свидетельство о публикации

УЖЕ ЧЕРЕЗ 10 МИНУТ ВЫ МОЖЕТЕ ПОЛУЧИТЬ ДИПЛОМ

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

Если Вы учитель или воспитатель, то можете прямо сейчас получить документ, подтверждающий Ваши профессиональные компетенции. Выдаваемые дипломы и сертификаты помогут Вам наполнить собственное портфолио и успешно пройти аттестацию.

Список всех тестов можно посмотреть тут - https://infourok.ru/tests


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