“ESP8266 NodeMCU入门:IO口操作”的版本间的差异
来自丢石头百科
第35行: | 第35行: | ||
此时串口将交替显示"HIGH"和"LOW"。 | 此时串口将交替显示"HIGH"和"LOW"。 | ||
+ | * PWM脉冲输出 | ||
+ | 除了输出正常的0和1之外,IO口还可以输出PWM脉冲,我们以D5口为例,输出PWM脉冲波形: | ||
+ | int pwm_pin = D5; | ||
+ | void setup_pwm(){ | ||
+ | analogWriteFreq(500); //指定频率 | ||
+ | analogWriteRange(100); //指定最大占空比 | ||
+ | } | ||
+ | void setup(){ | ||
+ | setup_pwm(); | ||
+ | analogWrite(pwm_pin, 50); | ||
+ | } | ||
+ | void loop(){ | ||
+ | } | ||
+ | |||
+ | 此时D5口将输出500HZ的50%占空的PWM脉冲波形。 |
2020年8月14日 (五) 18:56的版本
- NodeMcu的引脚定义如下:
- 电平输出
我们选择其中的D2脚,使它输出高电平,输入以下代码:
int output_pin = D2; void setup(){ pinMode(output_pin, OUTPUT); digitalWrite(output_pin, HIGH); } void loop(){ }
同理,如果要输出低电平,则将HIGH改为LOW。
- 电平读取
将D2与D4引脚连接,使用D4引脚读取D2引脚的电平,并不断切换D2引脚的电平,输入以下代码:
int output_pin = D2; int input_pin = D4; void setup(){ pinMode(output_pin, OUTPUT); digitalWrite(output_pin, HIGH); pinMode(input_pin, INPUT); } void loop(){ digitalRead(input_pin); if(input_pin == HIGH){ Serial.println("HIGH"); digitalWrite(output_pin, LOW); }else{ Serial.println("LOW"); digitalWrite(output_pin, HIGH); } delay(2000); }
此时串口将交替显示"HIGH"和"LOW"。
- PWM脉冲输出
除了输出正常的0和1之外,IO口还可以输出PWM脉冲,我们以D5口为例,输出PWM脉冲波形:
int pwm_pin = D5; void setup_pwm(){ analogWriteFreq(500); //指定频率 analogWriteRange(100); //指定最大占空比 } void setup(){ setup_pwm(); analogWrite(pwm_pin, 50); } void loop(){ }
此时D5口将输出500HZ的50%占空的PWM脉冲波形。