超声波传感器和以太网屏蔽Arduino之间的问题

Issue Between Ultrasonic sensor and ethernet shield Arduino

本文关键字:之间 问题 Arduino 屏蔽 以太网 超声波传感器      更新时间:2023-10-16

我有一个项目,将超声波传感器连接到Arduino Uno,Arduino代码从传感器中读取读数,并通过以太网屏蔽将其发送到远程服务器

现在我面临的问题是,我需要使用6个超声波传感器,但当Arduino从4个以上的传感器中读取读数时,Arduino无法正常工作,但如果我从之前传感器的引脚中读取了其余两个传感器的读数,它工作正常,或者即使我为这两个传感器指定了默认值,它也工作正常,

我面临的问题与以下引脚有关:10、11、12、13以太网屏蔽正在使用它们,但我如何克服这个问题并运行所有六个传感器?

你可以在下面找到部分代码:

#include <Ethernet.h>
#include <SPI.h>
#define ECHOPIN1A1 3        // Pin to receive echo pulse 
#define TRIGPIN1A1 2        // Pin to send trigger pulse
#define ECHOPIN1A2 5        // Pin to receive echo pulse 
#define TRIGPIN1A2 4        // Pin to send trigger pulse
#define ECHOPIN1A3 7        // Pin to receive echo pulse 
#define TRIGPIN1A3 6        // Pin to send trigger pulse
#define ECHOPIN1B1 9        // Pin to receive echo pulse 
#define TRIGPIN1B1 8        // Pin to send trigger pulse
#define ECHOPIN1B2 5        // Pin to receive echo pulse 
#define TRIGPIN1B2 4        // Pin to send trigger pulse
#define ECHOPIN1B3 3        // Pin to receive echo pulse 
#define TRIGPIN1B3 2        // Pin to send trigger pulse

您可以使用带有更多GPIO引脚的板,如Arduino MEGA。或者,你可以将触发引脚连接在一起,只使用一个Arduino引脚来驱动所有引脚。

编辑:确保你阅读了Tansir下面的评论,并进行实验,看看哪些有效,哪些无效。根据可用引脚的数量,每个引脚需要触发3个超声波传感器(2个引脚用于触发+6个引脚用于读取回波)。

还有另一种解决方案:您可以使用多路复用器/多路分解器来驱动多达8个具有5个引脚的传感器(2个数据引脚和3个地址引脚)。然而,这会增加硬件的复杂性。