当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]Arduino的原理及应用

摘要:Arduino是目前较为流行的电子互动平台,基于单片机系统开发,具有使用简单、功能多样、价格低廉等优点,广泛应用于电子系统设计和互动产品开发方面。文中详细介绍了Arduino的功能特点、基本结构,并通过LEO控制电路的应用给出了具体的使用方法。
关键词:电子设计;控制电路;Arduino;LED

    Arduino是2005年1月由米兰交互设计学院的两位教师David Cuartielles和Massimo Banzi联合创建,是一块基于开放原始代码的Simple I/O平台,该平台由两部分组成:硬件(包括微处理器、电路板等)和软件(编程接口和语言)。平台的两部分都是开源的,如果需要,可以下载Arduino的图表、购买需要的所有独立部件、切割电路板并制作一个电路板。Arduino具有类似java、C语言的开发环境。可以快速使用Ardu ino语言与Flash或Processing等软件完成互动作品。Arduino能够使用开发完成的电子元件,如Switch、Sensors或其它控制器、LED、步进电机或其它输入/输出装置,同时,Arduino也可以成为独立与软件沟通的平台,如flash、Processing、Max/MSP或其它互动软件。

1 功能特点
    Arduino在开发之初,就明确了其应用环境,设计了开源开放的平台,便于对其进行二次开发。Arduino的主要功能特点如下:
    1)开放源代码的电路图设计。程序开发接口免费下载,也可依需求自己修改。
    2)使用低价格的微处理控制器(ATmega8或ATmega128)。可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。
    3)支持ISP线上烧入器,将Bootloader固件烧入芯片。Arduino控制器内带Bootloader程序,是系统上电后运行的第一段代码,就好比PC机BIOS中的程序,启动就进行自检,配置端口等等,当然,单片机是靠烧写熔丝位来设定上电从boot区启动的,使用这个程序就可以直接把从串口发来的程序存放到flash区中。所以,使用Arduino编译环境下载程序时,就先让单片机复位,启动Boodoader程序引导串口发过来的程序顺利写入flash区中,flash可以重复烧写,因此想更新软件非常方便。有了Bootloader之后,可以通过串口或者USB to RS232线更新固件。
    4)可依据官方提供的PCB和SCH电路图,简化Arduino模组,完成独立运作的微处理控制。
    5)可简单地与传感器,各式各样的电子元件连接,如红外线、超音波、热敏电阻、光敏电阻、伺服马达等。
    6)支持多样的互动程序,如Flash,Max/MSP,VVVV,PureData,C,Processin等。使用低价格的微处理控制器。
    7)应用方面,利用hrduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。Ard uino的功能特点,使其得到了越来越广泛的应用。

2 基本结构
    Arduino系统针对不同的应用环境还开发了不同的版本,文中以“Arduino Duemilanove”版本为例介绍,该版本于2009年开发,基于ATm ega328微控制器板,能自动选择何种供电,直接将它用USB线连上计算机或者用一个电源适配器给它供电,就可以开始使用。Arduino Duemilanove的外部结构如图1所示。


    1)1个9V DC输入,为Arduino板提供外部电源输出,使Arduino控制板具有能够驱动舵机等大功率外部设备的能力;
    2)1个USB口,通过该口连接到计算机,由Arduino的IDE将用户编写好的控制程序上传到控制板中,同时还可以通过该口为电路板供电,驱动小功率的外部设备;
    3)14个数字输入/输出端,其中端口0(RX)和1(TX)分别连接主控芯片的串行引脚,用来接收和发送TTL串行数据。其中端口2、3可以接收外部信号,实现外部中断功能;端口3、5、6、9、10、11作为PWM端口,可用于电机PWM调速[5]或音乐播放;端口10(SS)、11(MOSI)、12(MISO)和13(SCK)在SPI模块库的支持下,可以提供SPI通信模式;端口13内部连接了一个LED指示灯,随着13脚上电平的高低变化,实现开启和关闭;
    4)6个模拟输入/输出端,其中端口4(SDA)和端口5(SCL)端口可以实现I2C通信;
    5)1个5 V DC输出和1个3.3 V DC输出,可为其它电路提高3.3 V和5 V直流电源;
    6)1个复位接口。
    Arduino系统是基于单片机开发的,并且大量应用通用和标准的电子元器件,包括硬件和软件在内的整个设计,代码均采用开源方式发布,因此采购的成本较低,在各种电子制作竞赛、电子艺术品创意设计等越来越多地使用Arduino作为开发平台。

3 应用
    Arduino系统在电子设计等方面应用较多,本文以简单的LEO控制为例,说明Arduino系统的使用。
    LEO控制系统中,采用开关S控制LED的亮灭,设开关S闭合时,LED发光,S断开时,LED熄灭。因此,系统设计时采用数字输入/输出口的两个引脚分别进行LED和S开关的连接,电路如图2所示。

[!--empirenews.page--]
    Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduno语言将AVR单片机(微控制器)相关的一些参数设置模块化,包括EEPROM、以太网、LED矩阵、舵机、步进和TWI/I2C控制程序库,不需要用户直接处理底层系统,可以提高应用程序的开发效率。流程如图3所示。


    Arduino语言是以setup()开头,loop()作为主体的一个程序构架。setup()用来初始化变量、管脚模式、调用库函数等等,该函数只运行一次,功能类似C语言中的“main()”。loop()函数是一个循环函数,函数内的语句周而复始的循环执行。设通过D10引脚控制LED,D2引脚连接控制开关S,主要代码如下:
   
   
    Setup函数中,pinMode函数是数字I/O口输入输出定义函数,可以定Arduino上0~13口的输入输出状态,INPUT和OUTPUT分别表示输出和输出模式。loop函数中,digitalRead为数字I/O口读取电平值函数,digitalWrite为数字I/O口输出电平定义函数。本例中在setup函数中,将端口2定义为数字信号输入端口,将端口10定义为数字信号输出端口;在函数loop中,首先读入端口2的电平信号,然后依据该端口电平值的高低,设置输出端口10的电平值。
    将编写好的控制代码通过Arduino的IDE上传到控制板之后,关闭或者打开开关S,便会观察到LED的亮灭情况。

4 结论
    Arduino系统是建立在C/C++基础上的,也就是基础的C语言,Arduino系统只是将AVR单片机(微控制器)相关的一些寄存器参数设置等都函数化了,即使不太了解AVR单片机的朋友也能轻松上手,设计出各种实用的电路开发系统。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭