Технический Портал Левши Понедельник, 25.11.2024, 20:45
| RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
ПРОСТЫЕ СХЕМЫ СИГНАЛИЗАЦИЙ
ЛЕВШАДата: Воскресенье, 17.02.2008, 20:26 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 1923
Награды: 2
Статус: Offline
cool есть такое ТЗ несложное.
нужна примитивная схема для гаража, алгоритм такой:
тумблер внутри гаража, включаем тумблером сигнализацию, у нас задержка 10 секунд чтоб выйти и закрыть дверь.
вышли закрыли,
теперь утром открываем, снова задержка 10 секунд чтоб войти и выключить тумблер,иначе включается сигнализация (сирена).
еще момент если сирена включилась, то выключить сигнализацию тумблером не должно быть возможным.
для этого должна быть спрятанная кнопка сброса.


упростить - улучшить!
если ВЫ хотите помочь сайту в развитии,
наши счета:
Z789673670495 ($)
R806233314616 ®
41001205775274(yand)
 
VasylYEДата: Понедельник, 18.02.2008, 11:53 | Сообщение # 2
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
cool Есть такое техническое предложение - делаем схему на микроконтроллере smile

Если поддерживаете, продолжим, а заодно и поучимся smile


А нам своє робить!
 
ЛЕВШАДата: Понедельник, 18.02.2008, 13:23 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 1923
Награды: 2
Статус: Offline
Quote (VasylYE)
Если поддерживаете, продолжим, а заодно и поучимся

cool За! обеими руками! smile


упростить - улучшить!
если ВЫ хотите помочь сайту в развитии,
наши счета:
Z789673670495 ($)
R806233314616 ®
41001205775274(yand)
 
VasylYEДата: Понедельник, 18.02.2008, 15:14 | Сообщение # 4
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
Схема устройства состоит из МК ATMega16 (в принципе для такого устройства можно с головой обойтись контроллером типа ATTiny2313 или еще меньшим, но для отладки в VMLab берем шестнадцатую мегу, а для реального устройства достаточно будет перекомпилировать исходный код для соотв. МК).

Для питания нужно +5В стабилизированного напряжения, которое подается на клеммы КЛ1. Конденсаторы С6,С7 служат для фильтрации помех по питанию. Конденсатор С1 керамический, 0,5мкф необходим по рекомендациях, указанных в ДШ на МК. Фильтр L1C2 необходим если используется АЦП, если нет, то ножку AVCC можно подключить напрямую к +5В. При использовании ATTiny2313 фильтр и емкость С1 не нужны.
Конденсаторы С3,С4 и кварцевый резонатор можно исключить, если использовать внутренний RC генератор МК.
Разъём J1.1 J1.2 типа IDC10 необходим для подключения программатора, например, ByteBlaster.
Резистор R1 подтягивает цепь сброса МК к +5В, для повышения стойкости к помехам. Сброс МК происходит при подачи на вывод ~RESET логического "0".
Тумблер U2 переключает режим работы схемы - в верхнем (по схеме) положении на порт МК PD6 (MODE) поступает +5В, сигнализация включена. В нижнем положении, на порт поступает 0В, сигнализация отключена.
Светодиод D1 служит для индикации режима работы.
Кнопкой Кн1 можно отключить сигнализацию, если она сработала.
Датчиками служат герконы К1.1, К1.2, К1.3, число их может быть разное (сколько нужно). Когда двери (или окна) открыты, магниты, установленые на них не действуют на герконы. После закрытия дверей, контакты герконов под действием магнитов замыкаются. Срабатывание устройства произойдет после того, как хотя бы один геркон разомкнулся (с учетом 10 секунд для отключения сигнализации). Когда герконы замкнуты, на порт PD2/INT0 подается лог. "0". В случае разрыва цепи на порт подается лог. "1", срабатывает прерывание INT0 контроллера по возрастающему фронту импульса.
Сброс тревоги происходит при появлении на порте PD3/INT1 лог. "0", прерывание INT1 (по падающему фронту).
Цепи R2R3C5 и R7R8C8 необходимы для фильтрации помех на входах прерываний, диоды Д2,Д3 защищают вход контроллера от возможных выбросов напряжения вследствие наводок на шлейфе, ведущем к датчикам.
Мосфет Q2 типа IRLZ44 управляет электромагнитным реле Рел1 (любое маломощное на 5В), контакты которого коммутируют нагрузку (сирену и т.п.). Диод Д1 необходим для защиты мосфета при включении/выключении реле, которое является индуктивной нагрузкой.
Разработкой алгоритма и программы для МК займемся следующим разом.
Высказывайте свои предложения, пожелания, замечания.
Схема в формате пдф (архив)
Прикрепления: 0015915.gif (18.9 Kb) · sc1.rar (21.9 Kb)


А нам своє робить!
 
ЛЕВШАДата: Понедельник, 18.02.2008, 19:45 | Сообщение # 5
Admin
Группа: Администраторы
Сообщений: 1923
Награды: 2
Статус: Offline
cool а как это дело програмировать?

упростить - улучшить!
если ВЫ хотите помочь сайту в развитии,
наши счета:
Z789673670495 ($)
R806233314616 ®
41001205775274(yand)
 
VasylYEДата: Вторник, 19.02.2008, 10:37 | Сообщение # 6
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
Для программирования рекомендую адаптер Altera ByteBlaster - смотреть
AVReAl-адаптеры
Адаптер подключается к ЛПТ порту. Этим адаптером можно прошивать МК непосредственно на плате устройства, достаточно предусмотреть разъем.
Собственно программой, которая с компа через адаптер заливает hex в контроллер, является AVReAl.
Это консольное приложение, для работы с ним удобно использовать .bat файлы. Для Mega16 и Tiny2313 у меня есть готовые батники, выложу их позже.
Важно при сборке ByteBlasterа использовать стандартный разъем для шлейфа, который подключается к плате с контроллером. Тогда при конструировании нового устройства предусматриваем разъем, и в любое время можем заняться прошивкой контроллера.

Ключ у этого разъема находится со стороны 1,3,5,7,9 контактов, т.е. снизу (по рисунку)
Прикрепления: 1517481.gif (6.8 Kb)


А нам своє робить!
 
VasylYEДата: Вторник, 19.02.2008, 10:44 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
Скачайте себе VMLab3.12 IDE/debugger for the AVR MCU всего около 4 Мб
В нем очень удобно отлаживать программу. AVR123 в своем курсе подробно описал работу этого IDE - интегрованной среды разработчика.
Весь проект будем вести в нем.


А нам своє робить!
 
VasylYEДата: Среда, 20.02.2008, 13:44 | Сообщение # 8
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
Построим алгоритм работы устройства. Это необходимо для лучшего понимания логики работы программы МК. После включения питания, МК начинает выполнять инструкции, расположенные в памяти програм, начиная с адреса 0x00 (таким образом будем записывать шестнадцатеричные числа, с приставкой 0x ). С адреса 0x00 начинается выполнение инструкций также в случае сброса МК (при подачи лог. "0" на вход ~RESET). После нулевого адреса находится вектор прерываний. Вектор прерываний, это набор инструкций, каждая из которых будет выполняться при соотв. прерывании.
Вот пример возможного кодирования вектора прерываний для Mega16 (взято из ДШ)
Address Labels Code Comments
$000 jmp RESET; Reset Handler
$002 jmp EXT_INT0; IRQ0 Handler
$004 jmp EXT_INT1; IRQ1 Handler
$006 jmp TIM2_COMP; Timer2 Compare Handl
$008 jmp TIM2_OVF; Timer2 Overflow Hand
$00A jmp TIM1_CAPT; Timer1 Capture Handl
$00C jmp TIM1_COMPA; Timer1 CompareA Hand
$00E jmp TIM1_COMPB; Timer1 CompareB Hand
$010 jmp TIM1_OVF; Timer1 Overflow Hand
$012 jmp TIM0_OVF; Timer0 Overflow Hand
$014 jmp SPI_STC; SPI Transfer Complet
$016 jmp USART_RXC; USART RX Complete Ha
$018 jmp USART_UDRE; UDR Empty Handler
$01A jmp USART_TXC; USART TX Complete Ha
$01C jmp ADC; ADC Conversion Compl
$01E jmp EE_RDY; EEPROM Ready Handler
$020 jmp ANA_COMP; Analog Comparator Ha
$022 jmp TWSI; Two-wire Serial Inte
$024 jmp EXT_INT2; IRQ2 Handler
$026 jmp TIM0_COMP; Timer0 Compare Handl
$028 jmp SPM_RDY; Store Program Memory
;
$02A RESET: ldi r16,high(RAMEND); Main program start
$02B out SPH,r16; Set Stack Pointer to
$02C ldi r16,low(RAMEND)
$02D out SPL,r16
$02E sei; Enable interrupts
$02F xxx

Конечно, если некоторые прерывания не используются, то вместо jmp xxx или не пишется ничего, или команда возврата из прерывания (reti). Для указания адреса используется директива .ORG , например если используются только прерывания INT0, INT1 (как в нашем случае), то кодирование вектора будет выглядеть примерно так:

.ORG 0x00 ;Начало программы
reset:
rjmp start
.ORG INT0addr
rjmp irq0 ;Переход к обработчику срабатывания датчика
.ORG INT1addr
rjmp irq1 ;Переход к отключению сигнализации

.ORG 0x30
;Отсюда программа начинает работать после подачи питания
;
start:
ldi R17, HIGH (RAMEND) ; Инициализация указателя стека
ldi R16, LOW (RAMEND)

out SPH, R17
OUT SPL, R16
...

Несколько слов относительно прерываний и настройки порта.
Прерывание происходит только тогда, когда
1. Разрешены глобальные прерывания (командой sei)
2. Разрешено соответствующее прерывания (выставлен бит разрешения конкретного прерывания в соотв. регистре)
3. Наступает событие, которое вызывает данное прерывание (например, изменение уровня на выводе МК, переполнение таймера и т.д.).
Если разрешено конкретное прерывание, а глобальные прерывания запрещены, то при событии, вызывающем его, выставляется флаг прерывания. Поэтому в программе мы в нужных местах будем вытирать эти флаги.

Порт МК состоит из трех регистров: PORTx, DDRx, PINx. PORTx это регистр, в который мы записываем число, которое нам нужно получить на ножках МК. DDRx - настраивает порт на вход или на выход. И, наконец с регистра PINx мы считываем то, что реально находится на порте.

Алгоритм главного цикла программы


Алгоритм обработчиков прерываний.

Прерывание INT0 выполняется при нарушении датчиков сигнализации, прерывание INT1 - при нажатии на секретную кнопку сброса тревоги.

Прикрепления: 6177587.gif (13.8 Kb) · 4722829.gif (9.8 Kb)


А нам своє робить!
 
VasylYEДата: Среда, 20.02.2008, 14:07 | Сообщение # 9
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
Следующим этапом создаем проект в VMlab (можно в чем угодно, но, в нем очень удобно вести отладку, имхо).
Итак, Project -> New
В появившимся окне выбираем директорию проекта, далее выбираем МК, и жмем к нопку Add this

Далее в окне проекта, т. е. signal.prj
вводим описание обвязки МК - резисторы, конденсаторы, светодиоды, кнопки, указываем, с каких узлов
выводить данные на график
Code

; ************************************************************
; PROJECT:
; AUTHOR:
; ************************************************************

; Micro + software running
; ------------------------------------------------------------
.MICRO "ATmega16"
.PROGRAM "signal.asm"
.TARGET "signal.hex"

.TRACE              ; Activate micro trace

; Following lines are optional; if not included
; exactly these values are taken by default
; ------------------------------------------------------------
.POWER VDD=5 VSS=0  ; Power nodes
.CLOCK 1meg         ; Micro clock
.STORE 1000m         ; Trace (micro+signals) storage time
;*************************************************************
;есть такое ТЗ несложное.
;нужна примитивная схема для гаража, алгоритм такой:
;тумблер внутри гаража, включаем тумблером сигнализацию, у нас задержка 10 секунд чтоб выйти и закрыть дверь.
;вышли закрыли,
;теперь утром открываем, снова задержка 10 секунд чтоб войти и выключить тумблер,иначе включается сигнализация (сирена).
;еще момент если сирена включилась, то выключить сигнализацию тумблером не должно быть возможным.
;для этого должна быть спрятанная кнопка сброса.
;*************************************************************

; Micro nodes: RESET, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, ACO, TIM1OVF
; Define here the hardware around the micro
; ------------------------------------------------------------

;Контакт сигнализации
K0 node2 Vss LATCHED ; sensor

;port resistor
R1  PD2 node1 330

;External Pull-up resistor
R2  node1 Vdd 5.6k  

;block capasitor
C1  node1 VSS 0.5u

;line resistor
R3  node1 node2 10

;led resistor
R4  PD5 node3 100

;Signal LED
D1 VDD node3  ;

;reset alarm
R5  PD3 node4 330

R6  node4 Vdd 5.6k

C2  node4 VSS 0.5u

K1 node4 Vss

;MODE switch
R7 mode Vss 5.6k

R10  PD6 mode 330

K2 mode Vdd LATCHED ; x: Buttons 0 - F. Optional type: MONOSTABLE(t_delay), LATCHED

.PLOT V(PD2) V(PD3) V(PD4) V(PD5) V(PD6) ;Plot timing diagrams INT0 INT1 Gate LED MODE respectively
Прикрепления: 6717525.gif (14.7 Kb)


А нам своє робить!
 
VasylYEДата: Среда, 20.02.2008, 14:40 | Сообщение # 10
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
Прикрепляю весь архив проекта
А также архив с батниками к AVReal-у.
Прикрепления: signalization.rar (12.4 Kb) · avreal.rar (94.4 Kb)


А нам своє робить!
 
VasylYEДата: Среда, 20.02.2008, 15:19 | Сообщение # 11
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
В общем все это дело я прошивал в контроллер. Вроде-бы работает. Конечно, все это можно сделать на дискретных элементах, но...

И еще, забыл - авреал хочет драйвер для ЛПТ порта
Это файлы из комплекта DriverLINX от Scientific Software Tools, Inc. (http://www.sstnet.com). С некоторых пор этот драйвер перестал поддерживаться и исчез с основной страницы фирмы.
В сокращённом виде без описания и множественных примеров применения можно взять тут dlportio.zip (170KB).
В некоторых случаях могут быть проблемы с установкой сокращённой версии под WinXP (возможно, начиная с какого-то сервис-пака, так как под WinXPsp1 нормально устанавливался и сокращённый вариант). В таком случае следует взять полную версию инсталлятора (1.5МБ).
Применение WIN32 версии фактически имеет смысл только под NT, Win2000, WinXP, когда DOS-программа не имеет доступа к портам. Под W95/W98 нормально работает и DOS-версия.

Прикрепления: avr2313.rar (36.6 Kb) · dlportio.zip (170.1 Kb)


А нам своє робить!
 
Paxan-MorozДата: Пятница, 18.07.2008, 11:56 | Сообщение # 12
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Статус: Offline
Для машины недавно нашол интересную схему, подключаешь к датчику уровня топлива прямой вход операционника и через резистор соединяешь с инвент входом который зашунтирован кандером на землю, на выходе релешку какунибуть, и все датчик движения перемещения тряски готов. Кто ниче не понял спрашивайте.

Добавлено (18.07.2008, 11:56)
---------------------------------------------
Хочю зделать датчик приближения к машине на принципе изменения емкоти корпуса при приближении к нему других тел , но по инету рыл рыл и нарыл только емкостные датчики работающие от антены (пластины металической 20х20), а что нельзя чтоли весь корпус на антену пустить. Кто что знает поделитесь опытом.

 
ЛЕВШАДата: Пятница, 18.07.2008, 14:56 | Сообщение # 13
Admin
Группа: Администраторы
Сообщений: 1923
Награды: 2
Статус: Offline
Quote (Paxan-Moroz)
а что нельзя чтоли весь корпус на антену пустить.

думаю можно, тоже когда то об этом думал.
а еще хотел добавить к авто сигнализации ЕЖИК на 5000V. полная гарантия, что машину ни кто не тронет! biggrin


упростить - улучшить!
если ВЫ хотите помочь сайту в развитии,
наши счета:
Z789673670495 ($)
R806233314616 ®
41001205775274(yand)
 
Paxan-MorozДата: Пятница, 18.07.2008, 16:50 | Сообщение # 14
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Статус: Offline
Quote (ЛЕВША)
а еще хотел добавить к авто сигнализации ЕЖИК на 5000V

да без него необойтись, но надо дождаться когда подключат скоростной мобильный инет и видеозвонки через мобилу, ставить камеру, подключать все телефону, и развлекаться. Смотриш тачка тебе звонит посмарел чтоб там все уселись комфортно, завел движок, закрыл замок, потом влючаешь сирену которая в салоне выдает дицибел 300, и если этого будет недостаточно тогда пименять электроток biggrin .
 
любительДата: Среда, 18.02.2009, 11:58 | Сообщение # 15
Лейтенант
Группа: Проверенные
Сообщений: 44
Награды: 0
Статус: Offline
насчет датчика топлива мысль интересная, хорошо бы схемку глянуть.насчет активных средств защиты. туговато будет.тяжело доказать будет непревышение самообороны.вдруг у него сердце не дай бог слабое.на всю катушку за покойника в машине впаяют.или начнет рассказывать что в аптеку хотел поехать, или просто покататься.короче закон пока на их строне.не хотелось бы ушат холодной воды на эту тему выливать, но вы там ребята с такими штуками поосторожней.хотя сам делал такую таксисту на заднюю сидуху.доволен.а из активных можно было бы обдумать такую идею.на многих современных машинах регулируемое сиденье водителя на электромоторах.вот это можно спокойно включать, и прижать паразита к рулю.да и ехать в таком положении ему туговато будет.на мурано вдобавок еще и педали ездят - вперед их biggrin тоже.можно под это дело задействовать и автоматику машины (память сидений, руля, педалей).нужно предусмотреть защиту, что бы супостат не мог нажать какую либо правильную кнопку в машине и не мог таким образом остановить движение.вот тут точно без микроконтролера не обойтись.

Добавлено (18.02.2009, 11:58)
---------------------------------------------
привет Paxan-Moroz.датчики приближения лучше использовать готовые.желательно двух зоновые.там есть особенность.они срабатывают только тогда когда массивное тело рядом с машиной и его видно из окон.иначе говоря, если подкрасться на четвереньках, то точно не сработает.даже на максимальной чувствительности.что бы сгладить это, датчик надо крепить на потолке.но там своя засада.когда крыша нагревается, либо остывает.она потрескивает.и датчик дает ложные тревоги.
гораздо интересней и актуальней другое.взять готовый датчик движения, и доработать его так.что бы он стал многозоновым.что то типа шим.двигаешься далеко от машины.чирки сирены редкие, чем длиже к машине - тем чаше.застыл, не двигаешься.тишина.только шелохнулся, в зависимости от растояния от машины.соответствующая реакция.машина как бы отталкивает.и по звукам сирены четко будет слышно насколько близко подошел человек.такие задачи без микроконтроллера точно не решить.по емкостному датчику могу посоветовать использовать тонировочную пленку на окнах.надо только поискать электропроводную.по слухам эти пленки содержат метализацию.

 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright MyCorp © 2024