找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9743|回复: 0
打印 上一主题 下一主题
收起左侧

STM32的流水灯程序

[复制链接]
跳转到指定楼层
楼主
ID:99082 发表于 2015-12-10 01:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
记得小时候有玩具电动车,车玩坏了就拆了,最高兴的就是能拆出电机和灯泡,玩这两样东西的乐趣不比玩玩具车少。

用干电池就能让小灯泡亮起来,也能让电机转起来,虽然现象很简单,但却融入了自己的控制和想象,这是很有意思的。想让一个灯泡亮起来,给一个适当的电压就可以,这是中学物理都学过的。其实小灯泡的工作电压是2-3V,干电池的电压是1.5V,所以小时候小孩子玩的时候用一节电池或两节电池小灯泡都会亮。而且暗和亮的程度不一样,电机转动的状态也不一样,这就对电学有个直观的认识。

现在灯泡越来越少了,越来越多被LED取代。LED就是Lighting Emitting Diode的缩写,即发光二极管。LED只能往一个方向导通,即给LED加上正向偏压,当电流流过时,电子与空穴在其内复合而发出单色光,这叫电致发光效应,而光线的波长、颜色跟其所采用的半导体材料种类与掺入的元素杂质有关。

LED的工作电压大概2V左右,不同的材料不同型号的LED电压稍稍会有些偏差,但对实际使用的影响不大。


--为什么要跑流水灯


流水灯实验是学单片机的经典例程,可以说是单片机学习中的"HELLO WORLD"。

那么怎么通过STM32把一个LED点亮呢?想让LED发光当然需要给LED加一个正向偏压。STM32的引脚输出电压高电压为3.3V,低电压为0V。想要用STM32控制LED的亮和灭,这里有两种方式可以把给一个LED加上正向偏压:第一种方法就是把LED的负极和电路的地(0V)相连,当STM32输出低电平时,LED两端没有电势差。当STM32输出高电平时,LED正极就加上了3.3V的电压,这样LED就亮了,但是这时候LED可能亮的有点不正常,因为LED的工作电压约为2V,所以这时候LED可能是特别亮,但可能亮了一段时间就会烧坏。为了LED能长期正常工作,所以要让LED在2V的工作电压,所以加一个电阻起保护作用,电阻选470欧或510欧。

第二种方法就是将LED的正极连着3.3V的电源上,负极连在STM32的引脚上,当STM32的引脚输出低电平时LED就会亮。

为什么要通过流水灯的形式来完成实验呢?因为能自由的控制一个灯泡的亮和灭、能自由的控制一个灯亮的时长和灭的时长,这样也就证明已经掌握了一个STM32的IO口高低电平的输出,这就已经可以做很多事情了。


--怎么控制小灯的亮灭


当然是写程序控制了,先从思路上理顺一遍就是:


以下边电路图中3个LED为例:


先让第一个灯亮(因为图中LED采用的是上一段介绍的第二种电路,所以应该让和LED1相连的STM32引脚输出0V低电平),亮一会(这个通过延时函数来实现);把第一个熄灭(同理,让引脚输出高电平即可熄灭),接着(在程序上编程语句的执行肯定有先后之分,因为没有延时函数,STM32工作频率很高,所以就是“同时”)把第二个灯点亮,亮一会;把第二个灯熄灭,接着点亮第三个灯,亮一会;把三个灯熄灭,接着把第一个灯点亮...(这个省略号就是周而复始循环的意思,在程序实现的时候,我们用一个循环函数就可以实现。)


这周就是在思路上、电路上介绍例程,下周主要介绍程序的编写。


以下是本系列教程文章列表:欢迎大家踊跃讨论,有问题可在51黑论坛回帖提出.


STM32教程(1)-大学里没碰见像STM32一样吸引我的姑娘:http://www.51hei.com/bbs/dpj-41167-1.html
STM32教程(2)-各种应用和外设简单介绍:http://www.51hei.com/bbs/dpj-41168-1.html
STM32教程(3)-芯片引脚性质介绍:http://www.51hei.com/bbs/dpj-41169-1.html
STM32教程(4)-最小系统的设计:http://www.51hei.com/bbs/dpj-41170-1.html
STM32教程(5)-库:http://www.51hei.com/bbs/dpj-41171-1.html
STM32教程(6)-STM32的流水灯程序:http://www.51hei.com/bbs/dpj-41162-1.html

STM32编程基础(1)-Keil编程软件的安装:http://www.51hei.com/bbs/dpj-41163-1.html
STM32编程基础(2)-Keil库的修改:http://www.51hei.com/bbs/dpj-41164-1.html
STM32编程基础(3)-Keil建立工程模版:http://www.51hei.com/bbs/dpj-41165-1.html
STM32编程基础(4)-Keil工程设置http://www.51hei.com/bbs/dpj-41166-1.html
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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