我试图在Arduino板上使用C来控制2个电机的速度。但是,在上传代码时,尽管具有相同的OCR值,但每个电机以不同的速度运行。你能否检查一下原因,如果你这样做,我将非常感激。两个电机是相同的。我使用的主板是Arduino Uno
#include <avr/io.h>
#include <util/delay.h>
void setup() {
DDRB = B11111100;
DDRD = B00000000;
TCCR2A = TCCR1A = B10100011;
TCCR2B = B00000001;
TCCR1B = B00000100;
OCR2A = 0;
OCR1B = 0;
}
void loop() {
OCR1B = 255;
OCR2A = 255;
PORTB |= _BV(PORTB4);
PORTB |= _BV(PORTB5);
}
答案 0 :(得分:4)
定时器2为8位宽,但定时器1为16位宽。连接到OCR1B输出的电机得到255/65535 = 0.3%PWM,而OCR2A给另一个电机提供255/255 = 100%PWM。
你可以