超声波传感器和以太网屏蔽 Arduino 之间的问题
Issue Between Ultrasonic sensor and ethernet shield Arduino
我有一个将超声波传感器连接到 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 个用于读取回波的引脚)。
还有另一种解决方案:您可以使用 multiplexers/demultiplexers 来驱动多达 8 个具有 5 个引脚(2 个数据引脚和 3 个地址引脚)的传感器。但是,这会增加硬件的复杂性。
我有一个将超声波传感器连接到 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 个用于读取回波的引脚)。
还有另一种解决方案:您可以使用 multiplexers/demultiplexers 来驱动多达 8 个具有 5 个引脚(2 个数据引脚和 3 个地址引脚)的传感器。但是,这会增加硬件的复杂性。