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 
#include 
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 
#include 
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);
  }
}

补充

欢迎关注笔者的NodeMCU快速开发上手实例整理,里面整合了许多常用案例。NoduMCU通过软串口控制Arduino快速上手_第1张图片

你可能感兴趣的:(Arduino,NodeMCU,c语言,gitee,git)