找回密码
 立即注册

QQ登录

课前准备 — Arduino 程序基础

来源: 学习教程 奥松xtm 2014-9-15 11:56 显示全部楼层 |阅读模式
   许多 Arduino 开发技术会将 Arduino 板子和硬件整合起来,但是这些需要撰写程序让硬件能够执行相应的任务,所以我们如果想更好的使用 Arduino 控制器,应该先简单了解一 Arduino 语言,学习Arduino硬件也是一样的,要从学习语句及基本函数开始,Arduino 使用起来要比其他微处理器更易懂,与Basic Stamp 有些相似,Arduino 的编程语言更为简单和人性化,Arduino 编程语言基于 C 语言,但实用性要远高于 C 语言,主要由于它将一些常用语句组合函数化,让编程者不需要去了解它的底层,让不了解AVR单片机(微控制器)的人也能轻松上手。例如:延时函数delay(1000) 即为一秒。
1.png

上图就是我们在教程的第一课中要使用的 Arduino 程序,在学语言的语法、语句之前,还要做的一个功课就是要明白程序的架构Arduino 语言的架构也同样简单,大体可分为两个部分
1、setup() — 在 Arduino 中程序运行时首先调用 setup() 函数。用于初始化变量、设置引脚的输出/输入类型、配置串口、引入库文件等等。每次 Arduino 上电或重启之后,setup 函数只运行一次。
例如:pinMode(ledPin,OUTUPT);
2、loop() — 在 setup() 函数中初始化和定义了变量,然后执行 loop() 函数。顾名思义,该函数在程序运行过程中不断的循环,根据一些反馈,相应改变执行情况。通过该函数动态控制 Arduino 主控板。
例如:digitalWrite(13,HIGH);


了解了 Arduino 函数的基本架构,我们还需要学习一下几个基本函数

对数字 IO 接口的操作函数:
1、pinMode(pin,mode) — 无返回值函数,作用是将接口定义为输入或输出接口,用在setup()函数里。
参数:pin:要设置模式的引脚;mode:INPUT 或 OUTPUT
注意:Arduino 的模拟输入接口也可以当作数字接口使用
2、digitalWrite(pin,value)— 无返回值函数,作用是给一个数字引脚写入 HIGH 或者 LOW,使用此函数时应使用函数 pinMode() 将该引脚设置成输出模式。

参数:pin:引脚编号;value:HIGH 或 LOW
3、digitalRead(PIN) — 有返回值函数,作用是读取指定引脚的值

参数:PIN:想读取的引脚号(int);返回值:HIGH 或 LOW

对模拟 IO 接口的操作函数:
1、analogWrite(pin,value) — 无返回值函数,作用是从一个引脚输出模拟值(PWM)。可用于让LED以不同的亮度点亮或驱动电机以不同的速度旋转。analogWrite()输出结束后,该引脚将产生一个稳定的特殊占空比方波,直到下次调用analogWrite()(或在同一引脚调用digitalRead()或digitalWrite())。PWM信号的频率大约是490赫兹。在大多数arduino板(ATmega168或ATmega328),只有引脚3,5,6,9,10和11可以实现该功能。在aduino Mega上,引脚2到13可以实现该功能。在使用analogWrite()前,你不需要调用pinMode()来设置引脚为输出引脚。
参数:pin:用于输入数值的引脚;value:占空比:0(完全关闭)到 255(完全打开)之间。
2、analogRead(PIN)
有返回值函数,作用是从指定的模拟引脚读取数据值。 Arduino板包含一个6通道(Mini和Nano有8个通道,Mega有16个通道),10位模拟数字转换器。这意味着它将0至5伏特之间的输入电压映射到0至1023之间的整数值。这将产生读数之间的关系:5伏特/ 1024单位,或0.0049伏特(4.9 mV)每单位。输入范围和精度可以使用analogReference()改变。 它需要大约100微秒(0.0001)来读取模拟输入,所以最大的阅读速度是每秒10000次。
参数:PIN:要读取数值的模拟引脚;返回值:从 0 到 1023 的整数值。

其他常用函数:
1.时间函数
(1)millis() — 有返回值函数,作用是返回 Arduino 开发板从运行当前程序开始的毫秒数。这个数字将在约 50 天后溢出清零。
参数:无;返回值:返回从运行当前程序开始的毫秒数(无符号长整数)
(2)micros() — 有返回值函数,作用是返回 Arduino 开发板从运行当前程序开始的微秒数。这个数字将在约70分钟后溢出(归零)。在 16MHz 的 Arduino 开发板上(比如 UNO 和 Nano),这个函数的分辨率为四微秒(即返回值总是四的倍数)。
(3)delay() — 无返回值函数,作用是是程序暂停设定的时间(单位毫秒),例如:delay(1000) 为一秒延时函数。
参数:ms:暂停的毫秒数(unsigned long);返回值:无
(4)delayMicroseconds() — 无返回值函数,作用是使程序暂停指定的一段时间(单位:微秒)。一秒等于1000000微秒。 目前,能够产生的最大的延时准确值是16383。这可能会在未来的Arduino版本中改变。对于超过几千微秒的延迟,你应该使用delay()代替。参数:us:暂停的时间,单位毫秒(unsigned int);返回值:无

2.通信函数
用于Arduino控制板和一台计算机或其他设备之间的通信。所有的Arduino控制板有至少一个串口(又称作为UART或USART)。它通过0(RX)和1(TX)数字引脚经过串口转换芯片连接计算机USB端口与计算机进行通信。因此,如果你使用这些功能的同时你不能使用引脚0和1作为输入或输出。
您可以使用Arduino IDE内置的串口监视器与Arduino板通信。点击工具栏上的串口监视器按钮,调用begin()函数(选择相同的波特率)。

(1)Serial.begin(波特率) — 作用是设置串行每秒传输数据的速率(波特率)。在同计算机通讯时,使用下面这些值:300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600或 115200。你也可以在任何时候使用其它的值,比如,与0号或1号插口通信就要求特殊的波特率。用在setup()函数里
(2)Serial.read()——读取持续输入的数据
(3)Serial.print(数据,数据的进制)——从串行端口输出数据。Serial.print(数据)默认为十进制等于Serial.print(数据,DEC)
(4)Serial.println(数据,数据的进制)——从串行端口输出数据,跟随一个回车和一个换行符。这个函数所取得的值与 Serial.print()一样

以上几个函数是常用基本函数,了解了这些函数之后,就可以编写一些简单的程序了,但是如果要使用 Arduino 进行更复杂一些的应用,还有很多,需要以后会慢慢学习。

相关文章:

Arduino 编程参考手册
什么是Arduino?今天开始学
第1课 — 板载 LED 闪烁实验
本文转自:
奥松机器人中文官网
回复

使用道具 举报

您可能感兴趣的文章

您需要登录后才可以回帖 登录 | 立即注册

关注0

粉丝5

帖子138

发布主题
社区热门 MORE+
    社区热帖 MORE+