Переключатель ёлочных гирлянд  – для новичков в радиоделе

July 3, 2014 by admin Комментировать »

Очень простое устройство Если нажать первую кнопку, то последовательно включаются гирлянды 1-2-3 с интервалом в одну секунду затем, если нажать вторую кнопку, то гирлянды выключаются в последовательности 3-2-1 Программа для микроконтроллера такого устройства крайне проста:

Программа, собранная что  называется «в лоб», проста: опрашиваем кнопку, соединённую со входом В0, подразумевая, что она подключает вывод к земле, и, если кнопка нажата, то включаем последовательно три вывода

Нажимая вторую кнопку, обозначенную как backward, запускаем обратный процесс выключения с интервалами в одну секунду

Всё это, конечно, в бесконечном цикле while

Даже проверять программу не хочется Хотя подводный камень может обнаружиться: чтобы входы были подтянуты к питающему напряжению, возможно, придётся сделать запись в регистр

Собрать такую программу, оттранслировать её в hex-файл и загрузить в микросхему – дело, скорее, минут, чем часов

Создавая такую простую программу, можно продумать несколько вариантов исполнения, что мы и сделаем ниже

Рис 361 Программа переключателя гирлянд

В первую очередь используем приём программирования, который оказывается полезен, когда вы не знаете, например, какое значение должна (в данном случае) иметь пауза Достаточно ли одной секунды Может быть, две секунды Или три

Исправить все элементы Задержка тоже не самая сложная работа, но  можно избежать и её Создадим новую переменную, которую назовём pause Присвоим ей значение в начале программы:

В данном случае особенного выигрыша можно и не ощутить Но если вы используете паузу раз десять, если выбираете её несколько раз, то, согласитесь, удобнее изменить значение только в одном месте

Рис 362 Использование переменной для задания значения

Вид программ, выполняющих одинаковую работу, может быть разным Выбор того или иного подхода определяется многими факторами: объем программы, наличие  готовых  модулей программы, быстродействие  программы и  тд Вот  ещё  одна разновидность предыдущей программы:

Рис 363 Ещё одна разновидность программы

Значения, которые мы отправляем в порт А, мы в виде данных записываем в массив output[i] Массив – это набор значений, который, как правило, хранится в последовательных ячейках памяти, доступ к которым осуществляется по индексу массива (он в квадратных скобках) В программе Flowcode используется название строка (данные типа STRING), но это не меняет сущности При создании переменной типа STRING мы указываем количество элементов в массиве, позже мы можем эти элементы прописать в массив: output[0] = 0, output[1] = 1 и тд Индекс, заметьте, начинается с нуля Подготовив всё для выполнения программы, мы по нажатию первой кнопки переписываем значения из массива в порт, меняя индекс массива

Первый элемент программы нужен для того, чтобы включить внутренние подтягивающие резисторы Его можно было записать и так: option_reg = option_reg &amp 0x7F

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

Если не подтянуть входы контроллера к плюсу с помощью  резисторов, то  входы находятся в неопределённом состоянии, а помехи могут эти входы произвольно переключать из одного состояния в другое Если входы не подтянуты к плюсу питания (или к земле), то при проверке в программе ISIS (Proteus) вы увидите, что квадратики, иллюстрирующие состояние входов, остаются серыми, показывая – не забудьте придать достоверности входам

Если бы это был реальный переключатель гирлянд, то после последовательного зажигания гирлянд, после паузы в несколько секунд, можно было также последовательно гасить гирлянды Кнопки, пожалуй, были бы лишними Но такой вариант мне удобнее для того, чтобы показать, как можно сделать такое же устройство без микроконтроллера

Источник: Гололобов ВН,- Самоучитель игры на паяльнике (Об электронике для школьников и не только), – Москва 2012

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты