Sign in to follow this  
Krik99

Нужен Исходник Простого Охранного Устройства На Avr...

13 posts in this topic

Krik99    0

Кто может дать исходник на Си простого охранного устройства на два датчика? При срабатывания 1-го датчика охранное устройство должно сработать сразу и включить сирену, а при срабатывание 2-го датчика охранное устройство дложно ждать 30 сек. и если в течении 30 сек. не будет нажата кнопка то охранное устройство должно сработать и включить серену... Я думаю что исходник будет очень простой. :rolleyes: За ранние благодарен!

Share this post


Link to post
Share on other sites
Alex K    4

Архитектура микроконтроллера то хоть какая? Могли бы схемку сперва набросать, чтоли...

Share this post


Link to post
Share on other sites

Бюджетные Wi-Fi-/ Bluetooth-решения для IoT-применения

Обзор основной линейки поставок и новинок Espressif Systems – экономически выгодных SoC Wi-Fi-/ Bluetooth-чипов и модулей для IoT-применений: от простых портативных устройств до промышленных решений

Подробнее...

Krik99    0

Ну хотябы чо за чем должно выполнятся в программе? Чё не кто не знает как написать на Си? <_<

Share this post


Link to post
Share on other sites
Krik99    0

Ну вот я нарисовал структуру программы для вот такой схемы. Проверте на правельность, и укажите на ошибки. Если всё правельно я попробую написать программу на Си...

post-13943-1183705424_thumb.jpg

post-13943-1183705511_thumb.jpg

Share this post


Link to post
Share on other sites

Управляемый свет интернета вещей: Philips и протокол DALI 2.0

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

Подробнее...

Goodefine    96
При срабатывания 1-го датчика охранное устройство должно сработать сразу и включить сирену....

Номера датчиков вроде как перепутаны...Кроме того, нет проверки

...и если в течении 30 сек. не будет нажата кнопка то охранное устройство должно сработать и включить серену...
Edited by Goodefine

Share this post


Link to post
Share on other sites
Krik99    0
Номера датчиков вроде как перепутаны...Кроме того, нет проверки

Насчёт датчиков то нечего страшного. А вот про то что у меня нет проверки по подробние...

да как написать первую паузу? <_<

Edited by Krik99

Share this post


Link to post
Share on other sites
Goodefine    96

Как я понял, сигнализация одного из датчиков должна быть отключаемой (в течение 30с) другой кнопкой. Кроме того, в режиме паузы необходимо продолжать мониторинг датчиков, т.к могут сработать оба - чтобы обеспечить мгновенное срабатывание сигнализации от 2-го датчика, если уже сработал 1-й. Примерный алгоримт:

1.Инициализация МК (конфигурация портов, установка тактирующей частоты и коэфф. предделителя таймера (30с) с разрешением прерывания от него и запретом счета...)

2.Программа мониторинга датчика и кнопки откл. (проверяет по очереди)

2.1Если датчик1 сработал - тревога

2.2если датч.2 - рарешаем работу таймера и в 2.

2.3 Если кнопка - запрещаем счет таймера и обнуляем его и в 2 (или куда надо).

2.4 Если прерывание от таймера - тревога (+запрет счета, обнуление)

2.5 Если ничего не сработало - в 2.

... И в таком духе...

Надо придумать полный алгоритм работы устройства - что оно, например, должно делать после срабатывания, как ставится в дежурный режим и т.д...

Share this post


Link to post
Share on other sites
Krik99    0

Вот я написал вот такую программу пока без кнопки Сброс... Не ругайте сильно я только начал изучать Си...

Вот код:

#include <avr/io.h> // Библиотека ввода-вывода

void pausa(unsigned long a) // Начало функции пауза

{

unsigned long cn;

for(cn=a; cn>0; cn--);

} // Конец функции пауза

void gudok(void) // Начало функции гудок

{

while(1)

{

PORTC &=~_BV(PC3);

pausa (10000);

PORTC |=_BV(PC3);

pausa (10000);

}

} // Конец функции гудок

int main(void) // Начало основной программы

{

PORTB = PORTC = PORTD = 0xFF;

DDRC |= _BV(PC3);

pausa (220000); // Пауза на 30 сек.

while (1) // Бесконечный цикл

{

if (bit_is_clear(PINB,PB2)) // Проверка датчика 1

{

pausa (220000); // Пауза на 30 сек.

gudok (); // Включаем сирену

}

else

{

if (bit_is_clear(PINB,PB3)) // Проверка Датчика 2

{

gudok (); // Включаем сирену

}

}

}

} // Конец основной программы

И раскажите по подробние о том как сделать так чтобы контролёр ждал 30 Сек но в тоже время мог чтото ещё делать , а не стоять и тупо щитать... за ранние благодарен!!!

Share this post


Link to post
Share on other sites
Goodefine    96
/...И раскажите по подробние о том как сделать так чтобы контролёр ждал 30 Сек но в тоже время мог чтото ещё делать , а не стоять и тупо щитать...

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

Прогу не проверял (некогда пока). Если есть симулятор, то проверяй там. Кстати, какой компиллятор и симулятор (ежели есть)?

Share this post


Link to post
Share on other sites
Krik99    0
Для этого паузу нужно организовывать не программно, а аппаратно. В частности для этого существуют встроенные таймеры (какой МК планируется?). Нужно его так сконфигурировать (зависит от конкретного МК), чтобы он переполнялся через нужный промежуток времени, после переполнения возникает прерывание, дальше дело техники...Пока таймер считает, МК может работать...

Прогу не проверял (некогда пока). Если есть симулятор, то проверяй там. Кстати, какой компиллятор и симулятор (ежели есть)?

Программу я проверял всё работает нормально... Нащёт таймера я начал изучать AVR по урокам опубликованым в Радиоаматор за 2005г. а там небыло описания работы с таймером , не могли бы вы показать какой нибуть пример с использованием таймера... Да я пользуюсь компилятором WinAVR. Да и подскажите нормальный учебник по AVR только под компилятор WinAVR. За ранние благодарен!!!

Edited by Krik99

Share this post


Link to post
Share on other sites
MaStak    2
и подскажите нормальный учебник по AVR

В.Н. БАРАНОВ "ПРИМЕНЕНИЕ микроконтроллеров AVR: схемы, алгоритмы, программы"

На 12 странице проект "Контроллер сигнализации" написано на ASMе, описываеться работа в AVR Studio.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this