ATmega16 + ULN2003A + GRAUPNER SPEED 400 6V

Zdravím, dnes jsem chtěl rozchodit pomocí PWM modulace motor(viz předmět zprávy). Vše jsem zapojil podle návodu zde

linuxsoft.cz/article.php?id_article=1946

Jelikož se motor točí s otáčkami 18000 ot/min, tak jsem tuto hodnotu vydělil 60 a dostal jsem 300Hz. Tato hodnota se mi nepodařila nastavit předděličkou, takže jsem ji nastavil na nejbližší 62,5 Hz a zkoušel jsem měnit střídu. Motor se bohužel netočí jen trochu píska nebo brní. Nevím v čem je problém. Předem děkuji za odpovědi.

kód programu:

#define F_CPU 80000000UL

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



void timerinit()
{
	DDRD |= (1<<PD5);         
	OCR1A = 0x01FF;
	TCCR1A|=(1<<COM1A1)|(1<<WGM11)|(1<<WGM10); 
	TCCR1B|=(1<<CS11)|(1<<CS10);
}

int main(void)
{
	timerinit();
	while(1)
	{
	}
}

graf.bmp (146 KB)

Zdravím, vidím to trochu jinak. Podle typu i nižšího fota se jedná o klasický komutátorový ss motor s permanentním magnetem na statoru. Otáčky takového motoru závisí přímo úměrně na vstupním napětí. Řízení pwm v tomto případě vlastně mění poměr střídy a tím se mění napájecí napětí a i otáčky. Vhodný kmitočet pro takový motor je řádu kHz. Použitý výkonový io bych vyřadil, jako proudově nedostatečný a nahradil třeba výkonovým Mosfetem. Pokud motor stojí a píská je buzen malou úrovní. Dej k motoru na paralelku malou žárovku ca 6V 0.1A a porovnej svit, jestli bude vůbec nějaký. Pokud to je nejasné ptej se dál.

Napájím to +5V z předělaného ATX zdroje z PC. Měl by mít až 30A. Takže to asi bude nejspíš tedy tím ULN2003a :wink: že? Takže to bude tedy chtít jiný typ budiče. :wink: Našel jsem typ N MOSFET, GATE budu spínat do země a na DRAIN přivedu tedy těch 5V a udělám obrácené PWM je to tak? Motor potřebuje maximálně 4A, takže by měl tento tranzistor stačit :wink:.

tme.eu/cz/details/irfi740gpbf/tranzistory-s-kanalem-n-tht/vishay/#

Zapojto podle tohoto:
electronics-lab.com/projects/motor_light/005/555-pwm-motor.gif
mezi Gate tranzistoru a MCU si dej 22R
Tranzistor doporučuju spíš tento: tme.eu/cz/details/ap9987gj-hf-3tb/tranzistory-s-kanalem-n-tht/advanced-power-electronics/#

:arrow_right: administrator: příspěvek byl upraven

:arrow_right: administrator: přiloženy externí soubory

Jasný :wink: díky moc :wink:. Chtěl bych se ještě zeptat jak jsi přišel na tu hodnotu 22R, protože proud pinu ATmega16 může být max. 40mA a 22R se mě zdá být málo.

Zdravím na doplnění ostatních,
výkonový tranzistor by měl být dimenzovaný na zkratový proud motoru při daném napětí, aby to neměl rychle za sebou. Normální výkonové fety potřebují na dobré otevření ca 15 V, jsou i fety, které se používají na otevírací napětí 5V - např. modelářské regulátory. podle katalogu zjistíš co a jak. Vstup fetu - gate má poměrně velkou kapacitu, která se musí nabít a také vybít, to potřebuje nějaký čas, to je doba kdy je na tranzistoru největší výkonová ztráta, proto musí být co nejratší. Zárověň se to nesmí přehnat se strmostí budícího napětí jinak se utaví přívod do gate, proto se připojuje přes odpor obvykle 10 až 100 ohm. Procesor nějakou podobnou malou aplikaci může budit přímo, jinak vždy přes budící obvod. Také je ověřeno, když se prorazí fet, odejde také budící obvod nebo v tomto případě procesor. Držím palce.

Ten ULN2003 i ULN2803 má proud jednoho výstupu jen 500mA a navíc VCE saturační při 350mA může být i přes 1V. Tvůj motor až 4A. Nehřál se Ti ten ULN? Pokud by jsi to s ním chtěl i tak zkusit, tak zapoj všechny vstupy paralelně a totéž výstupy. Ale jinak doporučuji to, co tady napsal Billy Bob Bean. Mosfet má skoro nulový odpor při sepnutí. Zkus nějaký typ s TTL úrovní na gate, např. IRLZ34N.

Docela se hřál no :smiley: :wink:. Každopádně to teď zkusím s tím tranzistorem a uvidím. Doufám jen, že si tím neodpálím pin mikroprocesoru.

Pro Tvůj účel je to zbytečné, ale pokud by jsi přece jen pro sichr, tak si přečti tohle: solarskit.wz.cz/source/robotika/md152/md152.pdf
Můžeš použít jen jeden mosfet do GND a jen jednu větev nebo celé a řídit i směr otáčení.

:arrow_right: administrator: přiloženy externí soubory
md152.pdf (927 KB)