首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更换LCD引脚

更换LCD引脚
EN

Stack Overflow用户
提问于 2014-05-22 09:33:59
回答 2查看 1.2K关注 0票数 2

我有一个Arduino Mega,想把SDA和SCL的引脚从A4&A5改为A14&A15。

这样我就可以从那里控制I2C液晶显示器,我有库,但我看不到引脚设置在哪里;然而,我会想象它们必须设置在某个地方……

我是c++和库的新手,所以我的眼睛可能会略过它

EN

回答 2

Stack Overflow用户

发布于 2014-05-22 11:16:28

standard i2c library使用与某些引脚绑定的专用硬件。要以这种方式发送一个字节,您的程序将一个字节写入某个寄存器(这只需要几个时钟周期),硬件负责将SDA引脚上的位逐个移出,并自动切换SCL引脚。

您可能正在寻找的是software i2c,它在软件中实现了相同的协议,并且应该允许您使用任意引脚。这个库可能比标准的慢得多,并且使用了更多的资源:当你的程序想要发送一个字节时,这个库必须提取单个比特,查找你定义的哪个数据管脚,将位值写入那个管脚,查找你为时钟定义的哪个管脚,切换那个管脚,稍等片刻,再次切换时钟,等等,都在软件中。这会花费很多时间,但也许你并不关心你的应用程序。

票数 2
EN

Stack Overflow用户

发布于 2021-04-06 16:38:24

这个问题很老了,但是我想推荐这个LiquidCrystal Software I2C库,因为我在网上没有找到很多其他的工作资源,而且这个库在软件上实现了I2C协议,所以你可以使用你的Arduino的任何输入/输出引脚。

只需在创建LiquidCrystal_I2C对象时将SDA和SCL引脚指定为第4个和第5个参数,即可实现与标准LiquidCrystal_I2C库相同的功能。

因此,例如,如果您想使用引脚3和4,分别作为SDA和SCL,则您的hello word将为:

代码语言:javascript
复制
// https://github.com/francesco-scar/LiquidCrystal_Software_I2C
// Based on https://github.com/johnrickman/LiquidCrystal_I2C project

#include <LiquidCrystal_Software_I2C.h>     // Include library

LiquidCrystal_I2C lcd(0x3f, 16, 2, 3, 4);   // Set the LCD address to 0x27 for a 16 chars and 2 line display

void setup() {
  lcd.init();                               // LCD initialization
  lcd.backlight();                          // Turn on backlight
  lcd.print("Hello, world!");               // Print Hello, world!
}

void loop() {
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23796459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档