零知开源快速入门17-三个IO控制8个LED灯-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4551|回复: 0

零知开源快速入门17-三个IO控制8个LED灯

[复制链接]
发表于 2018-6-27 13:58 | 显示全部楼层 |阅读模式
转载自:零知开源快速入门17-三个IO控制8个LED灯
http://www.lingzhilab.com/forum. ... d=204&fromuid=2
(出处: 零知实验室)

在之前我们控制LED的时候,都是一个LED就需要一个对应的引脚。但是在我们板子引脚有限的情况下,这样使用就很浪费了,我们这里加上一个74HC595模块来实现只用3个IO引脚来控制8个LED。74HC595实际上就是一个串行输入并行输出的位移缓存器,因此它能使用少量IO来控制多个输出,这在引脚有限的情况下要控制很多LED是非常有用的。

一、工具原料
  • 电脑,windows系统
  • 零知开发板
  • micro-usb线
  • LED灯红色4个,绿色4个
  • 220Ω 电阻8个
  • 74HC595模块一个
  • 面包板一个+若干跳线

二、硬件连接
1、电路原理图

2、电路连接

三、方法步骤
1、打开零知实验室软件开发工具,然后新建项目,输入以下代码:
  • /**
  • *    文件: 74HC595-8led.ino      by 零知实验室(www.lingzhilab.com)
  • *    -- 零知开源,让电子制作变得更简单! --
  • *    时间: 2018/06/27 13:39
  • *    说明: 使用74HC595 模块控制8个led,显示从0-255的二进制编码,
  • **/
  • int data  = 1;//74HC595的14脚 数据输入引脚SI
  • int clock = 3;//74hc595的11脚 时钟线 SCK
  • int latch = 2;//74hc595的12脚 输出存储器锁存线RCK
  • // the setup routine runs once when you press reset:
  • void setup() {
  •     // put your setup code here, to run once:
  •         pinMode(data, OUTPUT);
  •         pinMode(clock, OUTPUT);
  •         pinMode(latch, OUTPUT);
  • }
  • // the loop routine runs over and over again forever:
  • void loop() {
  •     // put your main code here, to run repeatedly:
  •         for(int i = 0; i < 256; i++)//一共8位,可以显示0-255的二进制编码
  •         {
  •                 digitalWrite(latch, LOW);//
  •                 shiftOut(data, clock, MSBFIRST, ~i);//串行数据输出,高位在先
  •                 digitalWrite(latch, HIGH);//锁存
  •                 delay(500);
  •         }
  • }

[color=rgb(51, 102, 153) !important]复制代码

2、按照之前的方式先【编译】,然后【上传】到开发板中。
四、成果展示
上面步骤成功完成后,我们就可以看到预期的结果了,如下:



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 06:54 , Processed in 0.081415 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表