【发布时间】:2021-12-26 05:28:31
【问题描述】:
我需要将订单从 Arduino 发送到 ESP32。
我有一个操纵杆按钮要测试。
Arduino nano 是发送者 Esp32 是接收器
Esp32 从 Arduino 接收操纵杆按钮信息(每次我按下按钮)。
我需要Esp32根据数据来Serial.write,例如:
如果我按下 Arduino 中的按钮:将数据发送到 Esp32 并打开蓝牙(或打开 LED)。
这些是我的代码:
//Arduino NANO sender
byte j = 45;
#define boton_joystick A1
void setup() {
Serial.begin(9600);
pinMode(boton_joystick, INPUT_PULLUP);
}
int boton_joystick_state;
void loop() {
//Serial.println("100");
//Serial.write("BOTON EN GRANDE");
//delay(1500);
if(!digitalRead(boton_joystick)) {
boton_joystick_state = 1;
delay(170);
} else {
boton_joystick_state = 0;
}
if (boton_joystick_state) {
Serial.println(j);
Serial.print(" ");
Serial.write(j);
Serial.println();
}
//ESP-32 receiver
#define RXD2 16
#define TXD2 17
byte j = 45;
int comdata;
void setup() {
Serial.begin(115200);
Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
}
void loop() {
//Serial.print("LEYENDO ARDUINO");
Serial.println(Serial2.readString());
if (Serial2.available() >0) {
char comdata = char(Serial2.read());
if (comdata == 'j') {
Serial.println("joystick activado");
}
}
}
【问题讨论】:
-
我使用这个
#include <SoftwareSerial.h>库来完成两个arduino之间的通信,如果你可以将它安装在esp上,我认为它可能会工作。检查我的代码github.com/programandoconro/Programming-Locker/tree/master/IoT/… -
在
Serial2.readString()之后,下一个Serial2.available()所剩无几
标签: arduino esp32 serial-communication