Страница 1 из 1
Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 17:38:38
ARCHIE_LAB
Всем доброго времени суток коты) я начинающий радио кот решил сделать автомобильный датчик дождя.
Моделировал устройство в Протеусе.
Имеется плата управления и плата датчика, плата датчика состоит из ИК диодов и фото диода ФД 256А, устанавливается датчик под лобовое стекло автомобиля, суть в том, что ИК лучи отражаются от лобового стекла и попадает на фотодиод, на порту МК подключенного к фотодиоду логическая 1, а это значит, что реле остается выключенным. Если же стекло мокрое, то ИК лучи преломляются под другим углом и на фотодиод попадает меньшее количество лучей(предположим, что вообще не попадают) на порту МК логический 0, реле срабатывает и запускает стеклоочистители авто. Знаю, что всё очень грубо и примерно, но мне нужно от чего-нибудь отталкиваться) Вот код программы, сильно не ругайте писал в первый раз:
Код: Выделить всё
.include "m8def.inc"
.list
.def temp=r16
.def temp1=r10
.def count1 =r28
;--------------------------------------------
.cseg
.org 0
;--------------------------------------------
ldi temp,0x80
out acsr,temp
;--------------------------------------------
ldi temp,0x00
out ddrd,temp
ldi temp,0xff
out ddrb,temp
ldi temp,0xff
out ddrc,temp
out portc,temp1
out portd,temp
start:
sbi portb,pb0
sbi portb,pb1
sbi portb,pb2
;rjmp start
metka:
in temp,pind
out portc,temp
rjmp start
ret
Могу скинуть так же схему в Протеусе для проработки логики программы)
Заранее всем спасибо)
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 18:31:30
Ser60
Интересная задумка. А в чем вопрос-то?
Мне тоже нужен бесконтактный датчик дождя. Проверялся-ли принцип на реальном устройстве?
Еще вопрос, зачем там Мега-то и аж 4 светодиода? По-моему вполне сошла-бы тинька с внутренним генератором.
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 18:41:11
ARCHIE_LAB
Ser60 писал(а):Интересная задумка. А в чем вопрос-то?
Мне тоже нужен бесконтактный датчик дождя. Проверялся-ли принцип на реальном устройстве?
Еще вопрос, зачем там Мега-то и аж 4 светодиода? По-моему вполне сошла-бы тинька с внутренним генератором.
я учус просто)
насчет проверки ну так то была банальная проверка, сделал навеснйо монтаж, вес просто, фотодиод, резистор и светодиод для индикации работы "устройства", вес спаяно было последовательно, был подключен блок питания, держал над всем этим чудом стекляшку от страх солнцезашитных очков, и от уровня устройства прикладывал пульт от ТВ и нажимал на кнопки, ИК лучи четко отражались, мочил стекляшку и отражение происходило уже через раз.
насчет вопроса просите забыл задать) так вот, мне хочется узнать ваше мнение по поводу обвзяки реле и по подключению фотодиода) и интересует вопрос по поводу кода, правильный ли он?
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 19:04:31
Ser60
Добавьте комментарии в коде, без них не всегда понятны намерения. При беглом просмотре, видно, что переменная temp1 не инициализирована. Вообще, попробуйте работу программы в симуляторе в AVR Studio, тогда много вопросов снимутся сами собой.
По поводу реле: подключено правильно, но резистор R6 может быть удален без потери функционирования. А вот с фото-диодом проблема. Зачем там в послед с ним подстроечник? В любом случае, он не будет выдавать уровень лог. 1 при засветке. Его следует подключить либо к компаратору МК, либо к АЦП, и может потребоваться усилитель на операционнике для поднятия уровня сигнала от ФД. У меня такого ФД нет, попробовать не смогу.
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 19:07:52
Ser60
Более того, если нужно только регистрировать наличие отраженного луча от стекла, зачем там вообще МК?
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 19:13:22
ARCHIE_LAB
Хорошо комментарии сейчас сделаю, а поповоду усилителя, не могли бы вы дать пример усилителя? насчет АЦП и компаратора я к сожалению ничего не знаю

а по поводу вопроса про МК, просто хотелось сделать что то простенькое для дальнейшего совершенствования устройства) в симуляторе вроде все адекватно работает
сделал
Код: Выделить всё
.include "m8def.inc"
.list
.def temp=r16
.def temp1=r10
.def count1 =r28
;--------------------------------------------
.cseg
.org 0
;--------------------------------------------
ldi temp,0x80
out acsr,temp
;--------------------------------------------
ldi temp,0x00
out ddrd,temp
ldi temp,0xff
out ddrb,temp
ldi temp,0xff
out ddrc,temp
out portc,temp1
out portd,temp
start:
sbi portb,pb0 ;включение ИК Диодов
sbi portb,pb1
sbi portb,pb2
sbi portb,pb3
;rjmp start
metka:
in temp,pind ; вот тут сам чуть чуть не понимаю, эту часть брал с какого то сайта, вообще это ожидание 0 или 1 от фотодиода
out portc,temp ; передача на порт С содержимого переменной temp
rjmp start
ret
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 19:19:58
Ser60
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 19:29:02
ARCHIE_LAB
спасибо большое, постом выше добавил код с комментами
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 20:02:29
Ser60
В общем, идея понятна:
а. Инициализируем порт Д на ввод, порты B и C на вывод и устанавливаем в порте C на выходе 0, чтобы не сработало реле сразу Ну тогда вместо ldi temp,0x00 следует написать ldi temp1,0x00
б. В цикле после метки start включаем светодиоды и проверяем напряжение на ФД. Если оно 0, то реле не включится, если 1, то включится.
Работать не будет, т.к. уровень сигнала с ФД ниже уровня лог. 1. Нужен усилитель. Но тогда, почему-бы его выход просто не подключить напрямую к транзистору реле? Я понимаю, что Вы учитесь и для тренировки общения с МК сойдет.
Из кода вытекает, что светодиоды постоянно включены. Зачем тогда их подключать к МК? Проще будет их от 5В запитать.
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вс июн 05, 2011 20:29:16
ARCHIE_LAB
Ser60 писал(а):В общем, идея понятна:
а. Инициализируем порт Д на ввод, порты B и C на вывод и устанавливаем в порте C на выходе 0, чтобы не сработало реле сразу Ну тогда вместо ldi temp,0x00 следует написать ldi temp1,0x00
б. В цикле после метки start включаем светодиоды и проверяем напряжение на ФД. Если оно 0, то реле не включится, если 1, то включится.
Работать не будет, т.к. уровень сигнала с ФД ниже уровня лог. 1. Нужен усилитель. Но тогда, почему-бы его выход просто не подключить напрямую к транзистору реле? Я понимаю, что Вы учитесь и для тренировки общения с МК сойдет.
Из кода вытекает, что светодиоды постоянно включены. Зачем тогда их подключать к МК? Проще будет их от 5В запитать.
спасибо большое за то, что объяснили ошибку, а насчет исполнения это просто мой выбор, дипломную работу хочу делать на МК, а это устройство как тренировочное)вобщем я сейчас посижу написую схему перепишу прогу и выложу её опять сюда, на Ваш суд)
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Вт июн 07, 2011 21:30:17
ARCHIE_LAB
Сделал новую принципиалку) выкладываю на суд, фотодиод подключал как советовал мой товарищ
Re: Автомобильный датчик дождя на Atmega8
Добавлено: Ср июн 08, 2011 02:44:51
Ser60
Зачем такой наворот, ведь речь идет о приеме отраженного луча от стекла, где расстояние между источником и приемником несколько сантиметров. А эта микра рассчитана на прием сигналов с нескольких метров. Кроме того, где ее взять, и вообще выпускается-ли она еще? Я-бы просто начал со схемы на Рис. 1а в
http://www.kit-e.ru/assets/files/pdf/2009_02_46.pdf Высокая линейность в нашем случае не нужна.
Если не сработает, то проще всего будет использовать микросхему фотоприемника дистанционного управления. В ней уже вмонтирован усилитель и фильтр на видимый свет и помехи. Но тогда нужно будет на светодиоды подавать 38 кгц меандр. Ну он этом позже, если захотите продолжать в этом направлении.
Ну а если все-же будете делать свою схему, отсоедините вывод 11 TBA2800 от земли, подавайте питание на правый конец резистора R6 и подключите эмиттеры VТ2. VТ3 на общий провод.