ArduUser
07.04.2016, 14:06
Hallo liebe Leute,
ich brauche mal eure Hilfe bei der Programmierung.
Ich habe einen Arduino UNO, den ich mittels C programmieren muss.
Ich weiß dass Servomotoren mit 50Hz arbeiten und mit einem PWM Signal 1 bis 2ms gesteuert werden.
Ich bringe es aber nicht zum laufen. Habe schon alles Probiert. Ich muss den Motor mittels PD5 steuern weil die anderen Pins anderweitig benötigt werden.
Hier mal mein Code. MIttels der Manuals habei ch gehofft durch verschiedene OCR0A werte den PWM beeinflussen zu können. Aber irgendwie mach ich was falsch. der Motor reagiert nicht darauf.
Vielleicht hat jemand von euch einen besseren Code, ein Example oder kann mir einen Hinweis auf meinen Fehler geben.
Vielen Dank, LG
#define F_CPU 16000000
int main( void )
{
DDRD |= (1<<PORTD5); // DataDirection Port D: Pin D5 = Output
TCCR0A|= (1<<COM0A1)| (1<<COM0B1) | (1<<WGM01) | (1<<WGM00); // Non - inverted Mode ; Fast pwm
TCCR0B|= (1<<CS02) | (1<<CS00); Prescaler 1024
while (1)
{
OCR0A=13;
delay(2000);
OCR0A=40;
delay(2000);
OCR0A=20;
delay(2000);
OCR0A=186;
delay(2000);
OCR0A=196;
delay(2000);
OCR0A=206;
delay(2000);
OCR0A=216;
delay(2000);
} // endlessly
return(0);
}
ich brauche mal eure Hilfe bei der Programmierung.
Ich habe einen Arduino UNO, den ich mittels C programmieren muss.
Ich weiß dass Servomotoren mit 50Hz arbeiten und mit einem PWM Signal 1 bis 2ms gesteuert werden.
Ich bringe es aber nicht zum laufen. Habe schon alles Probiert. Ich muss den Motor mittels PD5 steuern weil die anderen Pins anderweitig benötigt werden.
Hier mal mein Code. MIttels der Manuals habei ch gehofft durch verschiedene OCR0A werte den PWM beeinflussen zu können. Aber irgendwie mach ich was falsch. der Motor reagiert nicht darauf.
Vielleicht hat jemand von euch einen besseren Code, ein Example oder kann mir einen Hinweis auf meinen Fehler geben.
Vielen Dank, LG
#define F_CPU 16000000
int main( void )
{
DDRD |= (1<<PORTD5); // DataDirection Port D: Pin D5 = Output
TCCR0A|= (1<<COM0A1)| (1<<COM0B1) | (1<<WGM01) | (1<<WGM00); // Non - inverted Mode ; Fast pwm
TCCR0B|= (1<<CS02) | (1<<CS00); Prescaler 1024
while (1)
{
OCR0A=13;
delay(2000);
OCR0A=40;
delay(2000);
OCR0A=20;
delay(2000);
OCR0A=186;
delay(2000);
OCR0A=196;
delay(2000);
OCR0A=206;
delay(2000);
OCR0A=216;
delay(2000);
} // endlessly
return(0);
}