Arduino :一款便宜好用,方便上手的开发板。
近几年,在全球大火的单片机开发板非Arduino莫属,在硬件领域不知道Arduino说出去也略显OUT。相比与传统单片机,Arduino最大的一个优点就是简单,对于小学生也可以快速上手,笔者从第一次接触Arduino到完成第一个程序的实现,用的时间也只有一个小时,这是在不看教程的情况下,Arduino的简单程度可想而知。
Arduino UNO R3开发板
Arduino IDE
说到Arduino就不得不提它的开发环境了,Arduino IDE是官方为Arduino而开发的编译环境,它可以在windows、Linux、Mac三大平台运行,相比于传统的STC89C51、STM32微控制器的编译环境只能在windows下,我们可选择的平台更加丰富了,学习Arduino的途径自然更多。我们先不提它的编程语言,因为此文用的是啃萝卜图形化编程,不需要懂任何的编程语言。没有用过Arduino IDE的同学可以先预览一下它的界面,它的界面比keil、IAR更加现代化。
啃萝卜 可能是最好用的可视化图形编程软件
值得骄傲的是,和其他优秀的编程软件不同,啃萝卜公司是一家国内的软件公司。所以我们可以对软件的功能一目了然,而不需要去汉化。同时和Arduino IDE一样,啃萝卜可以运行在windows、Linux、Mac三大主流平台,且在Arduino官网上给定的评分为10分。
啃萝卜界面简化图
啃萝卜主界面
用一个按键控制LED灯基于啃萝卜图形化编程
实验现象:默认情况下,LED为关,当按键按下之后,LED亮起;当按键松开之后,LED灭掉。
啃萝卜提供了两种编程方式,一种为文本编程,另一种就是图形化编程,对于文本编程,早已没有新鲜感;下面笔者给大家讲解一下如何用图形化编程实现用按键控制LED灯的开关。要实现这个功能只需要三步。
1、原理图的连接
啃萝卜将图形化编程非常彻底,以至于我们都可以在软件上连接开发板与元件的对应关系,不要小看这一步,软件会把我们在软件上的连线映射到实物,这样我们在下一步就不需要定义变量这一准备。笔者这个实验用到了一块Arduino开发板两个元件,元件包括一个按键,一个LED灯。他们的连接关系是:按键连接开发板IO口为7,LED灯连在了板子上的IO口13。我们需要的元器件在界面的左侧,需要什么直接拖出来,然后直接连线。下图为笔者连接好的原理图。
原理图连接关系
2、图形化编程
连接完成原理图之后,点击右上角的编程按钮,进入如下界面,对于用惯了keil的同学一定会觉得相见恨晚。
图形化编程界面
建议同学们在进行图形化编程的时候点击显示源码,显示源码之后左边是图形,右边是代码,我们每拖动一个图形,右边的代码都会做相应的改变,更有利于我们对程序的理解。如下图所示:在我们没有编程之前,程序里面已经有10几行代码了,很多初学者可能会有疑问,这些代码从哪里来的呢?其实同学们细心观察就可以发现规律,比如程序已开始定义了两个变量:int button_0 = 7,这句代码是根据我们的上一步的连线得来的,笔者在上一步把按键连接到了IO7,程序中自动的把IO7赋值给了button_0。下面一句led_0的代码同样的道理。
初始化界面
接下来,教同学们图形化编程,在界面中间有三项内容。
全局变量、函数
这一项我们不用管,因为上一步原理图连接中已经设置好了。
setup
其实相当于我们平时程序中while(1)之外的程序,也就是各种外设的初始化。
loop
这里面的程序等同于是我们while(1)里面的代码。
先进行初始化,按键接的是输入引脚,因为单片机要检测按键上的电平,笔者把按键引脚设置成了默认高电平,当按键按下的时候,按键接地,按键的电平会被拉低,当单片机检测到低电平,给LED输出高电平。也就是按键初始化为高电平,LED灯初始化为低电平。然后拖动对应的图形块,需要什么逻辑就从左边拖动,用到的图形块如下图,右边为图形对应生成的程序。
程序
生成的程序
/*
* Author: 爱上半导体
* Create: 2017/12/03
* Modify: 2017/12/03
*/
int button_0 = 7; //设置变量
int led_0 = 13; //设置变量
void setup() {
pinMode(button_0, INPUT); //设置按键为输入模式
pinMode(led_0, OUTPUT); //设置LED为输出模式
digitalWrite(led_0, LOW); //设置LED为低电平输出
digitalWrite(button_0, HIGH); //设置按键为高电平输入
}。
void loop() {
if (digitalRead(button_0) == LOW) { digitalWrite(led_0, HIGH); } else { digitalWrite(led_0, LOW); }
} //如果按键没有被按下,LED灯不亮
3、实物的连接
对应软件上原理图的连接,把实物按照对应的关系连接在一块,需要说明一点的是元件的另外一个引脚一定要连GND。
原理图的连接
最后一步烧录程序,在啃萝卜上烧录程序也非常省心,完成程序之后点击如下按钮的“上传”就可以完成程序的下载。
上传按钮
下载成功之后,按下按键,效果如图所示,由于没有接限流电阻,导致LED过亮,建议同学们做实验的时候接上一个1k的限流电阻。
效果图
编后语:对于第一次接触单片机的同学建议从Arduino学起,Arduino是完全开源的,Arduino社区有大量的源码、学习资料、适配的软件供我们学习使用,更有很多像啃萝卜一样的精致软件专门适配,还有一个最重要的因素,就是它很廉价。