Learn Arduino the hard way 1——点亮一个LED

      Arduino刚刚出现的时候,仅仅是把她当做一个小孩的玩具,并没有太多在意,第一次见到Arduino大概是在10年前后,做的是一个爱心流水灯板子,其实看着还是挺好玩的,但是对于正经学过51单片机的人来说,这个真的不算什么。再次看到这个东西的时候大概是16年的7-8月份,是因为有教学任务,要交给大专的孩子们这些东西,原来是51的课程,但是因为51对基础要求过高,现在职业教育中大家更多的选择的是短平快。所以Arduino就变成了一个很好选项。而且还可以Arduino block的图形化编程来共同,似乎让编程变得更简单了。(Arduino Block中的编程非常不习惯,也可能是并没有深入的学习过)。

      学Python的时候(现在还是一知半解),主要是参看了一本书名叫《Learn Python the Hard Way》(求大神不嘲笑),这本书的名字让我觉得其实再简单的东西都应该按照脚踏实地一步一个脚印的方式去学习,对于Arduino我觉得也是。所以这个系列也被成为Learn Arduino the Hard Way。

     下面我会开始按照顺序更新Arduino的东西,当然是从最近简单的东西开始更新。中间用到的器件,会顺路再会讲一点,但是可能不会太详细。最后再说,IDE下载、安装、配置就不过的讲解了,因为没意义,还得再装一遍程序,太麻烦了。但是会给出传送门。

好了,就酱紫。

 

    说到Arduino,这个东西不是什么惊天地泣鬼神的全新技术,东西其实还是老一套的东西。Arduino分了很多版本,中间包括UNO,Lilypad,Mega等等等等等。。。那猪脚其实还是AVR的单片机。还是单片机?那这个东西牛逼在什么地方呢?其实关键还在于Arduino开发了底层库,也就是说,你要用液晶,那就直接调用液晶的库,需要超声波就调用超声波库,非常简单方便。这就是他牛逼的地方。这样的库,存在得一个问题,也是被专业人员诟病的就是效率。但是对于大众来说,这样已经很简单了,而且这样完全足够,且要求不像51那般高。所以这是好处。

 

    点亮一个led,对于单片机来说简直就像学习编程语言时候的hello world,在开始之前还是要基本交代一下什么是led。这里说的led其实是指发光二极管,这个东西具体是怎么回事,请大家去Wikipedia,或者百度百科一下。这里面要注意的一点是,发光二极管是发光器件,发光的亮度取决于流过他的电流,理论上讲,电流越大亮度越高,但是每一个器件都极限,超过极限之后,会损坏器件。对于发光二极管来说,大电流会有更高的亮度,带来的问题是,过大的电流会导致LED损坏。一般情况下,普通LED的最大电流不要超过20mA,LED正向导通的时候,自身的电阻很小,所以必须要在外部电路提供一个足够大的电阻来满足。这个电阻就被成为限流电阻。

于是电路如下,Arduino特意分享了这么一个搭建示意图的东西,还是挺有趣的。这个软件名叫Fritzing,开源软件,支持中文,最好去原网站下载,需要的自行百度。

下面就是要来解释一下Arduino单片机这个奇葩的东西了。他把原来的单片机的引脚全部抛弃,重新做了定位DIO0-13,和A0-6,还有电源和地。

下面就是连接的电路原理图。

下面这个是实物的连接图,这些都是在Fritzing中已经做好了的。直接用即可。

下面就该最重要的内容代码了。

 1 void setup()
 2 {
 3 pinMode( 0 , OUTPUT);   //定义输出管脚
 4 }
 5 
 6 void loop()
 7 {
 8 digitalWrite( 0 , !(HIGH ));   //给低电平,LED熄灭
 9 delay( 100 );                     //延迟函数一段时间,这段时间内,LED保持原来的状态
10 digitalWrite( 0 , !(LOW ));   //高电平,LED点亮
11 delay( 100 );                    //延迟函数一段时间,这段时间内,LED保持原来的状态
12 }

然后编译,下载。Arduino的具体应该如何来完成编译和下载在这里就不讲了。回头我会放上来PPT,大家参考就好了。



 

posted on 2016-11-30 10:32  面朝终南山  阅读(394)  评论(0编辑  收藏  举报

导航