step 1:工具和材料
arduino 101或arduino uno
移位寄存器
面包板
rgb led
3个100ω电阻器
跳线
步骤2:电路
将 arduino电源连接到面包板电源导轨
使用红色跨接线将arduino的3.3v引脚连接到红色面包板电源导轨。
使用黑色跨接线将arduino接地引脚连接到黑色面包板姿势导轨。
将移位寄存器连接到 arduino 。
将移位寄存器放在面包板上顶部凹口朝向顶部,这将按照惯例指示销1的位置,即凹口左侧的位置。这是所有ic中的通用属性,是一件值得记住的好事。
将移位寄存器上的引脚10和16连接到3.3v电源轨。
将移位寄存器上的引脚8和引脚13连接到面包板的接地导轨。
将引脚11,12和14从移位寄存器连接到引脚2,3和4分别为面包板。
最后,将 rgb led 连接到移位寄存器
连接最长的引脚将rgb led连接到公共地。
将引脚15连接到100ω电阻,然后与rgb led的红色led串联,这是最靠近接地引脚但不在中间的led。
将剩余的中间引脚(也是绿色led引脚)连接到移位寄存器的引脚1。
现在,将唯一未连接的引脚(您知道是蓝色led引脚)连接到移位寄存器的引脚2.
步骤3 :代码
我们无法打开并使用rgb led将每个引脚保持为高电平,因为这样可以使所有led保持高电平并在一个周期后产生白色,这看起来并不漂亮,所以相反,我们必须将每个引脚都设置为high然后等待,最后是low,以便循环遍历所有颜色到无穷大。
int datapin = 2;
int clockpin = 3; int latchpin = 4;
//我们还要为我们//发送到移位寄存器的数据声明一个全局变量:
byte data = 0;
void setup(){//将三个spi引脚设置为输出:
pinmode(datapin,output); pinmode(clockpin,output); pinmode(latchpin,output); }
void loop(){
oneafteranother();//全部打开,全部关闭
}
void shiftwrite(int desiredpin,boolean desiredstate)
{//首先我们将改变全局变量“data”,将//所需的位更改为1或0:
bitwrite(data,desiredpin,desiredstate);
//现在我们实际上将数据发送到移位寄存器。//shiftout()函数执行//操纵数据和时钟引脚以将数据//移入移位寄存器的所有艰苦工作:
shiftout(datapin,clockpin,msbfirst,data);
//一旦数据在移位寄存器中,我们仍然需要//使它出现在输出端。我们将切换//latchpin的状态,它将发信号通知移位寄存器“锁存”//数据到输出。 (latch在高 - 到 - 低转换时激活。)
digitalwrite(latchpin,high); digitalwrite(latchpin,low); }
void oneafteranother(){int index; int delaytime = 100;//在led之间暂停的时间(毫秒)//将其缩小以便更快地切换
//打开所有led:
//这对于()循环将步骤索引从0到7//(在变量之后加上“++”表示添加一个)//然后将使用digitalwrite()打开led。
for(index = 0; index 《= 7; index ++){shiftwrite(index,high);延迟(delaytime); }
//关闭所有led:
//这个for()循环将索引从7步骤变为0//(在变量之后加上“ - ”表示减去一个来自它)//然后将使用digitalwrite()将该led关闭。
for(index = 7; index》 = 0; index--){shiftwrite(index,low);延迟(delaytime); }
3D电子沙盘VR数字化的功能特点
美国学生用3D打印制造全功能假肢 成本仅15美元
纵行科技ZETA物联网技术在供应链物流领域有哪些解决方案?
广州TD-LTE路测体D频段表现最优
耗时5个月评测了30款耳机,来看看最新的蓝牙耳机排名
怎样制作带移位寄存器的RGB闪光灯
初学FPGA, 怎么从硬件上理解?
几种二极管的检测方法(激光,变容,双基极二极管)
3300系列四组电子负载机框的性能特性及应用范围
英特尔计划进一步减少直接和间接温室气体排放
红米K40系列开售被秒光
***如何做车规认证?
使用ADS用微带线代替传输线而导致仿真结果发生变化?
使用OpenCV+ONNXRuntime部署YOLOV7目标检测
如何对单片机的定时器进行赋初值
区块链正在改变游戏行业的发展理念
一文彻底搞懂内存屏障与volatile
微型光纤压力传感器助力医疗设备
基于EasyJTAG仿真器上采用LPC2292单片机实现CAN节点的设计
在线教育风云起,未来嗨学网主沉浮