Страница 2 из 3

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вс мар 16, 2014 19:52:15
pyzhman
Изображение
Программа:
Спойлер

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

//Date    : 16.03.2014
//Chip type           : ATtiny13
//Clock frequency     : 9,600000 MHz


#include <tiny13.h>

bit old_SA1, SA1;
long unsigned int counter;
unsigned char data;
flash long unsigned int number[]= {32955,65909,98864,131819,164774,197729,230684,263639};

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// опрос позиции
old_SA1= SA1;
SA1= PINB.2;

if(old_SA1 && !SA1)
	{
	PORTB.4= 0; // при достижении позиции останавливаем двигатель
	//опрос кнопок
        data= 4*PINB.3 + 2*PINB.0 + PINB.1;
	// старт таймера
        counter= number[data];
        }
// отсчет таймера
if(counter) --counter;

// старт двигателя
if(counter== 1) PORTB.4= 1; 
}



void main(void)
{
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Port B initialization
PORTB=0b00001111;
DDRB= 0b00010000;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 9,375 kHz
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x05;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x02;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

// Global enable interrupts
#asm("sei")

while (1)
{


};
}
Выключателями SA2,SA3 и SA4 задается время срабатывания с дискретом в 15 минут (от 15 до 120). Выключатель SA1 - концевик на валу.
И прошивка.
Но думаю у уважаемого Soir'а поинтереснее будет.

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вс мар 16, 2014 20:58:11
nyvkom_sv
каким образом задаеться время кнопками(какие должни бить замкнутие)!я так понял что ключ на валу буде рестартовать таймер по кругу(тоесть с на
чала)??и зачем в паралель мотору диод?
какое время для роботи двигателя задано в прошивке?

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вс мар 16, 2014 21:25:36
nyvkom_sv
pyzhman писал(а):Изображение
Программа:
Спойлер

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

//Date    : 16.03.2014
//Chip type           : ATtiny13
//Clock frequency     : 9,600000 MHz


#include <tiny13.h>

bit old_SA1, SA1;
long unsigned int counter;
unsigned char data;
flash long unsigned int number[]= {32955,65909,98864,131819,164774,197729,230684,263639};

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// опрос позиции
old_SA1= SA1;
SA1= PINB.2;

if(old_SA1 && !SA1)
	{
	PORTB.4= 0; // при достижении позиции останавливаем двигатель
	//опрос кнопок
        data= 4*PINB.3 + 2*PINB.0 + PINB.1;
	// старт таймера
        counter= number[data];
        }
// отсчет таймера
if(counter) --counter;

// старт двигателя
if(counter== 1) PORTB.4= 1; 
}



void main(void)
{
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Port B initialization
PORTB=0b00001111;
DDRB= 0b00010000;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 9,375 kHz
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x05;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x02;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

// Global enable interrupts
#asm("sei")

while (1)
{


};
}
Выключателями SA2,SA3 и SA4 задается время срабатывания с дискретом в 15 минут (от 15 до 120). Выключатель SA1 - концевик на валу.
И прошивка.
Но думаю у уважаемого Soir'а поинтереснее будет.
можно так сделать?
Изображение
и для работи таймера контакт S1 должен бить постоянно замкнут или нажат и отпущен???

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Пн мар 17, 2014 07:16:41
pyzhman
Выключатель SA1 должен быть нажат при воздействии на него флажка, установленного на валу поворотного механизма. Т.е. если механизм находится в одном из положений, то на мк должен подаваться "0".
Соответствие между кнопками и отсчетом таймера:
SA4 отпущен, SA3 отпущен, SA2 отпущен - 120 мин
SA4 отпущен, SA3 отпущен, SA2 нажат - 105 мин
SA4 отпущен, SA3 нажат, SA2 отпущен - 90 мин
...
SA4 нажат, SA3 нажат, SA2 нажат - 15 мин

Ключ SA1 на валу дает информацию о позиции и служит для остановки вращения.

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

Время работы двигателя не ограничено, он вращается до достижения механизмом позиции SA1.
можно так сделать?
Для ручного управления можно, но тогда нужно разнести ручное управление и автоматическое.

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Пн мар 17, 2014 18:49:56
nyvkom_sv
проверьте пожалуйста правильность схеми!
Изображение

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Пн мар 17, 2014 19:23:43
pyzhman
7812 убрать.

А что Soir? Неужели не откликается?

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Пн мар 17, 2014 19:45:56
nyvkom_sv
сказал что поможет только на другом форуме!!!а уже и тут все придумали)буду сщас розводить плату а завтра думаю попробую испитать

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Пн мар 17, 2014 22:58:40
nyvkom_sv
проверте схемку и печатку
Изображение
Изображение

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вт мар 18, 2014 08:12:31
AndreW_91
1. К МК не подключена земля. Как на схеме, так и на плате.
2. Силовая земля делает слишком большую петлю по всей плате. Силовой полевик лучше всего разместить близко между входом питания и выходом на нагрузку. И сделать так, чтобы земля к расходилась от точки подключения питания звездой. Если просто бросить перемычку от нижней дорожки до 4 вывода МК - можете ловить сбросы или зависания МК при каждом старте/стопе двигателя.
3. У полевика перепутаны сток и исток на схеме и плате. Исток подключается на землю, сток - к нагрузке.
4. У стабилизатора перепутаны вход и выход. для 78L05 в корпусе TO-92 цоколёвка выход-общий-вход (см datasheet)

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вт мар 18, 2014 11:24:49
nyvkom_sv
AndreW_91 писал(а):1. К МК не подключена земля. Как на схеме, так и на плате.
2. Силовая земля делает слишком большую петлю по всей плате. Силовой полевик лучше всего разместить близко между входом питания и выходом на нагрузку. И сделать так, чтобы земля к расходилась от точки подключения питания звездой. Если просто бросить перемычку от нижней дорожки до 4 вывода МК - можете ловить сбросы или зависания МК при каждом старте/стопе двигателя.
3. У полевика перепутаны сток и исток на схеме и плате. Исток подключается на землю, сток - к нагрузке.
4. У стабилизатора перепутаны вход и выход. для 78L05 в корпусе TO-92 цоколёвка выход-общий-вход (см datasheet)
исправил
Изображение

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вт мар 18, 2014 11:47:58
nyvkom_sv
исправленная печатка(подогнал размери под детальки! и усилил дорожки силового узла)
Изображение
Проверьте пожалуйста првильность!!!

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вт мар 18, 2014 21:26:43
nyvkom_sv
коти!!!ви где?проверьте пожалуйста правильность схеми и печатки!!!а то вся робота застила!!!!!!!!!!жду подтверждения-и начинаю делать!

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вт мар 18, 2014 21:31:46
Martin76
При такой нагрузке на входе питания просто необходим электролит 100-470мкф 16В, да и на выходе стабилизатора 10-47мкф 10-16В не помешает. Они вредными почти никогда не бывают :tea: А так вроде правильно все.

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вт мар 18, 2014 21:39:21
nyvkom_sv
Martin76 писал(а):При такой нагрузке на входе питания просто необходим электролит 100-470мкф 16В, да и на выходе стабилизатора 10-47мкф 10-16В не помешает. Они вредными почти никогда не бывают :tea: А так вроде правильно все.
Конденсатор на входе будет стоять в БП!а после тлки добавлю!

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вт мар 18, 2014 21:50:26
nyvkom_sv
добавил конденсатор после 78L05
Изображение

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вт мар 18, 2014 21:59:57
Martin76
nyvkom_sv писал(а):жду подтверждения-и начинаю делать!
Можешь делать, как Друг Кота, разрешаю 8)

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Вт мар 18, 2014 22:06:15
nyvkom_sv
Martin76 писал(а):
nyvkom_sv писал(а):жду подтверждения-и начинаю делать!
Можешь делать, как Друг Кота, разрешаю 8)
так все в норме???запускаю процес изготовления!!завтра отпишусь что получилось!!!!Всем Котам спасибо за помощь :kill:

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Чт мар 20, 2014 22:28:51
nyvkom_sv
витравил плату, все впаял!!!десять раз все проверил и пропаял доожки!!!проверил дорожки и транзистор, а оно почему то никаких признаков жизни не подает!!!проверте ви, может кто что то найдет или может в прошивке дело?
Изображение
Изображение

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Чт мар 20, 2014 23:29:48
Martin76
Спаяно правильно, если 5В в порядке и не работает, то проблема в прошивке. Попробовать можно перепрошить или верифицировать МК.

Re: Таймер на ATtiny13 (как подключить нагрузку?)

Добавлено: Чт мар 20, 2014 23:34:39
nyvkom_sv
питание МК в норме!!может проблема в тексте прошивки?или верифицировать МК.-ето как