Введение в схемотехнику. Управление трехцветным светодиодом.
Проект "Светящаяся новогодняя игрушка"
Комплектация конструктора Матрешка Y
Сердцем конструктора является плата Arduino Uno, которая состоит из микроконтроллера Atmel AVR ATmega328, а также элементов обвязки для программирования и интеграции с другими схемами.
Замыкать и размыкать цепь для управления работой электронных схем можно по заданному алгоритму при помощи запрограммированного микроконтроллера. Плата Arduino облегчает это взаимодействие.
Элементы:
Макетная плата Breadboard Half позволяет быстро и легко собирать электронные схемы без пайки.
Правильная установка на монтажную плату элементов
Выводы элементов аккуратно подгибаются для возможного подключения к плате. Нежелательно много раз сгибать и разгибать выводы («ножки»).Это приведет к порче элемента.
Элемент плотно устанавливается в отверстие платы «до упора». Почему «до упора?» Под слоем пластика скрываются медные пластины-рельсы, выложенные по незамысловатому принципу:
Arduino имеет свою среду разработки Arduino IDE. Программа, написанная в среде Arduino, называется скетч. Скетч пишется в удобном текстовом редакторе.
Любая программа работает как бесконечный цикл (повторяется многократно)
Пример проекта на Arduino - мигающий светодиод.
Так как светодиод является полупроводниковым прибором, то при подключении светодиода в цепь необходимо соблюдать полярность. Светодиод имеет два вывода, один из которых катод ("минус"), а другой - анод ("плюс"). Вывод анода длиннее.
Для правильной работы вывод анода надо правильно подогнуть.
Правильно Неправильно
Порядок: «резистор до» или «резистор после» — не важен. Для питания одного светодиода будем использовать резистор 220 Ом. Вот типовая схема включения светодиода:
А это структурная схема подключения светодиода к Arduino:
Программирование
Подготовьте среду программирования:
Запустите среду программирования Arduino IDE
Активируйте инструменты в меню ИНСТРУМЕНТЫ/ПЛАТА – Arduino Uno
ИНСТРУМЕНТЫ/ПРОГРАММАТОР – AVRISP mkl
ИНСТРУМЕНТЫ/ПОРТ – любой, где указана в скобках плата Arduino Uno
Программа (sketch) состоит из двух частей, заключенных в фигурные скобки:
void setup()
{
Подготовка устройств к работе
}
void loop()
{
Алгоритм работы
}
Перед программой можно указать константу цвета светодиода с указанием пина подключения:
#define yellow 13
Команды включения/выключения светодиода:
HIGH – высокий сигнал (5 вольт),
LOW – низкий сигнал (0 вольт).
Продление выполнения команды на заданное время: delay(500) – задержка в полсекунды
pin Mode () – указание режима работы устройства
digitalWrite () – включение сигнала на цифровом входе
Пример прогрммы:
Функциональное тестирование (FCT) — проверка собранных или частично собранных устройств на выполнение заданной функциональности с помощью программы.
Запуск программы:
Почему не работает?
Ошибки в тексте программы
Проблема загрузки на плату
Все правильно, но светодиод не горит
Исправить и снова запустить
Поменять USB-порт и перенастроить порт ИНСТРУМЕНТЫ/ПОРТ
Подключен неправильно - Поменять местами анод и катод
Ножки не доходят до рельс – Поплотнее прижать к рельсам «до упора»
Светодиод перегорел – заменить светодиод
…
Задача 1
Получить последовательно все цвета из палитры RGB:
Для сборки модели с трехцветным (одним) светодиодом нам потребуется:
плата Arduino
Breadboard
трехцветный светодиод
4 провода “папа-папа”
3 резистора на 220 Ом
программа Arduino IDE
При работе с трехцветным светодиодом без встроенных резисторов необходимо иметь ввиду, что назначение ножки светодиода можно определить по ее длине. Самая длинная — земля (GND), короче — зеленый (G), еще короче — голубой (B), а самая короткая — красный (R).
Схема подключения модели Arduino с трехцветным светодиодом:
Для программирования трех основных цветов из предложенной цветовой палитры необходимо подключить к питанию 3 пина: 13 - красный (r), 12-зеленый (g) и 11-синий (b). Программа получения одного из этих цветов палитры выглядит так:
//объявляем переменные с номерами пинов
int r = 13;
void setup() //процедура setup
{
//объявляем используемые порты
pinMode(r, OUTPUT);
}
void loop() //процедура loop
{
digitalWrite(r, HIGH); //включаем красный
delay(500); //ждем 500 Мс
digitalWrite(r, LOW); //выключаем красный
delay(500); //ждем 500 Мс
}
Скопируйте программу в Arduino IDE и добавьте получение остальных цветов RGB-палитры (для получения, например желтого цвета, питание подается на 2 пина: r-13 и g-12)
Если подключить контакты светодиода к аналоговым пинам с тильдой (например, 9,10,11), то можно настроить яркость свечения светодиода или пары светодиодов..., используя команду:
pinMode(r,INPUT); в void setup()
и команду analogWrite(r,мощность от 0 до 255); в void loop();
Можно изменять яркость в цикле:
яркость увеличиваем с 0 до 250
for (int i=0;i<=250;i=i+10)
{
analogWrite(r,i);
delay(100);
}
яркость уменьшаем с 250 до 0
for (int i=250;i>=0;i=i-10)
{
analogWrite(r,i);
delay(100);
}
Задание: Напишите программу для свечения елочной игрушки по собственному алгоритму.