NoduMCU通过软串口控制Arduino快速上手
Posted 帅气的黑桃J
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NoduMCU通过软串口控制Arduino快速上手相关的知识,希望对你有一定的参考价值。
简介
NodeMCU与Arduino通信有多种方法,例如:SPI,IIC,串口。该教程会讲解如何使用NodeMCU通过串口通信来控制Arduino上6号引脚的舵机,该例程中,我们将使用串口对NoduMCU发送信息,最后让Arduino上面的舵机工作。
软串口
除HardwareSerial外,Arduino还提供了SoftwareSerial类库,它可以将你的其他数字引脚通过程序模拟成串口通信引脚。通常我们将Arduino UNO上自带的串口称为硬件串口,而使用SoftwareSerial类库模拟成的串口,称为软件模拟串口(简称软串口)。软串口的函数和硬件串口的基本相同,用法上也基本相同,只要定义出一个软串口就可以当做硬件串口来使用了。
运行环境
Arduino IDE
接线方式
Arduino | SG90舵机 |
---|---|
5V | 红线 |
GND | 棕线/黑线 |
PIN6 | 黄线 |
Arduino | NoddeMCU |
---|---|
PIN3(TX) | D5(RX) |
PIN2(RX) | D6(TX) |
代码部分
提示:记得切换芯片包
Arduino部分
/* 以太网控制舵机
* 目的:该例程为NoduMCU通过软串口控制Arduino舵机中Arduino部分的代码
* 作者:Zeeland
* 最后修改时间:2021年11月28日 21:53:52
* https://gitee.com/zeeland/projects
*/
#include <SoftwareSerial.h>
#include <Servo.h>
SoftwareSerial mySerial(2, 3); //RX=2,TX=3
Servo myServo; //创建Servo对象myServo
void setup()
Serial.begin(9600);
mySerial.begin(9600);
myServo.attach(6);
void loop()
// 判断软串口是否传输数据进来,如有则进行分析
if ( mySerial.available()>0 )
int pos = mySerial.parseInt(); // 解析软串口数据中的整数信息并赋值给变量pos
Serial.print("[info] Set servo position: ");
Serial.println(pos); // 通过串口监视器显示变量pos数值
myServo.write(pos); // 使用pos变量数值设置伺服电机
delay(15);
NodeMCU部分
/* 以太网控制舵机
* 目的:该例程为NoduMCU通过软串口控制Arduino舵机中NodeMCU部分的代码
* 作者:Zeeland
* 最后修改时间:2021年11月28日 21:53:49
* https://gitee.com/zeeland/projects
*/
#include <ESP8266WiFi.h>
#include <SoftwareSerial.h>
SoftwareSerial myserial(14,12);//RX=d5,TX=d6
void setup()
myserial.begin(9600);
Serial.begin(9600);
void loop()
// 判断软串口是否传输数据进来,如有则进行分析
if ( Serial.available()>0 )
int pos = Serial.parseInt(); // 解析软串口数据中的整数信息并赋值给变量pos
Serial.print("[info] Set servo position: ");
Serial.println(pos); // 通过串口监视器显示变量pos数值
myserial.println(pos); // 使用pos变量数值设置伺服电机
delay(15);
以上是关于NoduMCU通过软串口控制Arduino快速上手的主要内容,如果未能解决你的问题,请参考以下文章