题目要求:
目标:设计一个电风扇控制系统,要求能够通过PWM调节风扇的转速。
要求:讨论控制方案,完成单片机PWM驱动。如果大作业没有相关控制算法设计部分,则需要单独完成此部分内容;如果大作业中包含相关部分,则只需提交这部分内容的作为平时作业。
平台:MSP430,MCS51,STM32等皆可。
分析:
pwm就是一定占空比的信号,可以利用delay函数实现高电平和低电平的持续时间。
以下是使用energia开发环境的代码。
const int LED1 = P1_0;
const int LED2 = GREEN_LED;
const int buttonPin = PUSH2;
int buttonState = 0;
int show(int pin,int pwm){
digitalWrite(pin, HIGH);
delayMicroseconds(pwm*10);
digitalWrite(pin, LOW);
delayMicroseconds(1000 - pwm*10);
return 0;
}
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH){
show(LED1,10);
}
else{
show(LED1,90);
}
}