我想用arduino控制一个英特尔4线风扇。我已连接电线并试图在下面粘贴代码,但风扇在缓慢设置下不断改变速度,我不知道为什么。我唯一没有的是arduino和风扇控制引脚之间的电阻。
const int PWMPin = 3;
int pinOUT = 7;
int pinIN = 4;
void setup() {
pinMode(PWMPin, OUTPUT);
TCCR2A = 0x23;
TCCR2B = 0x0A;
OCR2A = 79;
pinMode(pinOUT, OUTPUT);
digitalWrite(pinOUT, HIGH);
pinMode(pinIN, INPUT);
}
void loop() {
switch (digitalRead(pinIN)) {
case HIGH:
OCR2B = 80;
break;
default:
OCR2B = 20;
break;
}
}
答案 0 :(得分:1)
我无法发现代码中的任何错误。如何切换风扇的速度,换句话说:连接到引脚4的电路是什么样的?因为听起来你错过了一个下拉电阻。输入电压不会在“高/ 5V”和“低/ 0V”之间变化,而是在“高5V”和“未定义/ 0-5V噪声”之间变化。
假设您有一个按钮/开关/连接到P4的任何连接P4和Vin的按钮,请尝试以下操作:在P4和GND之间放一个10K电阻。
这不应该是一个答案,但我仍然缺乏评论所需的声誉,所以你去。