Ich möchte den BlDC-Motor mit dem L6234-Treiber-IC mit Hilfe des Atmega 16-Controllers steuern. Logik zum Ansteuern des Motors finden Sie im Datenblatt zum Motortreiber-IC L6234 auf Seite 9. Hier ist die link for datasheet. Also, laut Datenblatt schreibe ich einen Code um meinen Motor zu fahren. Hier ist mein Code: -Ich kann den BLDC-Motor nicht mit L6234 mit ATmega16 betreiben
#define F_CPU 8000000UL
#include<avr/io.h>
#include<avr/interrupt.h>
#include<util/delay.h>
#define hall1 (PINC & 1<<1) // connect hall sensor1
#define hall2 (PINC & 1<<2) //connect hall sensor2
#define hall3 (PINC & 1<<3) //connect hall sensor3
void main()
{
DDRC=0XF0;
DDRB=0XFF; //output as In1=PB.0 ,In2=PB.1, In3=PB.2, En0=PB.3 ,En1=PB.4, En3=PB.5
while(1)
{
if((hall3==4)&(hall2==0)&(hall1==1)) // step1
{
PORTB=0X19;
}
if((hall3==0)&(hall2==0)&(hall1==1)) // step2
{
PORTB=0X29;
}
if((hall3==0)&(hall2==2)&(hall1==1)) // step3
{
PORTB=0X33;
}
if((hall3==0)&(hall2==2)&(hall1==0)) // step4
{
PORTB=0X1E;
}
if((hall3==4)&(hall2==2)&(hall1==0))// step5
{
PORTB=0X2E;
}
if((hall3==4)&(hall2==0)&(hall1==0))// step6
{
PORTB=0X34;
}
}
}
Aber wenn ich diesen Code ausführen, funktioniert mein Motor nicht. Kann mir jemand sagen, wo der Fehler in meinem Code ist?
Ich versuche, diesen Code aber nicht funktioniert Motor richtig können wir diesen Motortreiber L6234 mit Hilfe von PWM-Antrieb –
Werfen Sie einen Blick auf diese [Probe] (http://www.atmel.com/images/AVR443. zip) von Atmel. Es betreibt den Treiber und nutzt auch PWM-Steuerung. – UncleO