Генератор одиночных импульсов на AVR

Обсуждаем контроллеры компании Atmel.
Ответить
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт апр 06, 2012 18:11:44

Сообщение artemx »

Ребята кто сможет помочь?Нужно продумать узел возможно на микроконтроллере с такой задачей:при подаче на вход к примеру пика или AVR логического нуля, на выходе с задержкой на 5 секунд необходимо получить три импульса положительной полярности с длительностью каждого примерно секунду,планируется управление транзисторным ключем и рэле.
Реклама
ks0
Прорезались зубы
Аватара пользователя
Сообщения: 238
Зарегистрирован: Чт фев 28, 2013 14:16:10

Сообщение ks0 »

Прошить МК сами сможете?
Реклама
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт апр 06, 2012 18:11:44

Сообщение artemx »

Прошить то смогу,программаторы есть,но вот в программировании дуб.
Друг Кота
Аватара пользователя
Сообщения: 3497
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Сообщение smacorp »

artemx писал(а):при подаче на вход к примеру пика или AVR логического нуля, на выходе с задержкой на 5 секунд необходимо получить три импульса положительной полярности с длительностью каждого примерно секунду
Объясните точнее что требуется на входе, какая модель AVR используется, какая частота тактирования, какие выводы использовать на вход и выход. В общем, точное ТЗ и, желательно, схема. Сама же прошивка очень примитивна. По-крайней мере, видится такой по текущему описанию.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Реклама
Эиком - электронные компоненты и радиодетали
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт апр 06, 2012 18:11:44

Сообщение artemx »

Чтобы при смене с единички на ноль по входу контроллер с задержкой на 5 секунд выдавал три импульса на выходе,можно атмега-8,PIC16F628а или подобные,такт любой необходимый,выводы использовать любые необходимыеглавное чтобы работало
Реклама
ks0
Прорезались зубы
Аватара пользователя
Сообщения: 238
Зарегистрирован: Чт фев 28, 2013 14:16:10

Сообщение ks0 »

Ну допустим начнем так

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

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

#define PIN_INPUT	PINB
#define B_INPUT		(1<<PB0)
#define DDR_OUTPUT	DDRB
#define PORT_OUTPUT	PORTB
#define B_OUTPUT	(1<<PB1)

void main()
{
	DDR_OUTPUT |= B_OUTPUT;
	while(1)
	{
		while(PIN_INPUT & B_INPUT);
		_delay_ms(5000);
		PORT_OUTPUT |= B_OUTPUT;
		_delay_ms(1000);
		PORT_OUTPUT &= ~B_OUTPUT;
		_delay_ms(1000);
		PORT_OUTPUT |= B_OUTPUT;
		_delay_ms(1000);
		PORT_OUTPUT &= ~B_OUTPUT;
		_delay_ms(1000);
		PORT_OUTPUT |= B_OUTPUT;
		_delay_ms(1000);
		PORT_OUTPUT &= ~B_OUTPUT;		
	}
}


Это Атмега8, на частоте 1МГц, fuse-биты по-умолчанию. Порты PB0 вход и PB1 выход.
Пока коллективный разум высказывает свое мнение, сразу следующий вопрос:
1. Какая задержка между тремя импульсами по 1 сек? Здесь пока стоит тоже 1 сек.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3497
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Сообщение smacorp »

ks0 писал(а):Это Атмега8, на частоте 1МГц, fuse-биты по-умолчанию. Порты PB0 вход и PB1 выход. Пока коллективный разум высказывает свое мнение...
Да что высказывать. Похоже, что ТС даже точное ТЗ не может сформулировать, вряд ли он поймёт, что такое PB.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт апр 06, 2012 18:11:44

Сообщение artemx »

Точнее длительность импульса 0.5 сек,и между импульсами тоже 0.5сек
ks0
Прорезались зубы
Аватара пользователя
Сообщения: 238
Зарегистрирован: Чт фев 28, 2013 14:16:10

Сообщение ks0 »

Ну 0,5 так 0,5, забирайте
Вложения
test.hex
(492 байт) 477 скачиваний
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт апр 06, 2012 18:11:44

Сообщение artemx »

Cпасибо!И еще добавлю,управление будет идти с выхода другой меги которая управляет транзисторным ключем и рэлюшкой.
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Сообщение Андрей СШ »

Мега8 под такую задачу маловато будет, надо как минимум Мега32U4, а лучше XMega.

Ещё было бы неплохо уточнить:
- что нужно делать если сигнал пришёл повторно во время исполнения предыдущей последовательности;
- требуется ли фильтрация входного сигнала, а то вдруг он идёт поперёк сварочного цеха.
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт апр 06, 2012 18:11:44

Сообщение artemx »

Мне товарищ притащил таймер обратного отсчета от какого-то оборудования,выполненый на жки индикаторе 8#2 winstar и меге-8, со временем отключения до 24 часов.И попросил каким-нибудь образом зафиксировать его жестко на 3 минуты,но исходников нет да и сам мк не читается видимо закрыт.
Изначально прицип таймера такой; при подаче питания таймер входит в рабочий режим и устанавливаем кнопками необходимое время отключения и жмем кнопку пуск при этом включается реле управляемое одним из выходов меги через транзистор,по истечении этого времени рэле отключается и таймер производит автосброс показаний в нули на табло,и далее также набираем время отключения и жмем пуск и цикл повторяется,получается разовый таймер.
Идея: взять сигнал управления с базы ключевого транзистора который управляет рэлюшкой и завести его на новый мк и как только появляется лог 0 то новый мк тупо выдает 3 импульса на выходе на аналогичный ключ на трназисторе и мелкую рэлюшку которая в свою очередь законтачивает кнопку отсчета минут в плюс три раза(3мин),а далее нажимаем кнопку пуск и цикл повторяется.

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

Cоглашусь что это изобретение велосипеда который уже давно изобретен,но надо сделать.
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Сообщение Андрей СШ »

Кажется проще на этой же меге8 с нуля сделать такой таймер и выкинуть оригинал. Тем более если время фиксированное, то можно и экран выкинуть. И программа у него будет проще чем у генератора импульсов.

Конечно самый эстетичный вариант - выпаять оригинальный микроконтроллер и впаять свой, но тут программировать дольше.
Последний раз редактировалось Андрей СШ Вс июл 26, 2015 13:09:20, всего редактировалось 1 раз.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1315
Зарегистрирован: Пт ноя 27, 2009 19:47:13
Откуда: Казань

Сообщение НАПАЛМ »

А начальная итерация как должна инициироваться, ручным выбором, или сразу после включения питания?
Контроллер используйте максимально плюшевый (mega8=из пушки по воробьям)
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт апр 06, 2012 18:11:44

Сообщение artemx »

Мега на панельке.И в программировании я не смыслю.

НАПАЛМ
Cразу после подачи питания,к тому же пару мк валяются без дела именно атмега-8
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Сообщение Андрей СШ »

ks0 выложил программу, чтобы из неё сделать трёхминутный таймер нужно удалить лишние переключения и изменить время в на 3 минуты.

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

#define PIN_INPUT PINB
#define B_INPUT (1<<PB0)
#define DDR_OUTPUT DDRB
#define PORT_OUTPUT PORTB
#define B_OUTPUT (1<<PB1)

void main()
{
DDR_OUTPUT |= B_OUTPUT;
while(1)
{
while(PIN_INPUT & B_INPUT);
PORT_OUTPUT |= B_OUTPUT; //включить выходное реле
_delay_ms(60000);//одна минута
_delay_ms(60000);//вторая
_delay_ms(60000);//третяя
PORT_OUTPUT &= ~B_OUTPUT; //выключить
}
}

Даже проще чем оригинал, можно несколько светодиодов добавить для визуализации отсчёта.
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт апр 06, 2012 18:11:44

Сообщение artemx »

А вообще функиональность таймера нужна такая если к примеру собрать новый: включил питание,таймер установился в режим ожидания нажатия кнопки пуск,кратковременно нажимаем включается рэле и пошел обратный счет с 3 минут до нуля затем отключается и отключает управляющее рэле и снова ожидает нажатия кнопки пуск.

Думаю действительно собрать новый таймер
Последний раз редактировалось artemx Вс июл 26, 2015 13:39:59, всего редактировалось 1 раз.
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Сообщение Андрей СШ »

Программа выше именно это и делает.
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт апр 06, 2012 18:11:44

Сообщение artemx »

То что PB0 и PB1 вход и выход понятно,но мне бы сразу HEX,я не шарю в компиляциях.А если бы еще и индикатор 8на2 строк прикрутить то вообще супер было бы
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Сообщение Андрей СШ »

Ну индикатор прикрутить с удалённой отладкой через форум это надо быть джедаем (они ещё и распиновкой все отличаются). Поэтому и предлагаю тающую полоску из светодиодов.

Схему нарисуйте как кнопка подключена и реле (светодиоды опционально) я напишу программу.
Ответить

Вернуться в «AVR»