“ESP8266 NodeMCU入门:IO口操作”的版本间的差异
来自丢石头百科
(创建页面,内容为“* NodeMcu的引脚定义如下: 800px * 电平输出 我们选择其中的D2脚,使它输出高电平,输入以下代码:…”) |
小 (Admin移动页面IO口操作至ESP8266 NodeMCU入门:IO口操作,不留重定向) |
||
(未显示同一用户的2个中间版本) | |||
第2行: | 第2行: | ||
[[File:NodeMCU_引脚定义.png|800px]] | [[File:NodeMCU_引脚定义.png|800px]] | ||
* 电平输出 | * 电平输出 | ||
+ | |||
我们选择其中的D2脚,使它输出高电平,输入以下代码: | 我们选择其中的D2脚,使它输出高电平,输入以下代码: | ||
− | int | + | int output_pin = D2; |
void setup(){ | void setup(){ | ||
− | pinMode( | + | pinMode(output_pin, OUTPUT); |
− | digitalWrite( | + | digitalWrite(output_pin, HIGH); |
} | } | ||
void loop(){ | void loop(){ | ||
第12行: | 第13行: | ||
同理,如果要输出低电平,则将HIGH改为LOW。 | 同理,如果要输出低电平,则将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脉冲波形。 |
2020年8月17日 (一) 13:57的最新版本
- 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脉冲波形。