很久没写博客,因为没有精力,也没什么心情。从今天开始拿出一部分精力写一个系列——Arduino和高中通用技术,尽可能每天更新。Arduino使用C语言来进行编程,它有若干IO既输入输出端口,可以接受数字或模拟信号输入输出,也支持很多通讯协议。当然,不同的版本端口个数等有一定的区别。这一个系列中,假定你有相关的Arduino、C语言基础知识,涉及到上位机的内容时,需要有VB.NET或C#的基础知识,如果没有可以去百度一下。
一、硬件准备
1、Arduino Uno可以去淘几个十几元的,Nano,Mega2560等都可以,没有特殊说明都是使用的Uno
2、各种传感器、电机、控制器、LED灯等,可以根据自己的需要淘
3、杜邦线、面包板,如果你想作一些持久使用的还需要洞洞板、烙铁、焊锡以及一些导线(废弃的网线就可以)
二、软件准备
1、Arduino的IDE,里面有很多范例等,但缺点是没有很好的智能提示
2、VS,我用的是社区版,安装一个Arduino IDE For VS就可以进行Arduino编程
我安装了两个版本的IDE,经常使用Arduino IDE查看一些范例和进行更新,而编写程序都是使用VS。
三、第一个范例——板载LED灯的闪烁
这个范例的好处就是不用其他硬件,在编写程序之前首先来熟悉一下IDE,创建新项目时,选择Arduino程序:
点击“确定”按钮之后,可以看到Arduino程序模板中有两个函数:Setup、Loop。其中Setup函数在Arduino上电之后被执行一次,而Loop函数将被循环执行。如果查看底层的源码,可以发现在必要的初始化之后,执行Setup函数,而后面是一个无限循环Loop函数位于其中,而一些串口事件与Loop函数并列,这也就使得串口函数成为“伪中断”。当然,还有一些硬件中断后面我们会介绍到。
现在,让我们一起让板载LED亮起来:板载LED已经在Arduino内部连接到13号端口,所以无需硬件连接就可以进行试验。
/*
Name: led13.ino
Created: 2019/2/8 12:55:17
Author: Administrator
*/
uint8_t PinLed = 13; //LED引脚
// the setup function runs once when you press reset or power the board
void setup() {
pinMode(PinLed, OUTPUT); //设置引脚为输出
}
// the loop function runs over and over again until power down or reset
void loop() {
digitalWrite(PinLed, HIGH); //在引脚上输出高电平
delay(500); //延时0.5秒,此时引脚保持输出高电平led亮起
digitalWrite(PinLed, LOW); //在引脚上输出低高电平
delay(500); //延时0.5秒,此时引脚保持输出低电平led熄灭
}
将以上代码粘贴到代码编辑器中,并点击Build And Upload按钮(带圆圈的三角形按钮)编译并上传代码到Arduino开发板:
此时可以看到板载LED(标注L13的那一个)每隔0.5秒闪烁一次。需要注意的是,工具栏中选择ArduinoIDE版本、Arduino开发板类型以及正确的端口(驱动程序会随着Arduino IDE一同安装)。
能够直接操作硬件是不是非常有趣?