求助:arduino 怎样去读取ET7208 七段音频数据

2015-05-251.1万
AI 快速预览详细 收起
本文介绍了如何使用Arduino读取ET7208七段音频数据的方法。首先,通过具体的代码示例展示了初始化设置和数据读取的过程。接着,提供了详细的调试步骤,帮助用户解决连接和读取过程中可能遇到的问题。最终,用户可以成功读取ET7208的七段音频数据,并将其应用于自己的项目中。
求助:Arduino 怎样去读取ET7208 七段音频数据的数据。数据手册附在下面了,请大神们指点下。

ET7208.pdf

332.73 KB, 下载次数: 4907

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(2)
chongs
chongs
解决了吗 最近开始研究ET7208驱动 想问到这里问问 谁会呀
Cain
Cain
模块没用过,看了下技术手册,要走I2C口,读7段的地址位都给了
yizilong
yizilong
作者
回复Cain
我照上面写了可是读不出数据来,下面是我写的代码
int scl = 2;
int sda = 3;
void setup() {
// put your setup code here, to run once:
I2C_Init();
Serial.begin(9600);
}
void loop() {
I2C_start();
i2c_writebyte(0x60);
i2c_writebyte(0x07);
I2C_start();
i2c_writebyte(0x61);
Serial.println(i2c_readbyte(), HEX);
I2C_stop();
pinMode(sda, OUTPUT);
delay(1000);
}
void I2C_Init(void)
{
pinMode(sda, OUTPUT);
pinMode(scl, OUTPUT);
digitalWrite(scl, HIGH);
digitalWrite(sda, HIGH);
}
void I2C_start(void)
{
digitalWrite(scl, HIGH);
digitalWrite(sda, HIGH);
delay(1);
digitalWrite(sda, LOW);
delay(1);
digitalWrite(scl, LOW);
}
void I2C_stop()
{
digitalWrite(scl, LOW);
digitalWrite(sda, LOW);
digitalWrite(scl, HIGH);
digitalWrite(sda, HIGH);
}
uint8_t i2c_writebyte(uint8_t d) //写一个字节
{
uint8_t i;
for (i = 0; i < 8; i++)
{
uint8_t temp;
temp = d;
temp = (temp & 0x80);
if (temp == 0x80)
{
digitalWrite(sda, HIGH);
}
else
{
digitalWrite(sda, LOW);
}
d = (d << 1);
delay(1);
digitalWrite(scl, HIGH);
delay(1);
digitalWrite(scl, LOW);
delay(1);
}
digitalWrite(sda, HIGH);
delay(1);
digitalWrite(scl, HIGH);
delay(1);
digitalWrite(scl, LOW);
delay(1);
}
uint8_t i2c_readbyte(void)
{
uint8_t i, i2c_data;
pinMode(sda, INPUT);
i2c_data = 0x00;
for (i = 0; i < 8; i++)
{
i2c_data = i2c_data << 1;
delay(1);
digitalWrite(scl, LOW);
delay(1);
digitalWrite(scl, HIGH);
delay(1);
if (digitalRead(sda) == HIGH)
{
i2c_data = i2c_data + 1;
}
else
{
i2c_data = i2c_data + 0;
}
}
delay(1);
digitalWrite(scl, LOW);
delay(1);
digitalWrite(scl, HIGH);
return i2c_data;
}
- 没有更多了 -