Включение/выключение нагрузки одной кнопкой без фиксации.

В данном случае рассматривается вариант реализации включения/выключения нагрузки лабораторного блока питания. Итак, небольшое ТЗ.

  1. После включения блока питания нагрузка должна быть отключена в независимости от последнего состояния.
  2. О выключенной нагрузке должен сообщать мигающий красный светодиод.
  3. О включенной нагрузке должен сообщать постоянно горящий зеленый светодиод.
  4. Подключение нагрузки происходит при помощи реле.
  5. Аппаратное подавление дребезга контактов.

Схема построена на дешевом микроконтроллере Atmel ATtiny2313 и триггере Шмитта 74HC14.

Запитана схема от 12 вольт, необходимых для работы реле. Для питания микросхем использован линейный преобразователь 7805.

После включения мигает красный светодиод VD2. Триггер шмитта 74HC11 позволяет окончательно и бесповоротно избавиться от дребезга контактов. При нажатии  кнопки, светодиод VD2 гаснет, а VD1 (зеленый) загорается, одновременно с ним открывается транзистор VT1 и включается реле K1. При следующем нажатии нагрузка и зеленый светодиод VD1 отключаются, красный светодиод VD2 начинает мигать.  Диод VD1 защищает транзистор от всплесков напряжения на катушке реле. Собрана схема на макетной плате.

 

 

 

Скетч написан в Bascom.

В основном цикле мигает красный светодиод, при условии, что на выходе PB2 низкий уровень, т.е. нагрузка отключена, а зеленый светодиод не горит. По прерыванию Int1 вызывается подпрограмма Swbutton. Оператор Toggle переключает состояния выхода PB2 (если был 1 то станет 0 и наоборот). После переключения выхода программа возвращается в основной цикл, до следующего прерывания.

$regfile = "attiny2313.dat"
$crystal = 4000000

Config Portb.1 = Output
Config Portb.2 = Output
Config Pind.3 = INPUT
Config Int1 = Falling

Dim Wtime As Byte

On Int1 Swbutton

Cls

Wtime = 255

Enable Interrupts
Enable Int1

Do
if pinb.2 = 0 Then
Set Portb.1
Waitms Wtime
Reset Portb.1
Waitms Wtime
Else
'Pinb.4 = 0
End If
Loop
End

Swbutton:
Toggle Portb.2

Return

End

 

И на всякий случай совсем простая схема, найденная в Интернете:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *