Soul110 发表于 2016-1-27 14:44:36

OCROBOT入门教程029--IIC四位数码管显示数字

本帖最后由 Soul110 于 2016-1-27 14:46 编辑

IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线。

IIC串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。

IIC总线是各种总线中使用信号线最少,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。使用I2C总线连接各种模块十分方便灵活,我们未来介绍各种模块时会遇到大量的IIC模块。

这次我用是OCROBOT的IIC四位数码管,配合OCROBOT的ALPHA的MEGA328-U,来实现数码管的数字显现。
ALPHA MEGA328-U:


IIC四位数码管:


用四根公对母的杜邦线将数码管与ALPHA MEGA328-U模块连接起来,VCC对5V,GND对GND,C对SCL,D对SDA。
接着,用数据线把ALPHA MEGA328-U模块连接上电脑,并查看端口号。
然后,打开IDE,添加一个驱动库,一个描绘库,编写arduino代码。
上传成功后,则显示数字,也可作为时间计时器。
代码:
#include <Wire.h>
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"

Adafruit_7segment matrix = Adafruit_7segment();

void setup() {
#ifndef __AVR_ATtiny85__
Serial.begin(9600);
Serial.println("7 Segment Backpack Test");
#endif
matrix.begin(0x70);
}

void loop() {
matrix.print(12.34);
matrix.writeDisplay();
delay(500);
}

效果图:



注意:
如果使用的IDE编译是提示Robot_Control什么什么编译报错,进入libraries文件夹找到Robot_Control与Robot_Motor两个文件夹,删除。就可以正常编译了。

这是因为与Robot_Control的函数名冲突了。。。

PINKWALKMAN 发表于 2016-2-1 08:01:56

这个库真够浓缩,“matrix.print(12.34);”就完事儿!
页: [1]
查看完整版本: OCROBOT入门教程029--IIC四位数码管显示数字