最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

【Arduino编程】第二十三讲:1位数码管模拟值实验

Arduino 少儿编程 4607浏览 0评论
Arduino教程一

友情提示:380元/半年,儿童学编程,就上码丁实验室

产品介绍

七段数码管分为共阴数码管和共阳数码管,其区别在于公共脚的不同,如图所示:

【Arduino编程】第二十三讲:1位数码管模拟值实验

【Arduino编程】第二十三讲:1位数码管模拟值实验

共阴数码管

数码管是一类价格便宜、使用简单,通过对其不同的管脚输入相对的电流,使其发亮,从而显示出数字

我们这里用的是共阴数码管。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

实验器件

■ 1位共阴数码管:1 个

■ 220电阻:8 个

■ 多彩面包板实验跳绳:若干

 

实验连线

【Arduino编程】第二十三讲:1位数码管模拟值实验

程序代码

int LEDCount=8;

//定义段码,这里是共阴段码,如果是共阳只需要在程序中把读到的值按位取反即可

const unsigned char dofly_DuanMa[10]={0x3f,0×06,0x5b,0x4f,0×66,0x6d,0x7d,0×07,0x7f,0x6f};

int LEDPins[] = {

0,1,2, 3, 4, 5, 6, 7, }; // 对应的LED引脚

void setup() {

// 循环设置,把对应的LED都设置成输出

for (int thisLED = 0; thisLED < LEDCount; thisLED++) {

pinMode(LEDPins[thisLED], OUTPUT);

}

}

// 数据处理,把需要处理的byte数据写到对应的引脚端口。

void deal(unsigned char value){

for(int i=0;i<8;i++)

digitalWrite(LEDPins[i],bitRead(value,i));//使用了bitWrite函数,非常简单

}

// 主循环

void loop() {

// 循环显示0-9 数字

for(int i=0;i<10;i++)

{

deal(dofly_DuanMa[i]);//读取对应的段码值

delay(1000); //调节延时,2 个数字之间的停留间隔

}

}

【Arduino编程】第二十三讲:1位数码管模拟值实验

米思齐代码

 

【Arduino编程】第二十三讲:1位数码管模拟值实验
【Arduino编程】第二十三讲:1位数码管模拟值实验
【Arduino编程】第二十三讲:1位数码管模拟值实验【Arduino编程】第二十三讲:1位数码管模拟值实验
【Arduino编程】第二十三讲:1位数码管模拟值实验【Arduino编程】第二十三讲:1位数码管模拟值实验

实验结论:

     上电后,观察到数码管循环显示0~9十个数字。

转自公众号:
29号造物吧

您必须 登录 才能发表评论!