-1

我正在做一个学校项目“自动铁路系统”我的项目假设当火车到达车站时关闭大门,蜂鸣器打开,7 段显示 90 秒倒计时。和一个led闪烁。火车离开车站后,闸门打开,蜂鸣器关闭,指示灯关闭。我尝试使用直流电机打开和关闭门,但它没有给我我需要的准确角度我尝试使用伺服电机。所以我需要它在位置 0 打开门并在位置 90 关闭它。我在互联网上找到的所有代码,他们使用 PWM 和计时器,我在课程中没有使用,所以任何人都可以帮助我用简单的代码来做到这一点,好吗?

我正在使用以 16000000 HZ 运行的 Atmega32

4

1 回答 1

1

它取决于您的模拟伺服(由 PWM 控制)频率规格。了解伺服规范后,您可以使用 cvavr 编译器的内置功能设置 PWM,或者您可以对 PWM 寄存器进行一些研究。
这是 PWM 设置的一些示例

//using OC0 (B.3)
DDRB.3 = 1; //set B.3 as output
TCCR0=0b0111 0001;
TCNT0=0; //set to Phase Correct PWM mode, no prescaler, and inverted output

//to assign a value to your PWM
OCR0 = 127 //50% duty cycle since it was 8 bit
于 2016-11-04T09:19:22.820 回答