реле задержки включения акустики

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
hatabi4
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Пт апр 22, 2011 20:09:44

реле задержки включения акустики

Сообщение hatabi4 »

Добрый день всем. Нужна помощь с atmega8. Собрал схему на TDA7314S и ATmage8 по статье С.Рюмика из журнала Радиохобби 1/2006. Все отлично, но решил немного добавить в нее изменения, а именно реле задержки включения акустики. Сам написал программу под отладочную плату, прошил, не работает( хотя в Proteus-е все нормально) - не открывается транзистор, хотя выход с МК есть. Как заставить его открыться и как тот код вставить в уже готовый из статьи, т.к. там порты сконфигурированы по другому.

Мой код:

Код: Выделить всё

#include <avr/io.h>
#include <util/delay.h>

void pause (unsigned int n)
{
	unsigned int i;
	for (i=n;i>0;i--);
}


int main(void)
{
	unsigned char n;
	_delay_ms(1000); //1 сек
	DDRD |= _BV(PD1);
	pause(50);
	while(1)
	{
		for(n=0;n<14;n++)
		_delay_ms(1000);
		PORTD=0x02;
	}
}
Вложения
rh6.c
основной код усилителя
(9.26 КБ) 535 скачиваний
relay.jpg
(151.84 КБ) 341 скачивание
"А теперь надо обязательно дунуть! Потому что если не дунуть, никакого чуда не произойдет!" © Амаяк Акопян
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: реле задержки включения акустики

Сообщение pyzhman »

Катушку реле перенести в коллекторню цепь, а эмиттер заземлить.
Docendo discimus
Реклама
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: реле задержки включения акустики

Сообщение Flasher »

1. По твоей схеме:
Перемести реле в коллектор транзистора. Параллельно обмотке реле поставь диод 1n4148 анодом к коллектору транзистора. Сопротивление в базе транзистора увеличь до 1 кОм. Добавь Еще одно сопротивление 4,7 кОм параллельно переходу БЭ транзистора.
2. По программе:
1. Не совсем понятен алгоритм работы твоей программы.
void pause (unsigned int n)
{
unsigned int i;
for (i=n;i>0;i--);
}
Скорее всего убъется насмерть оптимизатором компилятора. Зачем тебе эта функция? Используй встроенные функции паузы.
2.Инициализация портов должна происходить в начале программы.
DDRD |= _BV(PD1);
_delay_ms(1000); //1 сек
3. А зачем бесконечное число раз через каждую секунды включать реле?
while(1)
{
for(n=0;n<14;n++)
_delay_ms(1000);
PORTD=0x02;
}
Аватара пользователя
hatabi4
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Пт апр 22, 2011 20:09:44

Re: реле задержки включения акустики

Сообщение hatabi4 »

да кстати, что-то я тупанул с эмитторной цепью( сейчас исправлю, перепишу программу и попробую
"А теперь надо обязательно дунуть! Потому что если не дунуть, никакого чуда не произойдет!" © Амаяк Акопян
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»