Вы находитесь на странице: 1из 10

Оглавление

Программное управление одним светодиодом..................................................3

Программное управление группой из восьми светодиодов без


использования сдвигового регистра...................................................................4

Программное управление группой из восьми светодиодов с использованием


сдвигового регистра.............................................................................................4

Применение широтно-импульсной модуляции.................................................6

При управлении одним светодиодом..............................................................6

При управлении одним RGB-светодиодом.....................................................6

Семисегментный индикатор................................................................................8

Применение переменного резистора при управлении нагрузкой....................9

Список литературы.............................................................................................11
Программное управление одним светодиодом
Светодиод питается током, поэтому он подключается через
токоограничивающий резистор, который помогает контролировать ток в цепи.
Для светодиода характерны параметры тока питания и напряжения падения.
Второе зависит от цвета, которым будет светить устройство. Сопротивление,
необходимое для токоограничивающего резистора, рассчитывается так: от
напряжения питания отнимается напряжение падения, результат делится на
ток светодиода. При полученном сопротивлении яркость будет максимальна.
Меньшее сопротивление брать нельзя, так как это может привести к
сгоранию устройства.
Для управления светодиодом необходимо его подключить к плате через порт,
далее перейти в среду разработки Arduino IDE. Чтобы контролировать подачу
нагрузки на устройство, используют логические переменные – флаги.
Например, для светодиода подойдёт led_flag, который будет хранить нужное
значение состояния. Его передают в функцию digitalWrite(), что позволяет
управлять нагрузкой на выбранных портах платы. Благодаря флагу и
конкретному программному коду можно сделать светодиод, зависящий от
нажатия кнопки, либо добавить любые другие условия, при которых
устройство будет светить или находиться в покое.

2
Программное управление группой из восьми светодиодов без
использования сдвигового регистра
Если необходимо управлять группой светодиодов, то для каждого
необходим свой порт и токоограничивающий резистор. Все восемь устройств
подключим параллельно друг другу, не забывая про дополнительный провод
земли. При понимании сути работы с одним светодиодом не так сложно
успешно выполнить задачу с несколькими. Добавляется больше кода и
анализа архитектуры программы. А также проводов. Необходимо обращаться
к каждому порту отдельно, а количество возможных для использования
светодиодов или других устройств ограничено теми выводами, что даны на
плате. В остальном, управление что для 8 светодиодов, что для одного
остаётся одинаковым, это описано в предыдущем пункте.

Программное управление группой из восьми светодиодов с


использованием сдвигового регистра
Сдвиговый регистр 74HC595 позволяет избежать проблемы
ограниченности пинов. Для его подключения необходимо всего 3 вывода, а
взамен получим восемь. Сдвиговые регистры можно соединять, что даёт
полную свободу в количестве выводов. Скорость обмена информацией не
страдает, потому что регистр работает на частотах до 100 МГц, а это
значительно больше, чем может дать микроконтроллер. Управление
выводами чипа происходит через биты информации. Если рассматривать
74HC595, то наши выходы: от QA – самый левый бит до QH. Три контакта,
которыми мы будем управлять и которые подключим к плате:

 Pin 11 (SRCLK) сдвигового регистра 74HC595 – «синхронизирующий


пин»,
 Pin 12 (RCLK) сдвигового регистра – «пин защелка»,
 Pin 14 (SER) сдвигового регистра – «пин данных».
bitSet() – метод, которому передаётся байт и переменная currentLED,
позволяющая контролировать текущий светодиод. То есть, при увеличении
3
текущей переменной currentLED на каждой итерации устанавливается бит
слева от предыдущего до 1, так сообщается сдвиговому регистру
необходимость активации пина слева от предыдущего. После записывается
на контакт защёлки указание регистру о том, что необходимо отправить
данные. Потом вызывается метод shiftOut(), который разработан для работы
со сдвиговым регистром и благодаря которому мы можем сдвигать биты за
один вызов. После смещения битов опять обращаемся к контакту защёлки,
чтобы сообщить, что все данные отправлены. Так завершается операция
записи информации о порядке работы пинов. Условия свечения, узоры,
интенсивность яркости светодиодов – всё реализуемо и ограничивается
только фантазией. Сдвиговый регистр позволяет больше заниматься логикой
задачи, уменьшает количество проводов и даёт больше пинов для
использования.

4
Применение широтно-импульсной модуляции
ШИМ позволяет получать изменяющееся аналоговое значение через
использование цифровых устройств. На приборы поступает нагрузка из
прямоугольных импульсов, то есть сигнала, который переключается между
максимальным и минимальными значениями. Так моделируется напряжение
между 5 В и 0 В. Длительность максимального значения называют широтой
импульса, которую и меняют, чтобы получить разные аналоговые величины.
На платах Arduino ШИМ работает на цифровых портах 3, 5, 6, 9, 10, 11
(488,28 Гц). При использовании функции analogWrite() частота ШИМ
изменяется от 0 до 255 и соответствует коэффициенту заполнения импульса
от 0 до 100%. Иногда частота ШИМ Arduino оказывается слишком низкой и
ее необходимо увеличить.

При управлении одним светодиодом


Для управления яркостью светодиода используют функцию analogWrite().
Задаётся скважность сигнала на цифровом выходе с необходимой
интенсивностью. Визуально это будет отображаться в яркости светодиода,
подключенного к порту микроконтроллера с поддержкой PWM. Например,
если нужно задать сигнал с интенсивностью 50%, то для 9 порта функция
будет выглядеть так: analogWrite (9, 127), где имеем скважность 50%
(половина от 255)

При управлении одним RGB-светодиодом


RGB LED имеет 4 вывода — один общий (анод или катод имеет самый
длинный вывод) и три цветовых вывода. К каждому цветовому выходу
подключают резистор. Модуль «RGB светодиод» можно подключить
напрямую к плате, без проводов и макетной платы. Подключим модуль с
полноцветным RGB светодиодом к следующим пинам: Минус — GND, B —
Pin13, G — Pin12, R — Pin11. С помощью директивы #define для удобства
заменим номер пинов 11, 12 и 13 на соответствующие имена RED, GRN,
5
BLU. В процедуре void loop() управляем нужными цветами. Например, для
включения красного используем: digitalWrite(RED, HIGH), а для синего и
зелёного вместо HIGH пишем LOW. Также вместо второй переменной можно
писать числа от 0 до 255, что будет контролировать интенсивность
выбранного цвета.

6
Семисегментный индикатор
Существует два основных типа семисегментных индикаторов: с общим
катодом и с общим анодом. Разница между ними в том, как соединены внутри
прибора светодиодные сегменты, формирующие цифры и буквы. У
индикатора с общим катодом отрицательные выводы сегментов объединены
вместе и подключены к паре контактов корпуса. А у индикатора с общим
анодом - наоборот, положительные выводы сегментов соединены и выведены
наружу. При выборе типа индикатора для проекта на Arduino следует
учитывать полярность используемых цифровых выходов. Для ATmega328
микроконтроллера на борту Arduino Uno полярность выходов -
положительная. Поэтому предпочтительнее использовать индикатор с общим
катодом. Семисегментный индикатор содержит 8 светодиодов,
сформированных определенным образом: 7 сегментов (полосок),
образующих символы 1 сегмент – точка. Сегменты промаркированы
латинскими буквами от a до g. Точка обозначается буквой dp (decimal point).
Дисплей может отображать цифры от 0 до 9. Вначале рассмотрим общие
принципы работы семисегментного дисплея. Семисегментный дисплей легко
проверить используя мультиметр в режиме диода. На каждом сегменте
дисплея не должно быть напряжения большего 5 В, иначе дисплей будет
необратимо поврежден. Чтобы исключить подобное общий резистор должен
быть подключен к общему выводу дисплея. Для отображения конкретной
цифры нужно питающее напряжение на определённые сегменты, то есть
запитать нужные контакты дисплея. Например, чтобы получилось сделать
ноль, в digitalWrite() пишем во все сектора HIGH, кроме G: digitalWrite (segG,
LOW).

7
Применение переменного резистора при управлении нагрузкой
Если постоянный резистор имеет фиксированное сопротивление, то
переменный резистор обладает регулируемым сопротивлением. Основная
задача переменного резистора – изменять сопротивление в электрической
цепи в соответствии с требованиями проекта. Arduino, относящаяся к
открытому аппаратному и программному обеспечению, делает это
возможным, предоставляя полное управление этими переменными
элементами. За счёт изменения сопротивления переменного резистора можно
контролировать ток или напряжение, что позволяет, например, менять
яркость светодиода или громкость звука. При выборе резистора переменного
типа для Arduino важно обратить внимание на номинальное сопротивление,
диапазон сопротивлений, линейность, точность и температурный
коэффициент, чтобы соответствующим образом настроить сопротивление в
цепи и обеспечить стабильную работу электронного устройства.

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


которых имеет свои особенности и применение:

Потенциометры представляют собой самые распространенные


переменные резисторы. Их основной элемент – перемещающийся контакт,
который можно перемещать по длине резистивного элемента. Таким образом,
можно изменять сопротивление. Потенциометры широко используются для
регулировки освещения, звука, входных сигналов и т. д.

Мультитурны – это переменные резисторы с несколькими


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

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

Эти виды переменных резисторов могут быть использованы в Arduino


проектах для настройки различных параметров или управления сигналами.
Важно выбрать правильный тип и номинал резистора в зависимости от
требований и конкретной задачи. Резисторы могут использоваться в делителе
напряжения для измерения аналоговых сигналов. Путем подключения двух
резисторов к пину Arduino и земле, можно разделить входное напряжение на
более маленькие значения, которые могут быть считаны с помощью
аналогового входа Arduino. Так же используют для ограничения тока,
проходящего через светодиоды, дисплеи, моторы и другие компоненты.
Путем подключения резистора в серии с компонентом можно контролировать
поток тока и защитить компонент от повреждений. Ещё резисторы могут
быть использованы для подтяжки или оттяжки сигналов на цифровых пинах
Arduino. Это помогает стабилизировать сигнал и предотвращает
нежелательное влияние электромагнитных помех. Фильтрация шума в цепи
Arduino. Путем добавления резисторов к пинам сигнала, можно уменьшить
влияние электромагнитных помех и создать более стабильный сигнал.
Управлять переменным резистором для можно использовать функцию
analogWrite(). (0 — минимальная яркость, 255 — максимальная яркость)

9
Список литературы

1. https://arduino-site.ru/knopka-svetodiod/
2. https://arduino-site.ru/knopka-svetodiod/
3. https://arduino-site.ru/knopka-svetodiod/
4. https://arduino-site.ru/pwm-arduino/
5. https://xn--18-6kcdusowgbt1a4b.xn--p1ai/
%d1%81%d0%b4%d0%b2%d0%b8%d0%b3%d0%be%d0%b2%d1%8b
%d0%b9-%d1%80%d0%b5%d0%b3%d0%b8%d1%81%d1%82%d1%80-
74hc595/
6. https://www.youtube.com/watch?v=rCmaMST8qkg&t=399s

10

Вам также может понравиться