超声波传感器和以太网屏蔽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个引脚用于读取回波)。
还有另一种解决方案:您可以使用多路复用器/多路分解器来驱动多达8个具有5个引脚的传感器(2个数据引脚和3个地址引脚)。然而,这会增加硬件的复杂性。
相关文章:
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 无法理解代码背后的逻辑,这是在两个给定数字之间生成素数的优化问题
- 单词之间的莫尔斯电码空格问题
- 玩家移动和碰撞之间的交互问题
- 在 Objective-C 和 Swift 之间委托问题
- OpenGL在Ortho和特点问题之间切换
- 特征,制造和cmake之间的问题(可能是cmake错误)
- OPENCV MAT问题:直方图和此循环之间的差异
- 计算当前日期和用户输入日期问题之间的天数
- 如何解决删除其他人之间共享的对象的问题
- 类型定义之间的兼容性问题
- C 如何在Typedef模板和类之间修复依赖关系问题
- Visual Studio和Xcode之间的Chaiscript字符串问题
- 使用指针和结构C 计算两个点之间的距离,分割故障问题
- Mac和Linux机器之间的正则兼容性问题
- 合并排序问题,在方法之间传递数组
- 正确处理字节对齐问题 - 通过UDP在16位嵌入式系统和32位桌面之间
- 相同大小的2D和1D阵列之间的内存或执行问题
- 超声波传感器和以太网屏蔽Arduino之间的问题
- 在 Xcode 和 Visual Studio 之间移动时出现问题