Автомат управления освещением санузла
Автомат управления освещением санузла
Всем доброго времени суток.
Ищу автора этой статьи. http://radiokot.ru/circuit/digital/automat/10/Интересует продолжение проекта.
Ищу автора этой статьи. http://radiokot.ru/circuit/digital/automat/10/Интересует продолжение проекта.
Последний раз редактировалось VALERYI Вс сен 20, 2009 10:15:27, всего редактировалось 1 раз.
- Реклама
- murlb|ka
- Потрогал лапой паяльник
- Сообщения: 335
- Зарегистрирован: Пн май 17, 2010 23:29:17
- Откуда: Москва
Re: Автомат управления освещением санузла
скажите какие нужны фьюзы для этого проекта и какой нужен симистор?
Re: Автомат управления освещением санузла
А не пробовали для начала связаться с автором? Там в начале статьи адрес есть 
Имею 9 жизней
-----------------------------------------------------------
Прошу не путать меня с тёзкой - "radio-kot"
-----------------------------------------------------------
Прошу не путать меня с тёзкой - "radio-kot"
-
delta24
- Встал на лапы
- Сообщения: 113
- Зарегистрирован: Сб июл 24, 2010 00:11:33
- Откуда: Москва
- Контактная информация:
Re: Автомат управления освещением санузла
Вот что нашёл на этот автомат.


Займемся программой.
Подключаем нужные заголовочные файлы
Определяем константы, соответствующие разрядам PORTB. Красный светодиод объединен с управлением тиристора потому, что они всегда работают вместе, т.к. этот светодиод индицирует включение нагрузки.
Кроме того будут нужны 2 переменные, которые должны быть видны из любого места программы, поэтому объявляем их как глобальные. Напоминаю, что таймер у нас настроен на частоту 10Гц, т.е. срабатывает и вызывает прерывание 10 раз в секунду, поэтому для измерения времени в секундах надо реагировать на таймер только каждый десятый раз, за что и отвечает переменная count, а sec - это наш счетчик секунд.
Инициализируем PORTB, где все выводы (кроме PB3) сконфигурированны как выходные, (PB3) - как входной.
Настройку таймера timer0_init () и функцию init_devices() нам забубенил сам ICC AVR. Здесь производится настройка внутренних регистров и всякого разного нужного.
Далее имеем функцию timer0_ovf_isr(), которая вызывается по прерыванию таймера (10 раз в секунду), в которой каждый 10-й вызов увеличиваем значение переменной sec на 1. Кроме того присутствует функция Sleep(), которая нужна для осуществления небольшой задержки (256 тактов МК).
Ну собственно, и сама программа.
Здесь в цикле считывается состояние датчика Холла (операция & Key нужна, для того, чтобы сразу исключить из рассмотрения все разряды кроме PB3). Далее идет анализ состояния датчика и в зависимости от этого включается или выключается свет.
Взято с сайта http://avrhobby.ru/index.php?option=com_content&view=article&id=49:wcautomat&catid=34:projectsmk&Itemid=53
Сижу перевариваю теперь если кто то есть головастый прошу слёзно помощи. ну очень хотца его собрать Мяу..
D1 – зеленый,D2 – красный, датчик Холла обозначенный как SS400 (общее название серии) типа SS441A. Симистор может быть любого типа, главное что бы выдерживал 400В и ток нагрузки. Естественно при больших токах - на радиатор его!

- Внимание! Прошивать МК нужно без впаянных светодиодов.

На фото вместо датчика Холла вы видите геркон, и это тоже верно. Его надо включать вместо ножек 1 и 2 SS441
Проект для ICC AVR: http://avrhobby.ru/files/Part1-ICCAVR.rar, там же схема и печатная плата для Proteus 7.5 sp3 и печатная плата для SprintLayout5 (немножко другая).
Печатная плата Proteus выглядит так:

Займемся программой.
Подключаем нужные заголовочные файлы
Определяем константы, соответствующие разрядам PORTB. Красный светодиод объединен с управлением тиристора потому, что они всегда работают вместе, т.к. этот светодиод индицирует включение нагрузки.
Кроме того будут нужны 2 переменные, которые должны быть видны из любого места программы, поэтому объявляем их как глобальные. Напоминаю, что таймер у нас настроен на частоту 10Гц, т.е. срабатывает и вызывает прерывание 10 раз в секунду, поэтому для измерения времени в секундах надо реагировать на таймер только каждый десятый раз, за что и отвечает переменная count, а sec - это наш счетчик секунд.
Код: Выделить всё
01.//ICC-AVR application builder : 21.01.2007 10:53:01
02.// Target : T13
03.// Crystal: 1.2Mhz
04.
05.#include <iot13v.h>
06.#include <macros.h>
07.
08.//Красный светодиод
09.#define LED_R 0b000010
10.//Зеленый светодиод и управление тиристором
11.#define LED_G 0b010100
12.//Датчик Холла (или геркон)
13.#define Key 0b001000
14.
15.unsigned char count;
16.int sec; Инициализируем PORTB, где все выводы (кроме PB3) сконфигурированны как выходные, (PB3) - как входной.
Настройку таймера timer0_init () и функцию init_devices() нам забубенил сам ICC AVR. Здесь производится настройка внутренних регистров и всякого разного нужного.
Код: Выделить всё
18.void port_init(void)
19.{
20. PORTB = 0x08;
21. DDRB = 0x37;
22.}
23.
24.//TIMER0 initialize - prescale:1024
25.// WGM: Normal
26.// desired value: 10Hz
27.// actual value: 10,016Hz (0,2%)
28.void timer0_init(void)
29.{
30. TCCR0B = 0x00; //stop
31. OCR0A = 0x75;
32. OCR0B = 0x75;
33. TCNT0 = 0x8B; //set count
34. TCCR0A = 0x00;
35. TCCR0B = 0x05; //start timer
36.}
37.
38.//call this routine to initialize all peripherals
39.void init_devices(void)
40.{
41. //stop errant interrupts until set up
42. CLI(); //disable all interrupts
43. port_init();
44. timer0_init();
45.
46. MCUCR = 0x00;
47. TIMSK0 = 0x02; //timer interrupt sources
48. GIMSK = 0x00; //interrupt sources
49. SEI(); //re-enable interrupts
50. //all peripherals are now initialized
51.}Далее имеем функцию timer0_ovf_isr(), которая вызывается по прерыванию таймера (10 раз в секунду), в которой каждый 10-й вызов увеличиваем значение переменной sec на 1. Кроме того присутствует функция Sleep(), которая нужна для осуществления небольшой задержки (256 тактов МК).
Код: Выделить всё
53.#pragma interrupt_handler timer0_ovf_isr:4
54.void timer0_ovf_isr(void)
55.{
56. count++;
57. if (count==9) {
58. sec++;
59. count=0;
60. }
61. TCNT0 = 0x8B; //reload counter value
62.}
63.
64.void Sleep(){
65.unsigned char a,b;
66. for (a = 1; a; a++);
67.}Ну собственно, и сама программа.
Здесь в цикле считывается состояние датчика Холла (операция & Key нужна, для того, чтобы сразу исключить из рассмотрения все разряды кроме PB3). Далее идет анализ состояния датчика и в зависимости от этого включается или выключается свет.
Код: Выделить всё
070.void main(void)
071.{
072.unsigned char state,old_state,ovf;
073.
074. sec=0;
075. ovf=0;
076. old_state=0;
077.
078. init_devices();
079.
080. while(1){
081. //считать состояние датчика
082. state = PINB & Key;
083. //немножко притормозить, что бы переждать дребезг контактов у геркона
084. Sleep();
085.
086.
087. //********************
088. // кусок кода до следующих звездочек нужен для отсчета
089. // истечения времени в 10с при открытой двери
090. if (state==old_state) {//если статус не менялся, т.е. нет изменения от геркона
091. if (!state) {
092. //********* в эту секцию мы попадаем всегда при закрытой двери и выключенном свете, т.е. в режиме ожидания
093. //если дверь закрыта - счетчик секунд сбросить
094. sec=0;
095. PORTB &= ~LED_R; //выключить RED
096. ovf=0;
097. }
098. else {
099. //********* в эту секцию мы попадаем при долго открытой двери
100. //если дверь открыта, надо считать секунды
101. if (sec>10) {
102. //если свет оставался включенным более 10 с и дверь открыта, то свет выключить
103. PORTB |= LED_R; //включить RED
104. if (!ovf) ovf=1;
105. }
106. }
107. continue;
108. }
109. //*****************
110.
111. old_state=state;
112.
113. //проверка PB3, если контакт разомкнут - там 1 (дверь открыта), замкнут - там 0 (дверь закрыта)
114. if ( state ) { //=1
115. //открыли дверь ?
116. PORTB ^= LED_G; //переключить свет (если вкл->выкл и наоборот)
117. }
118. else{ //=0
119. //закрыли дверь ?
120. if (ovf) { //если интервал времени открытой двери >10с то выключить свет
121. PORTB &= ~LED_G;
122. ovf=0;
123. }
124. //иначе не реагировать
125. }
126.
127. }//while
128.
129.}//mainВзято с сайта http://avrhobby.ru/index.php?option=com_content&view=article&id=49:wcautomat&catid=34:projectsmk&Itemid=53
Сижу перевариваю теперь если кто то есть головастый прошу слёзно помощи. ну очень хотца его собрать Мяу..
D1 – зеленый,D2 – красный, датчик Холла обозначенный как SS400 (общее название серии) типа SS441A. Симистор может быть любого типа, главное что бы выдерживал 400В и ток нагрузки. Естественно при больших токах - на радиатор его!
Скайп [size=150][color=#0040FF]Petrov_igor24[/color][/size]
- Реклама
Освещение в туалете
Захотел собрать эту схему http://radiokot.ru/circuit/digital/automat/10/
Подскажите какие ставить фузы?Чёто там не указанно.
Сюда перенес.
aen
Подскажите какие ставить фузы?Чёто там не указанно.
Сюда перенес.
aen
- zhu4er
- Вымогатель припоя
- Сообщения: 544
- Зарегистрирован: Пт июн 04, 2010 17:40:13
- Откуда: Непокорный город-герой Севастополь
Re: Освещение в туалете
Из исходника видно, что фузы выставить надо на внутренний осциллятор на 1,2 Мгц
Даже у стен есть уши...
Re: Освещение в туалете
А поподробнее можно(какие галочки) для понипрог.Я с AVR ещё не работал....только с PIC
- zhu4er
- Вымогатель припоя
- Сообщения: 544
- Зарегистрирован: Пт июн 04, 2010 17:40:13
- Откуда: Непокорный город-герой Севастополь
Re: Освещение в туалете
dipodlez писал(а):А поподробнее можно(какие галочки) для понипрог.Я с AVR ещё не работал....только с PIC
А вот это я тебе не скажу, т.к работаю с CVAVR и KazamaProgrammer
Даже у стен есть уши...
-
delta24
- Встал на лапы
- Сообщения: 113
- Зарегистрирован: Сб июл 24, 2010 00:11:33
- Откуда: Москва
- Контактная информация:
Re: Автомат управления освещением санузла
фьюзы НЕТРОГАЕМ оставляем заводские !!!!!
Скайп [size=150][color=#0040FF]Petrov_igor24[/color][/size]
Re: Автомат управления освещением санузла
Логика подсказывает ,что фузы надо оставить заводские...!?
-
delta24
- Встал на лапы
- Сообщения: 113
- Зарегистрирован: Сб июл 24, 2010 00:11:33
- Откуда: Москва
- Контактная информация:
Re: Автомат управления освещением санузла
dipodlez писал(а):Логика подсказывает ,что фузы надо оставить заводские...!?
совершенно верно
Скайп [size=150][color=#0040FF]Petrov_igor24[/color][/size]
Re: Автомат управления освещением санузла
Связался с автором он подтвердил-фьюзы заводские.
-
krokodil
- Первый раз сказал Мяу!
- Сообщения: 39
- Зарегистрирован: Пт окт 30, 2009 00:30:11
- Откуда: Минск
Re: Автомат управления освещением санузла
Слегка модифицировал автомат: добавил шим с плавным зажиганием и тушением. Использовал материалы с сайта автора.
В качестве светильника 3 м самой дешевой светодиодной ленты и питатель на 12В включенный в сеть постоянно. Назначение ног контроллера изменилось. Контроллер - attiny13a. Все номиналы подписаны на плате.
Работает месяц. Все мои женщины довольны.
Прошивку исходник и плату прилагаю.
В качестве светильника 3 м самой дешевой светодиодной ленты и питатель на 12В включенный в сеть постоянно. Назначение ног контроллера изменилось. Контроллер - attiny13a. Все номиналы подписаны на плате.
Работает месяц. Все мои женщины довольны.
Прошивку исходник и плату прилагаю.
- Вложения
-
- moi_var.rar
- (62.53 КБ) 290 скачиваний
Re: Автомат управления освещением санузла
Здравствуйте!
Подскажите пожалуйста, а откуда можно взять 5V (на 8 ногу контролёра, для датчика Холла)?
Это дополнительно нужно подавать, или возможно где-то с текущей схемы?
P.S. Автомат собрал, работает замечательно с первого же раза, правда пока на рабочем столе, проблема из-за выше заданых вопросов.
Заранее спасибо!
Подскажите пожалуйста, а откуда можно взять 5V (на 8 ногу контролёра, для датчика Холла)?
Это дополнительно нужно подавать, или возможно где-то с текущей схемы?
P.S. Автомат собрал, работает замечательно с первого же раза, правда пока на рабочем столе, проблема из-за выше заданых вопросов.
Заранее спасибо!
Re: Автомат управления освещением санузла
А что без МК уже никуда?
Один 155ТМ2 и ключ для управления лампой
Re: Автомат управления освещением санузла
оффтоп:
Одним больше нравится на логике делать, программистам больше нравится программировать (на уровне программирования) схемотехнику.
Тут уж извиняйте, каждому "на вкус и цвет все фломастеры разные".
Одним больше нравится на логике делать, программистам больше нравится программировать (на уровне программирования) схемотехнику.
Тут уж извиняйте, каждому "на вкус и цвет все фломастеры разные".
-
krokodil
- Первый раз сказал Мяу!
- Сообщения: 39
- Зарегистрирован: Пт окт 30, 2009 00:30:11
- Откуда: Минск
Re: Автомат управления освещением санузла
Bear2011 писал(а):А что без МК уже никуда?Один 155ТМ2 и ключ для управления лампой
Если точно знаешь что должно получиться и логика пойдет. А вот чтобы всех домочадцев удовлетворить алгоритм работы менять приходилось много раз. Тут уж МК вне конкуренции.
-
krokodil
- Первый раз сказал Мяу!
- Сообщения: 39
- Зарегистрирован: Пт окт 30, 2009 00:30:11
- Откуда: Минск
Re: Автомат управления освещением санузла
Набросал, по просьбе молодого коллеги, на скорую руку схему своего варианта в splan7.
- Вложения
-
- 1.rar
- (3.49 КБ) 213 скачиваний


