roboforum.ru

Технический форум по робототехнике.

контроль скорости ДПТ

контроль скорости ДПТ

hadok » 05 дек 2009, 16:26

как на мк mega16 1 Mhz контролировать скорость вращения выходного вала ДПТ или уже редуртора. На выходном валу фотоимпульсный датчик от шариковой мышки (порядка 20-ти импульсов на оборот). ПРи скорости например 30 об/с получается 600 импульсов в секунду. Сможет ли контроллер или скорее успеет ли контроллер посчитать эти импульсы и, сравнив с заданным значением, скорректировать ШИМ?
Перечитал, сам не понял что спрашиваю, в общем, подскажите кто алгоритм подсчёта импульсов за единицу времени
Последний раз редактировалось hadok 05 дек 2009, 16:34, всего редактировалось 1 раз.

Re: контроль скорости ДПТ

MiBBiM » 05 дек 2009, 16:33

если успеете за ~800 инструкций посчитать, то да.

Re: контроль скорости ДПТ

avr123.nm.ru » 05 дек 2009, 17:07

hadok писал(а): подскажите кто алгоритм подсчёта импульсов за единицу времени


Импульсы подавать на ножку прерывания, прерывания включать вот так - http://avr123.nm.ru/03.htm - Прерывания в микроконтроллерах AVR ATmega ATtiny
и таймером измерять время между прерываниями, далее вычисления.

Re: контроль скорости ДПТ

contr » 05 дек 2009, 17:09

Колесо можно заменить на флажок, тогда будет 30имп*сек или выломать лишние перемычки. Хотя со счетом МК легко справится и без этих заморочек.
Настраиваем таймер, чтобы максимальное число импульсов датчика за это время не превышало размера регистра считающего импульсы - speed_reg.
1. запускаем инкремент speed_reg по таймеру
2. останавливаемся по таймеру
3. сравниваем значение speed_reg с заданным
4. изменяем ток ДПТ
Т.е. таймер задает промежуток времени в течении которого считаем импульсы

Re: контроль скорости ДПТ

hadok » 20 дек 2009, 19:35

speed_reg - это какой-то специальный регистр или просто переменная, в которую накапливаем импульсы?

Re: контроль скорости ДПТ

contr » 20 дек 2009, 19:41

переменная, а компилятор выделит для нее один из свободных регистров МК.

Re: контроль скорости ДПТ

hadok » 10 янв 2010, 00:23

что-то я повис на, как казалось простой, задаче.... контролировать скорость вращения вала.


ДЛя тестов установил на одну из лопостей вентилятора магнитик постоянный, и прикрепил геркон, так чтобы он срабатывал при "пролёте" лопости с магнитом. Геркон замыкает землю черезе резистор и ножку порта А.

Контроллер не правильно считает число импульсов. И к тому же, скорость гуляет плюс/минус 10 оборотов.



Возможно дело в герконе, мол не успевает реагировать. Посоветуйте альтернативную схему датчика вращения вала.

приведу на всякий случай программку свою, может кто найдёт принципиальную ошибку:




Код: Выделить всёРазвернуть

#include <io.h>
#include <delay.h>

#define F_CPU 8000000UL 

#define PD_OUT DDRD = 0xFF



void initialization(void){

PD_OUT;

TCCR0 = 0x03;/*
}
int d,g, i, h ;

void main(){
initialization();

  DDRD = 0xff;   
   DDRC = 0xff;         
   DDRA = 0x00;
   d=0;
   PORTA=0xFF;
   TCNT0=7;
while(1)
{
  if (g==500) {g=0; PORTD=i;   d++; i=0; } 
                     
  if (PINA!=h) {i++;}
  h=PINA;
  g++;

  while (!(TIFR&0x01));
  TIFR=0x01; TCNT0=6;

}

}


при частоте 8 Мгц и делителе 64 таймер переполнятеся 500 раз в секунду, значит когда g=500 мы посчитали кол-во импульсов i за секунду.
Последний раз редактировалось hadok 10 янв 2010, 00:26, всего редактировалось 1 раз.

Re: контроль скорости ДПТ

avr123.nm.ru » 10 янв 2010, 00:25

Геркон ? прикольно. Вы его параметры смотрели ?

Re: контроль скорости ДПТ

hadok » 10 янв 2010, 00:26

параметры геркона......честно....нет :oops:

поискал.....нету максимальной частоты срабатывания......

Re: контроль скорости ДПТ

avr123.nm.ru » 10 янв 2010, 00:36

А вы время посмотрите.

Re: контроль скорости ДПТ

hadok » 10 янв 2010, 00:44

проще говоря, дело в герконе, он не успевает срабатывать?



Если не сложно, avr123.nm.ru, гляньте код пожалуйста.

Re: контроль скорости ДПТ

avr123.nm.ru » 10 янв 2010, 00:58

Извини пожалуйста, я сегодня не смогу, еще полно дел, но для измерения ширины импульсов есть вход таймера 1 - ICP - это аппаратная засечка момента, самая правильная. Попробуй с ней разобраться возможно по рус даташиту на мегу128 ( не суть важно ) на стр. 2 курса.

Твой код только завтра посмотрю внимательно.

Или вот google посоветовал на winavr icp1
http://winavr.scienceprog.com/example-a ... n-lcd.html

там нарисовано и чем мерить обороты :ROFL:

-
Вложения
optical_interrupter.png
optical_interrupter.png (7.19 КиБ) Просмотров: 1979

Re: контроль скорости ДПТ

Myp » 11 янв 2010, 16:35

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

Re: контроль скорости ДПТ

Ito » 11 янв 2010, 22:05

Не уверен, но у геркона вроде тоже возможен дребезг контактов, может из-за этого...

Re: контроль скорости ДПТ

Ворон » 11 янв 2010, 23:00

у геркона дребезг обязан быть...


cron
Rambler\'s Top100 Mail.ru counter