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

接线方式

ArduinoSG90舵机
5V红线
GND棕线/黑线
PIN6黄线
ArduinoNoddeMCU
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快速上手的主要内容,如果未能解决你的问题,请参考以下文章

attiny85软串口乱码

Arduino如何同时使用多个串口

arduino 软串口

arduino怎么清空串口缓存

Arduino串口读取

arduino 串口不工作