我正在尝试使用wemos D1 mini进行控制继电器。
我尝试使用wemos D1 mini来控制继电器,我将D1引脚连接到IN引脚,将GND连接到GND,将5V引脚连接到VCC引脚like this,但不起作用。 这是我的代码:
int relaypin = D1;
void setup() {
Serial.begin(9600);
pinMode(relaypin, OUTPUT); // Make LED pin D7 an output pin
pinMode(relaypin, LOW);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(relaypin, LOW); // LED off
digitalWrite(LED_BUILTIN, LOW);
Serial.println("LED On");
delay(3000); // Wait 3 seconds
digitalWrite(relaypin, HIGH); // LED on
digitalWrite(LED_BUILTIN, HIGH);
Serial.println("LED Off");
delay(1000); // Wait 1 second
}
答案 0 :(得分:1)
问题出在您的setup()
函数上。在将中继引脚声明为OUTPUT
(即0x01)之后,您立即将其声明为LOW
(即0x00),它等于INPUT
。
我想您应该写:digitalWrite(relaypin, LOW)
。
(您可以在./hardware/arduino/avr/cores/arduino/Arduino.h
中看到定义)
答案 1 :(得分:0)
以下可能是原因:
如何解决这些问题..
此外,在您的代码中:
在setup()
中,您定义了pinMode(relaypin,LOW)
,我想应该是digitalWrite(relaypin,LOW)
答案 2 :(得分:0)
使用pinMode(relaypin, OUTPUT_OPEN_DRAIN);
代替pinMode(relaypin, OUTPUT);
您就像冠军一样赢了!