Авторизация


...

Кто на сайте?

Сейчас 170 гостей и 2 зарегистрированных пользователей на сайте

  • elwhidbynath
  • magierskadal

Статистика

-Посетители : 28029
-Материалы : 210

Пользователь сайта продает...

  VM111

Пользователь сайта покупает...

Регулятор оборотов вентилятора.

Автор: Sergey Roslik Просмотров: 11991

 

 

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

Именно этот эффект положен в основу принципа Широтно-Импульсной Модуляции (ШИМ), также встречается английское сокращение - PWM (Pulse-Width Modulation). Широтно-Импульсная Модуляция - это способ кодирования аналогового сигналa путём изменения ширины (длительности) прямоугольных импульсов несущей частоты. На Рис. 1 синим цветом представлены типичные графики ШИМ сигнала. Так как при ШИМ частота импульсов, а значит, и период (T), остаются неизменными, то при уменьшении ширины импульса (t) увеличивается пауза между импульсами (эпюра "Б" на Рис. 1.) и наоборот: при расширении импульса пауза сужается (эпюра "В" на Рис. 1.). Если сигнал ШИМ пропустить через фильтр низших частот, то уровень постоянного напряжения на выходе фильтра будет определяться скважностью импульсов ШИМ. Назначение фильтра - не пропускать несущую частоту ШИМ. Сам фильтр может состоять из простейшей интегрирующей RC цепи, или же может отсутствовать вовсе, например, если оконечная нагрузка имеет достаточную инерцию. Таким образом, имея в расположении лишь два логических уровня, "единицу" и "ноль", можно получить любое промежуточное значение аналогового сигнала.

 

Рис.1. Зависимость напряжения от скважности ШИМ.

 

    По принципу вышеизложенного и был разработан регулятор вентилятора. Необходимость в данном устройстве появилась, когда у ребёнка сгорела материнская плата на компьютере и пришлось поставить другую. С другим радиатором и кулером на процессор. Новый кулер был без регулятора оборотов.  Для обеспечения тишины работы компьютера пришлось со своего компа снять залмовский регулятор  и поставить ребёнку на компьютер, всё лучшее детям :) . Теперь мой вентилятор начал шумно работать, а так как моя материнка без корпуса и просто прибита гвоздём к стенке за монитором (Рис.2.), то создавался дискомфорт при работе за компьютером. С этим надо было что то делать, что-нибудь простое и дешевое. В результате чего и родилась данная схема.

Рис.2. «Материнкой» внешний вид не испортишь.

 

    Схема (Рис. 3.)  состоит из стабилизатора на 5В, ключа, на транзисторе ВС547 (при необходимости можно поставить более мощный ключ), и самого процессора управления на PIC12F675 (Можно использовать и PIC12F629, с минимальными изменениями в программе). Управление оборотами производится кнопками S1 (убавить) и S2 (прибавить). При снятии напряжения регулятор запоминает последние выставленные обороты. Подключается регулятор к разъёму вентилятора на материнской плате. Провод оборотов вентилятора сквозной. Так как PIC12F675 имеет АЦП, то можно вместо кнопок установить переменный резистор, изначально я так и делал.

 

Рис. 3. Схема регулятора.

 

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

    Теперь немного о программе. ШИМ организован программно, так как аппаратного модуля ШИМ в данном контроллере нет. После инициализации контроллера программа проверяет в EEPROM значение оборотов, на основе которой производит вычисление ШИМ. Запись в EEPROM производится после нажатия любой из кнопок управления. Чтобы не терзать память, запись в неё производится с задержкой 2-3 сек., когда установится необходимое значение оборотов. 

 

Рис. 4. Внешний вид регулятора.

 

 

    Как известно контроллер PIC12F675 не имеет интегрированного отладочного модуля. В интернете эти модули иногда ошибочно называют «переходниками». Для отладки данного типа контроллера  необходим модуль AC162050.  Его конечно в наличии нет, а поотлаживать очень хочется. Я в таких случаях собираю схему на отладочной плате, беру контроллер (в данном случае PIC16F877A), который поддерживает внутрисхемную отладку и пишу программу под оба контроллера одновременно. Вернее сначала под отлаживаемый контроллер (PIC16F877A), а потом изменения для основного (PIC12F675). Для того, чтобы компилятор мог определить под какой контроллер производить компиляцию имеются директивы IFDEF и ENDIF.

    Ниже приведён пример конфигурации для разных контроллеров в одной программе.  Компилятор сам выбирает нужный кусок, в зависимости от того, какой контроллер указан в MPLab (Configure -> Select Device).  Не трудно догадаться под какой контроллер какой кусок программы относится.  Строка ErrorLevel  -302,-205,-207  является общей, не зависимо какой контроллер установлен.

IFDEF __12F675

            LIST        p=12f675
            #Include      
            __config    01FC4h 
ENDIF

;****************************************
IFDEF       __16F877A
            LIST        p=16f877A
            #Include      
            __CONFIG    3731H 
TRISIO      equ         0x06
GPIO        equ         0x86
ENDIF
;****************************************
            ErrorLevel  -302,-205,-207

    Приведу ещё один пример инициализации контроллеров. Здесь всё, то же самое. Что находится между директив IFDEF и ENDIF , относится к определённому контроллеру, а всё остальное является общим кодом для обоих контроллеров.

;****************************************
START       movlw      .7              
            movwf      CMCON         
            bsf        STATUS,RP0  
;****************************************
IFDEF       __12F675
            call       3FFh         
            movwf      OSCCAL         
            movlw      b'00000110'
            movwf      WPU            
            clrf       ANSEL       
            clrf       IOC
ENDIF

;****************************************
IFDEF       __16F877A
            movlw      b'00001110'    
            movwf      ADCON1      
ENDIF
;****************************************
            movlw       b'00000000'
            movwf       OPTION_REG
            movlw       b'00000110' 
            movwf       TRISIO      
            bcf         STATUS,RP0 
            clrf        GPIO       
            clrf        Flag
            call        EERD        ; Чтение значения скорости из EEPROM.


    В итоге получается одна программа под два вида контроллеров (можно и больше). Только не забываем указать в MPLab (Configure -> Select Device), необходимый контроллер, под который надо её скомпилировать.

Файлы для скачивания:

Ссылка для скачивания доступна только авторизованным пользователям сайта !

Ссылка для скачивания доступна только авторизованным пользователям сайта !

Ссылка для скачивания доступна только авторизованным пользователям сайта !

Список использованных ресурсов:

http://www.myrobot.ru                      

Случайные статьи....

Prev Next

Часы-термометр на термодатчике DS18B20 и RTC DS1302

11-06-2011 Sergey Roslik

Часы-термометр на термодатчике DS18B20 и RTC DS1302

Возможности прибора: 1) Измерение температуры на улице, в комнате и температуры тела (кол-во термодатчиков можно увеличить); 2) Отображение часов (блок RTC DS1302); 3) Управление и установка времени с пульта (пульт и датчик от старого CD ROM “Креатив”), можно приспособить и любой другой. 4)...

Запись в память программ PIC18XXXX.

26-05-2012 Николай Викторов

Запись в память программ PIC18XXXX.

Это часть статьи, из самоучителя по микроконтроллерам семейства PIC18XXXX, затрагивающая запись данных в память программ . Процесс записи данных в память программ  отличается от чтения, хотя и используется подобная TBLRD инструкция для табличной записи - TBLWT. Так же  имеет несколько разновидностей,...

Зарядное устройство для гелевых аккумуляторов.

10-09-2014 Николай Викторов

Зарядное устройство для  гелевых аккумуляторов.

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

Генератор кодов Морзе на микроконтроллере.

26-02-2012 Николай Викторов

Генератор кодов Морзе на микроконтроллере.

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


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru