单片机启蒙:Arduino大师之路

发表时间: 2021-01-22 08:00

上学的时候学习的是工业自动化,有的叫机电一体化,进校门后问老师,到底学的是什么?班主任老师举了一个栗子,让我豁然开朗,他说,学习这本专业,类似你就是过去的车夫,马病了你得会医治马,车坏了,你得会修理车,马是动力部分,车是机械部分。现在的动力与机械需要电力电子控制,那么这就是你学这个专业的重要性。

上学时我还是电力拖动的课代表,自然在这块学的很好,计算机的学习只是我的业余爱好,悲催的是以前的爱好是计算机,当计算机专业成了我的职业时,没有的爱好。参加工作20多年,一直在想如果支持身过爱好计算机的孩子,引导他们,从“上帝”的视角提供学习的建议,哪些是重要的,哪些是未来发展有前景的学科,达到这个高峰,需要哪些知识做铺垫?否则用到时候肯定需要恶补,从而影响项目的进程,高瞻远瞩地为孩子们提一些建议。

今年落笔写下此文,希望爱好的孩子能从Arduino学习,到了高中学习51、STM32或树莓派。进入大学就可以直接开发项目。跟着导师研究课题了。大学毕业进可攻,退可守,想继续深入攻读硕士、博士,也可以直接开公司做老板。

为了把想法推广到更多的孩子们,今天从Arduino的普及开始,那么Arduino是什么?

开始讲之前跟大家普及一个知识点,Arduino是一个意大利品牌。Arduino是一个开放源码电子原型平台,拥有灵活、易用的硬件(各种开发板)和软件(arduino IDE也就是编程器)。吉安优创电子科技有限公司作为arduino国内为数不多的正版授权公司,坚持正版。打击抵制各类盗版,改版,兼容版的侵权行为,也奉劝广大消费者不要去购买,以免带来不必要的麻烦。Arduino专为设计师,工艺美术人员,业余爱好者,以及对开发互动装置或互动式开发环境感兴趣的人而设的。

在国内Arduino开发的很多,有原版的ARDUINO UNO R3,有DFrobot、好好搭搭,豆米工坊等等很多品牌,值得一提的是,小学生或初中生低年级使用豆米工坊是一个的选择(这里不是打广告),是真心的推荐,它省去了面包板接线的麻烦,每一个端子提供接地G、高电平V及数据,如下图:

豆米工坊Arduino主控板

Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器 对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(based on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。

如何学习arduino

Arduino近几年在国际发展火热,教程也是五花八门。如果您英语顶呱呱,那推荐到arduino官方网站学习www.arduino.cc,英语不好,或者喜欢看中文教程的,就可以在论坛阅读中文教程(传送门:http://www.arduino.cn/thread-1066-1-1.html)

认识Arduino UNO

Arduino UNO是Arduino入门的最佳选择,其最新的版本为UNO R3,这些内容大部分都是基于Arduino UNO R3写成的。Arduino UNO的详细组成信息如下图所示。

Arduino原版结构实物图

1. 电源(Power)

Arduino UNO有三种供电方式:

● 通过USB接口供电,电压为5V;

● 通过DC电源输入接口供电,电压要求7~12V;

● 通过电源接口处5V或者VIN端口供电,5V端口处供电必须为5V,VIN端口处供电为7~12V。

2.指示灯(LED)

Arduino UNO带有4个LED指示灯,作用分别是:

● ON,电源指示灯。当Arduino通电时,ON灯会点亮。

● TX,串口发送指示灯。当使用USB连接到计算机且Arduino向计算机传输数据时,TX灯会点亮。

● RX,串口接收指示灯。当使用USB连接到计算机且Arduino接收计算机传来的数据时,RX灯会点亮。

● L,可编程控制指示灯。该LED通过特殊电路连接到Arduino的13号引脚,当13号引脚为高电平或高阻态时,该LED会点亮;当为低电平时,不会点亮。因此可以通过程序或者外部输入信号来控制该LED的亮灭。

3.复位按键(Reset Button)

按下该按键可以使Arduino重新启动,从头开始运行程序。

4.存储空间(Memory)

Arduino的存储空间即是其主控芯片所集成的存储空间。也可以通过使用外设芯片的方式来扩展Arduino的存储空间。Arduino UNO的存储空间分三种:

● Flash,容量为32KB。其中0.5KB作为BOOT区用于储存引导程序,实现通过串口下载程序的功能;另外的31.5KB作为用户储存的空间。相对于现在动辄几百GB的硬盘,可能觉得32KB太小了,但是在单片机上,32KB已经可以存储很大的程序了。

● SRAM,容量为2KB。SRAM相当于计算机的内存,当CPU进行运算时,需要在其中开辟一定的存储空间。当Arduino断电或复位后,其中的数据都会丢失。

● EEPROM,容量为1KB。EEPROM的全称为电可擦写的可编程只读存储器,是一种用户可更改的只读存储器,其特点是在Arduino断电或复位后,其中的数据不会丢失。

5.输入/输出端口(Input/Output Port)

如图所示,Arduino UNO有14个数字输入/输出端口,6个模拟输入端口。其中一些带有特殊功能,这些端口如下:

● UART通信,为0(RX)和1(TX)引脚,被用于接收和发送串口数据。这两个引脚通过连接到ATmega16U2来与计算机进行串口通信。

● 外部中断,为2和3引脚,可以输入外部中断信号。

● PWM输出,为3、5、6、9、10和11引脚,可用于输出PWM波。

● SPI通信,为10(SS)、11(MOSI)、12(MISO)和13(SCK)引脚,可用于SPI通信。

● TWI通信,为A4(SDA)、A5(SCL)引脚和TWI接口,可用于TWI通信,兼容IIC通信。

● AREF,模拟输入参考电压的输入端口。

● Reset,复位端口。接低电平会使Arduino复位。当复位键被按下时,会使该端口接到低电平,从而使Arduino复位。