Управление светодиодом – это для начинающего разработчика встроенных систем сказать на языке Си – “Привет мир”.

Как заставить мигать светодиод.

Для начала, что такое светодиод?

Светодио́д или светоизлучающий диод (СД, СИД, LED англ. Light-emitting diode) — полупроводниковый прибор с электронно-дырочным переходом, создающий оптическое излучение при пропускании через него электрического тока (а более подробнее читаем в Википедии).  Т.е. нам ILLISSI-CLED-03нужен любой светодиод. Рабочее напряжение нашей учебной платы ILLISSI-4B-03-primum 5 вольт, а светодиода, в зависимости от цвета, может быть от 1,8 до 3,2 вольта. Нам еще понадобиться резистор, для ограничения тока протекающего через него. Эту сложную схему придется спаять :).

ILLISSI-CLED-04

Подключим светодиод к порту B выводу RB1. На фото белый провод, это “+” светодиода. Этот провод необходимо соединить
с с выводом порта RB1. Другой с контакту с надписью Vss. Вариант подключения хорошо виден на фото. Почему вариант? На плате ILLISSI-4B-03-primum есть несколько выводов для подключения к шине Vss “земля”, можно использовать любой из них.

 ILLISSI-CLED-05

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

Чтобы менять частоту импульсов необходимо изменить число 1000. Что обозначает каждая строчка. Цикл while (1) { } – это бесконечный цикл, главный цикл нашей программы. __delay_ms(1000);  – макрос задержки – в этом мести процессор контроллера выполняет цикл  задержки с длительно нами заданной. LATB1 = !LATB1 – это сама команда переключения светодиода. Для управления используем регистр LATB, это регистр управления выходными сигналами порта B. А читать строку программы необходимо так, присвоить LATB1 значение “инверсное” его текущему состоянию. Т.е. если был “0”, то станет “1” и наоборот. Команда CLRWDT(); – это сброс сторожевого таймера, это тот таймер который контролирует отсутствие сбоев (зависания) нашей программы (он в регистре конфигурации нашей программы включен).

А размер самой программы тоже не очень велик, основной текст, это конфигурирование контроллера под наши нужды:



Поэкспериментируйте с константой  – 1000 в макросе __delay_ms, установите последовательно значения  – 500, 250, 125.


 


Примечания. Это только пример и такое управление в реальных проектах не приемлемо. В современных проектах для формирования длительности удобнее использовать встроенные таймеры контроллера и через систему прерываний управлять длительностью мигания светодиода.


Полностью проект можно скачать Среда MPLAB v8.85, компилятор HI-TECH C Compiler for PIC10/12/16 MCUs (PRO Mode)  V9.83



Это может быть интересно


  • Четырех канальный терморегулятор ch-4000Четырех канальный терморегулятор ch-4000
     Четыре независимых канала регулирования температуры, одновременно можно подключить 16 датчиков температуры DS18B20 с удалением до трехсот метров. Можно для регулировки выбрать любой датчик, подключенный к устройству. Каждый канал может работать как в …
  • Дисплей KD035C-3A подключение и управлениеДисплей KD035C-3A подключение и управление
    Дисплей KD035C-3A производиться компанией SHENZHEN STARTEK ELECTRONIC TECHNOLOGY CO.,LTD его характеристики Параметр Спецификация Единицы измерения Размер дисплея 70.08(H)*52.56(V) (3.5inch) mm Тип дисплея TFT active matrix Цветовая гамма 65K/262K colors Разрешение 320(RGB)*240 dots …
  • AD9833 – Programmable Waveform Generator – part twoAD9833 – Programmable Waveform Generator – part two
    Прошло время и появилась тема, что-бы закончить проект AD9833 – Programmable Waveform Generator. Приехали печатные платы. В этот раз я печатные платы заказывал в https://jlcpcb.com/ делал это в первый раз …
  • VU Meter Tower ARTVU Meter Tower ART
    Стерео индикатор уровня аудио сигнала. Компактность и удобство проектирования устройств на светодиодах WS2812B, а также легкость реализации алгоритма родило идею созданию своей конструкции. В этом проекте я предоставлю все материалы …
  • Проект с использованием MCC часть 11Проект с использованием MCC часть 11
    Можно несколько облагородить программу вынести наши процедуры обработки нажатия кнопок в отдельные функции. Но вы должны понимать, что это хоть и не значительно, но будет тормозить общую скорость работы проекта, …
  • ch-светомузыка от теории до реализацииch-светомузыка от теории до реализации
    Сразу оговоримся технология или теория ch-светомузыки, это постоянно развивающийся процесс и то что будет сказано сегодня завтра может быть опровергнуто и считаться ошибочным. Назовем само решение проблемы автоматического преобразования или …
  • Применение typedef, struct и unionПрименение typedef, struct и union
    Полезные описания переменных Часто необходимо в памяти расположить последовательно разные виды данных, что бы потом можно было их использовать. Полезные ссылки Взято и переработано с сайта http://www.butovo.com/~zss/cpp/struct.htm http://cppstudio.com/post/9172/ Синтаксис структур. …
  • PIC32MZ – Core Timer (библиотека)PIC32MZ – Core Timer (библиотека)
    Переработанные файлы от Microchip, библиотека для работы с Core Timer. Метки:PIC32MZ
  • Самый простой диммер для светодиодного освещенияСамый простой диммер для светодиодного освещения
    Светодиоды все больше входят в нашу жизнь как источники освещения и как само собой разумеющееся, это вопрос регулировки яркости. Существует множество схемных решений, но в нашем варианте мы приведем несколько …
  • Проект с использованием MCC часть 04Проект с использованием MCC часть 04
    Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой. Используем функции delay, напрягаться откуда они берутся не будем, самое главное , …



Translate »

Copyright © Catcatcat electronics 2013-2019. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com