在学习如何使用Arduino时,我一直在弄乱Seeed Ethernet,SD和TFT盾牌。但是,我发现我不能一起使用这些屏蔽,因为它们都使用引脚10作为SS引脚。
有没有办法以编程方式更改任何Arduino屏蔽的SS引脚?
我知道SD库有SD.begin(),但即使我将引脚设置为未使用的引脚,屏蔽也不能同时工作。我知道有一个带有Arduino软件包的SPI库,但SPI.begin(slaveSelectPin)
只在Arduino Due上,我有一个Arduino Uno。
我找到了Go-Between Shield,但是查看用户指南,我仍然需要更改我的代码以使用Arduino上的其他引脚(除非我读错了),所以为什么不完全跳过它,对我已经拥有的盾牌进行更改。
电动工程会更好吗?
答案 0 :(得分:2)
根据实际屏蔽及其修订版,可能确实可以在此处将引脚映射到Arduino上的不同引脚。
在重新映射之后,您将不得不对期望SS在引脚10上的库进行类似的调整。通常它是构造函数的参数,因此非常容易。
烙铁和镊子!
答案 1 :(得分:2)
有没有办法以编程方式更改任何Arduino的SS引脚 屏蔽?
没有。引脚在屏蔽上硬连线。您可以在arduino上使用不同的引脚作为SS引脚,但它们将连接到电路板上的“相同”引脚。为此,您将无法堆叠屏蔽,并且必须在软件中编写SPI代码。
答案 2 :(得分:2)
看起来TFT屏蔽上的接口不是SPI。这有点令人困惑,因为驱动芯片支持SPI,但这不是屏蔽配置使用的模式。
请参阅ST7781R driver chip datasheet中的第6.2节。
您可能能够破解TFT屏蔽,以便它使用SPI,但这本身就是一个项目。
尝试使用以太网和SD屏蔽,你可以让它们一起工作,它们应该没有任何问题(一旦你解决了SS问题,这只是在顶部屏蔽上剪断引脚并焊接面包板的情况从arduino上的所需引脚接线,然后将另一端插入顶部屏蔽引脚10)。
我不确定是否有SPI版本的TFT屏蔽,您可以返回商店以换取合适的屏蔽。
答案 3 :(得分:1)
没有办法更改软件中的引脚。引脚由每个屏蔽硬件确定。除非您修改硬件,否则无法解决此问题。
但是如果你堆叠这么多盾牌,你应该考虑Arduino是否仍然是合适的平台。还有许多其他小型系统(例如Raspi)具有更多的马力,并提供用于连接设备的USB总线。
恕我直言,Arduino适用于低电平引脚控制,但不适用于驱动外设。我建议设计一个Raspi或类似工作的大部分工作,特别是驱动显示器和SD卡以及Arduino负责低级PIN IO。
答案 4 :(得分:1)
Arduino可以很好地驱动外设,但你必须通过引脚重新映射来发挥创意。有一个屏蔽数据库,列出了每个屏蔽的引脚要求,并且引脚和添加跳线(以及在代码或库中重新映射)将适用于任何干扰问题。我做了一些非常复杂的项目,看不需要RPi。