查看: 3168|回复: 0

Stduino 零基础入门课程系列(三) 点亮LED(上)

[复制链接]

53

主题

55

帖子

431

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
431
发表于 2020-8-16 17:29:01 | 显示全部楼层 |阅读模式
Hello!各位同学大家好~从这堂课开始之后,我们将不断地接触到各种实验,通过这些实验呢,帮助我们学习Stduino。所以你一定要准备好开发板喔~
这是第一个实验,我们只需要用到开发板和数据线~~在这节课上,我们将通过代码,来控制开发板上的设备。
首先在桌面上找到Stduino IDE”图标,双击打开。
零基础课-03-01.png
打开之后,就出现了Stduino IDE的黑色界面,我们接下来将利用这个界面来写代码。但是,我们需要先在左边的版型选择中,选择我们将要用到的开发板。如果你使用到的开发板是Stduino UNO,只需要在板型这里选择“板型”,在芯片这里选择“Stduino UNO”即可。同时,还要检查下,最下面的下载方式是否选择正确,我们采用“Serial”的下载方式,即串口下载。
零基础课-03-02.png
此时,在右上角的“选择下载端口”这里,应该显示“无可用端口”。
零基础课-03-03.png
在设置完后,我们下一步需要把Stduino开发板和电脑连接。连接好后,如果开发板上亮起了小灯,这就说明开发板通上电了。此时,我们在“选择下载端口”这里,点击“检测端口”,你会发现这里有些小小的变化:我们检测到了COM6端口(由于开发板和电脑接口的缘故,每个人的显示端口可能不同)。Stduino开发板通过端口和电脑连接起来了。周,我们编写的代码,将通过这个端口传输给开发板上的芯片里。
零基础课-03-04.png
那么接下来我们将利用代码来控制Stduino开发板上的LED灯闪烁。第一次我们不用自己动手写代码,只需要来研究研究控制LED闪烁的代码。
从左方界面中找到Documents”,这里给出了非常多的Stduino的代码例子。我们找到“projects”文件夹,点击“projects”文件夹,打开之后点击“led.ino”文件,就打开了代码示例。
零基础课-03-05.png
可以看到,右侧的主界面中被一些代码占满了:
零基础课-03-06.png
这样看起来可能比较复杂,我们做一些适当的精简,去掉这些深绿色的斜体字。
零基础课-03-07.png
这样看起来简单了一些。
我们去掉这些字,并不会对代码效果产生任何影响。因为,这些字是程序员伯伯在写代码的时候,用来提醒自己这写了啥用的。其实他们在编程中叫做注释。
对于Stduino IDE中的编程语言而言,可以利用两个斜杠来告诉IDE这里有注释,斜杠后面的内容不会被传输到开发板上。斜杆只能对一行的注释内容起到作用,如果注释内容写到了下一行,就会被当作程序内容而不是注释了,这样就会出错:
零基础课-03-08.png
也可以利用/**/这样的符号组合,把注释内容写在他们之间,可以进行多行内容的注释:
零基础课-03-09.png
接下来我们简单讲解一下代码的含义,非常容易理解。Stduino的代码一般由这两部分构成:
零基础课-03-10.png
setuploop在编程中被叫做函数,英文是functionfunction也有作用、方法的意思。我们可以在函数的花括号里写各种代码。可以说,函数就是一套需要执行的代码语句的集合。当我调用该函数的时候,那么程序就会开始执行里面的语句。
举个简单的例子,你就会很好的理解函数的作用啦。加入我们要告诉小明泡茶,小明没有学习过泡茶,我们要把泡茶的每一个步骤都告诉他:

小明听好,泡茶需要:
洗水壶;
烧水;
洗杯子;
倒茶叶;
倒热水。


那么这时,小红、小刚也要学泡茶,我们可以不厌其烦的告诉他们,泡茶的每一步:
小红听好,泡茶需要:
洗水壶;
烧水;
洗杯子;
倒茶叶;
倒热水。


小刚听好,泡茶需要:
洗水壶;
烧水;
洗杯子;
倒茶叶;
倒热水。


我们发现,他们每一个学习的都是泡茶的步骤,我们可以定义一个动作的序列,叫做泡茶:

泡茶()
{洗水壶;
烧水;
洗杯子;
倒茶叶;
倒热水。}
那么如果又有三个人来学习泡茶,分别是小军、小丽、小强,我们可以直接这样教他们泡茶的步骤:


小军听好,泡茶需要:
泡茶();
小丽听好,泡茶需要:
泡茶();
小强听好,泡茶需要:
泡茶();


我们不要再把泡茶的步骤一一说清楚,告诉他们“泡茶”,他们自己会获得“泡茶()”这个函数代表的步骤序列。函数就是这样一个步骤序列。
那么setup函数花括号里的内容,就是告诉芯片,下载好代码之后,最开始需要执行哪些命令,负责初始化。而loop函数花括号内的内容,则是告诉芯片,初始化后,需要不断循环执行的命令语句是哪些,芯片将不断执行这些命令。
这样你是不是看下面的代码,就能更清楚了呢?

零基础课-03-11.png
我们接下来看一下,每个函数里面都写了什么内容。首先是setup()函数里面,写了“pinMode(13OUTPUT);”。实际上,就是告诉芯片,在最开始的时候,我们要用到第十三号管脚,通过13号管脚来向外输出信号,你把13号管脚准备好,准备输出。

那有的同学问,为什么是13号管脚呢?因为13号管脚上接了一个LED灯,所以我们用到13号管脚。
接下来看loop()这个循环执行的函数里写了什么?

digitalWrite(13,HIGH);就是说13号管脚输出高电压(平),那么这个时候13号管脚上的LED灯接上了电压,因此就会被点亮。
delay(1000);delay是一个延时函数,能够保持当前的动作,后面跟的1000也就是说,保持13号管脚高电压状态1000毫秒(即1秒)。
那么后面两个语句相信你能够类比推理出来。

DigitalWrite(13,LOW);就是说13号管脚输出低电压,其实就是断开了LED的电压,那么LED就会熄灭。同时delay(1000);保持LED熄灭状态1秒。
我们来看看,loop函数里面讲了什么意思?LED灯通电1秒,接着断电1秒,接着通电1秒,断点1秒……这样反复循环,我们就看到了LED灯闪烁的效果。

好,既然理解了程序代码的含义,是时候把代码下载到开发板上了!看看会有什么效果?
下载的过程也非常简单,点击左上角的第二个图标(下载),IDE就会开始将代码下载到开发板的芯片中去了。
零基础课-03-12.png

这一过程值得你屏住呼吸,因为说不定你编写的代码中出现了错误,那么下载就会失败了。但是我们今天暂时不用屏住呼吸,因为代码比较简单,应该不会出错!
好,等待片刻之后,这时就会显示我们的下载成功了!
零基础课-03-13.png
来,赶紧去看看你的板子,有没有什么变化?
图片占位:Stduino UNO Blink实验现象
大家可以看到板子上,有一个灯亮一秒,又熄灭,又亮一秒……没错,这个就是我们控制的13号管脚的LED,我们刚才烧录到芯片里的代码发生了作用!
欸,LED亮一秒,灭一秒,如果想让LED闪烁加快,该怎么办呢?我们是不是只需要调整延迟的时间即可?话不多说,让我们调整调整代码,把1000改成更短的时间,比如300吧。
零基础课-03-14.png
我们呢再次把代码下载到开发板中,看看LED灯是不是和我们的猜想一样呢?
(图片占位:改成300之后的LED闪烁实验)
你看,是不是和我们想的一样,现在LED的闪烁明显变快了?如果你还想快一点,还可以调得更短。当然,如果太短的话,你会发现LED灯不再闪烁了。这是为什么呢,难道是我们的代码写错了嘛?其实是LED灯闪烁太快,以至于人眼跟不上熄灭的速度,没法分辨。你可以自己测试下?延时时间多短时,你看不到闪烁了?

同学们,上完这节课,你已经可以通过代码控制开发板了!恭喜你已经学会写Stduino代码控制开发板啦。这是一个不小的成果喔。

可能有人会觉得这个超级简单,Stduino这么简单嘛?同学,我必须认真地告诉你,Stduino就是这么简单,后面的学习内容不过是在这个基础上再强化而已,真的非常简单。
如果你觉得你还想发现更多有趣的内容,不如继续跟着老师学习吧~~

回复

使用道具 举报

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

本版积分规则

热门推荐

Stduino 零基础入门课程系列(五) 实验三:按键输入
Stduino 零基础入门课程系
Hello!各位同学大家好~上节课我们利用管脚输出高低电平信号,控制LED的亮灭,那么我
Stduino小白练习第六弹--按键控制串口通信
Stduino小白练习第六弹--
2020/01/08 星期三 作者:Astilbe 问题:我们如何通过按下按键来传输固定的信息给PC呢
37种传感器(二十九)MPU6050陀螺仪模块+Stduino Nano&UNO
37种传感器(二十九)MPU6
StduinoUno /纳米37种传感器(二十九)六轴 MPU陀螺仪模块关键词: 51 ; stm32 ; ar
stm32 最小系统 小蓝板 LED闪烁灯(三),无需刷Bootloader
stm32 最小系统 小蓝板 LE
关键词:stm32 小蓝板 STM32F103C8T6 Stduino IDE Stduino Nano LED闪烁灯 通过Stduin
Stduino IDE软件下载专区
Stduino IDE软件下载专区
Stduino IDE软件下载专区 Windows版:7月29号发布1.01, 现可
今天在文涛老大的帮助下我的stm32zet6终于把simlpefoc库跑起...
今天在文涛老大的帮助下我
[md]首先本身是刚刚从MDK转到arduino过来的新人,只因为要完开源的simplefoc,期间由
连接ADS1292模拟前端芯片,使用SPI库,导致串口不输出数据
连接ADS1292模拟前端芯片
[md]连接ADS1292模拟前端芯片,使用SPI库,导致串口不输出数据 ![QSJSBEZF83I8C907%$
©2001-2018  Stduino官网  Powered by©Discuz!   ( 皖ICP备17011998号 )
快速回复 返回顶部 返回列表