gpt4 book ai didi

c - 连接扩展板时 Arduino 未接收串行数据

转载 作者:行者123 更新时间:2023-11-30 17:36:28 25 4
gpt4 key购买 nike

我有 Nexus duino 3WD,并尝试进行串行通信来移动机器人。我必须移除防护罩才能上传草图代码。这是我的草图:

#include <fuzzy_table.h>
#include <PID_Beta6.h>

#include <PinChangeInt.h>
#include <PinChangeIntConfig.h>

#include <MotorWheel.h>
#include <Omni3WD.h>

#include <EEPROM.h>

#define _NAMIKI_MOTOR //for Namiki 22CL-103501PG80:1


/*******************************************/

int incoming = 0;

int speed = 100;

// Motors

irqISR(irq1,isr1);
MotorWheel wheel1(9,8,6,7,&irq1); // Pin9:PWM, Pin8:DIR, Pin6:PhaseA, Pin7:PhaseB

irqISR(irq2,isr2);
MotorWheel wheel2(10,11,14,15,&irq2); // Pin10:PWM, Pin11:DIR, Pin14:PhaseA, Pin15:PhaseB

irqISR(irq3,isr3);
MotorWheel wheel3(3,2,4,5,&irq3); // Pin3:PWM, Pin2:DIR, Pin4:PhaseA, Pin5:PhaseB

Omni3WD Omni(&wheel1,&wheel2,&wheel3);

/******************************************/

void setup() {
Serial.begin(38400);
Serial.println("setup");

TCCR1B=TCCR1B&0xf8|0x01; // Pin9,Pin10 PWM 31250Hz
TCCR2B=TCCR2B&0xf8|0x01; // Pin3,Pin11 PWM 31250Hz

Omni.PIDEnable(0.26,0.02,0,10);
}

/****************************************/
void loop() {
if(Serial.available() > 0) {
incoming = Serial.read();
Serial.print(incoming);
if(incoming==0) {
Omni.setCarStop();
} else if(incoming==1) {
Omni.setCarAdvance(speed);
} else if(incoming==2) {
Omni.setCarRotateLeft(speed);
} else if(incoming==3) {
Omni.setCarRotateRight(speed);
}
}
Omni.PIDRegulate();
}

我尝试使用 USB 电缆从串行监视器和 PC 应用程序发送数据。当未连接屏蔽时,我可以发送数据并接收来自 arduino 的反馈。但是当连接屏蔽时,arduino 似乎没有接收数据,RX LED 闪烁但 TX LED 不闪烁,得到“设置”文本输出,以便 arduino 可以将数据发送到 PC。另外,我只能使用 38400 波特率,否则输出将是垃圾。

不知道是不是我的代码写错了?可能是设备电源问题?

最佳答案

如果您将跳线从 RS-485 更改为蓝牙,就像这里所说的 http://www.dfrobot.com/wiki/index.php/Arduino_I/O_Expansion_Shield_(SKU:_DFR0014)那么一切都会正常进行。在不移除防护罩的情况下上传到主板可能仍然是一个问题,声纳可能无法工作,但至少您可以通过主板读取序列。

关于c - 连接扩展板时 Arduino 未接收串行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22673242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com