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

版权声明:本文为CSDN博主「帅气的黑桃J」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/linZinan_/article/details/121642624

生成海报
点赞 0

帅气的黑桃J

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

祖传框架介绍

序言 本框架是基于15届智能车队长程鑫乐学长的k66代码编写,作为对此框架的介绍。智能车侧重于控制的编写,让大家重复造轮子实在是一种精力的浪费,通过本例子让大家快速掌握祖传框架,节省时间

基于arduino的温度计

使用器件:arduino uno,LM35模块,LCD602模块,10k电位器,面包板,杜邦线 线路连接 LCD1602模块连接 VSS(电源地)GNDVD

电控部近期学习总结

目录 Arduino基础入门 基于arduino板控制小车 让小车动起来 学习PWM频率和占空比 初步调速 利用麦克纳姆轮原理控制全向移动 加入遥控小车功能 稳定小车速度 Arduino基础入门 最开始那几天,由于没有找到好用的教

基于arudino和HC08的舵机控制

一 . 器件 arduino uno hc-08蓝牙模块 sg08舵机 公公,公母杜邦线 扎线,胶带 二 . 器件详解 hc-08蓝牙模块 VCC 接电源的正极(最好接3.3V,我感觉5v要烧掉)