前言:只要有点C语言基础,学Arduino语法就不难,只是有点常量和数据类型以及函数跟C语言不大一样,下面,我将向大家介绍一下Arduino的基础语法。我用的是Arduino UNO的板子,Arduino UNO是Arduino USB接口系列的最新版本,成为Arduino平台的参考标准模板。UNO的处理器核心是ATmega328,同时具有14路数字输入/输出(其中6路可作为PWM输出),有6路模拟输入,一个16MHZ晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。

一、Arduino中的常量

1.HIGH/LOW:表示数字I/O口的电平。HIGH表示高电平,LOW表示低电平
2.INPUT/OUTPUT:表示数字I/O口的方向。INPUT表示输入,OUTPUT表示输出。
3.true/false:true表示逻辑状态真(1),false表示假(0)
4.integer constants:整型常量
5.floating point constants:浮点型常量

二、Arduino中的数据类型

数据类型 字节 范围 作用
void 只用作函数声明,表示没有返回值
boolean true,false 每一个布尔变量占一个字节的内存
char 1 -128~127 字符
unsigend char 1 0~255 无符号字符
byte 0~255 -128~127 字节。1byte=8bit(位)
int 2 -32768~32767 整数,在Arduino Due上是4个字节
unsigned int 2 0~65535 无符号整数
word 2 0~65535
long 4 ~2147483648~2147483647 长整数
unsigned long 4 0~2的32次方-1 无符号长整数
short 2 -32768~32767 短整数
float 4 -3.4028235E+38~3.4028235E+38 单精度浮点数,只有6~7位小数精度
double 4 双精度浮点数,在Arduino Due上为8个字节,其余的跟float一样
string 字符串,相当于char类型的数组
String object
array 数组

三、数据类型转换函数

1.char():将任意类型的值转换成char类型;
2.byte():将任意类型的值转换成byte类型;
3.int():将任意类型的值转换成int类型;
4.long():将任意类型的值转换成long类型;
5.float():将任意类型的值转换成float类型;

四、Arduino基本函数

数字I/O口

1.pinMode(pin,mode)
这是I/O输入输出模式定义函数。pin为对应的引脚,mode表示INPUT或OUTPUT
例:pinMode(13,OUTPUT);//将脚位13设定为输出模式
2.digitalWrite(pin,value)DEFAULT、
数字I/O口输出电平定义函数。pin为0~13之间的一个值,代表对应的引脚。value为HIGH或LOW
注:必须先利用pinMode(pin,mode)函数定义输入或输出模式后,digitalWrite及下面介绍的函数才能生效
例:digitalWrite(9,HIGH);//将脚位9设定输出高电位
3.digitalRead(pin)
数字I/O口读入电平函数。pin为0~13之间的一个值,代表对应的引脚。该函数的返回值为int型,表示从引脚读入的电压是高电平或低电平。当检测到引脚为高电平时表示为HIGH,低电平时表示为LOW。
例:val=digitalRead(6);//读出引脚6的值返回给变量val
上述这些函数都可以在Arduino开发环境目录下的hardware\arduino\cores\arduino文件夹里的wiring_digital.c和其他c文件中查看到。

模拟I/O口

1.analogReference()
此函数的作用是配置模拟引脚的参考电压。在嵌入式应用中,引脚获取模拟电压值之后,将根据参考电压的大小把模拟值转换为0~1023之间的一个数。该函数为无返回值,参数有3种类型(DEFAULT/INTERNAL/EXTERNAL),具体含义为:
DEFAULT:默认值,参考电压为5V
INTERNAL:低电压模式,使用片内基准电压源
EXTERNAL:扩展模式,通过AREF引脚获取参考电压
2.analogRead(pin)
模拟I/O口读函数,。读出该引脚位的电压源并回传一个0到1023之间的数值表示相对应的0到5的电压值
例:val=analogRead(0);//读出模拟量引脚的值并回传给val
3.analogWrite(pin,value)
和函数analogRead(pin)相反,它是向模拟口pin引脚写入一个数值,该函数值的大小为value

时间函数

1.millis()
返回时间函数(ms)。计算从程序开始执行到目前的毫秒时间,函数返回值为unsigned long 型。最大计时时间约为9个多小时(之后数据将会溢出),数据溢出后从零重新开始计时
例:time=millis();//将程序到当前为止的运行时间返回给变量time
2.micros()
类似返回时间函数millis(),单位为微妙,大约需要70min溢出
3.delay(ms)
延时函数(单位为ms),暂停程序运行一段时间
例:delay(500);//暂停半秒
4.delayMicroseconds(微秒)
延时函数(单位微妙),类似delay()

随机数

1.randomSeed(seed) //函数用来设置随机数种子
例:randomSeed(analogRead(5));//使用类比输入当作乱树种子
2.long random(max)
3.long random(min,max)
回传指定区间的乱数,型态为long。如果没有指定最小值,预设最小值为0
例:long randnum=random(0,100);//回传0~99之间的数字
long randnum=random(11);//回传0~10之间的数字

串口通信

1.Serial.begin(int speed) //初始化串口比特率函数
例:Serial.begin(9600);
2.Serial.available() //串口输入数据读取前的判断函数
返回值为1时说明串口缓存(buff)中有数据,返回值为0时说明串口buff中无数据或者数据已经读取出来过
例:if(Serial.available())
3.Serial.read() //从串口buff中读取数据进来
例:information=Serial.read();
4.Serial.flush() //清空串口buff中的数据
5.Serial.print(data) //把数据data从串口发送出去
(1)Serial.print(data) //把data对应的字符串ASCII码发送出去。
如:int data=79;
Serial.print(data);
串口发送出去的就是字符串"79"的ASCII
(2)Serial.print(data,DEC) //发送的是data的10进制字符串
如:int data=79;
Serial.print(data,DEC);
串口发出去的就是字符串"79"
(3)Serial.print(data,HEX) //发送的是data的16进制字符串
如:
int data=79;
Serial.print(data,HEX);
串口发出去的就是10进制数字79对应的16进制值“4F”
(4)Serial.print(data,OCT) //发送的是data的8进制字符串
如:
int data=79;
Serial.print(data,OCT);
串口发出去的就是10进制数字79对应的8进制值“117”
(5)Serial.print(data,BIN) //发送的是data的二进制字符串
如:
int data=79;
Serial.print(data,BIN);
串口发出去的就是10进制数字79对应的二进制值“1001111”
(6)Serial.print(data,BYTE)
这是把data作为ASCII码对应的字符后发送,有的Arduino版本不支持这个函数
(7)Serial.println(data)
类似Serial.print (data),把数据发送出去,不同的是发送的数据后面带上了换行符号

中断函数

外部中断函数

(1)attachInterrupt(interrupt,function,mode)
interrupt:中断服务号码
function:中断服务程序
mode:定义何时发生中断,以下四个contstants预定有效值:
LOW-当引脚为低电平时,触发中断
CHANGE-当引脚电平发生改变时,触发中断ALLING
RISING-当引脚有低电平变为高电平时,触发中断
FALLING-当引脚有高电平变为低电平时,触发中断
注:中断0是数字引脚2 中断1是数字引脚3

SPI接口

##本文是由戴凤智 海玉 秦柱伟 三位老师编写的Arduino轻松入门里的内容,感觉非常有用,推荐给大家,由于事先没有征得三位老师的同意,如有侵权请联系删稿##

Arduino基础语法相关推荐

  1. 《Arduino与LabVIEW开发实战》第1章 Arduino基础

    第1章 Arduino基础 1.1 Arduino是什么 Arduino是什么? 根据维基百科,Arduino的定义如下:一种开源的单片机控制器,它使用Atmel AVR单片机,采用基于开放源代码的软 ...

  2. FPGA(2)基础语法 -- 按键控制led(alway@语句)

    目录 1.module 文件名(端口) 2.声明关键字 3.always@语句 代码 1.module 文件名(端口)  注:这里最好养成习惯,只在文件名后面的括号中声明引脚变量,输入输出.关键字类型 ...

  3. javascript基础语法——表达式

    前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascript表达式(expression).本文将详 ...

  4. Rust语言开发基础(六)基础语法

    2019独角兽企业重金招聘Python工程师标准>>> 一.变量的定义和使用 其它常见的编程语言对变量的定义通常是通过声明类型和使用关键new来创建一个变量,但Rust不是,Rust ...

  5. python列表嵌套字典取值_Python基础语法:你不得不知的几种变量类型

    (点击上方快速关注并设置为星标,一起学Python) 作者:kina_chen來源:简书 01. Python编码Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字, ...

  6. python赋值语句的一般格式为_Python 基础语法

    Python 基础语法 Python 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程 ...

  7. 深入浅出CMake(二): 基础语法

    在<深入浅出CMake(一):基础篇>文章中,我们已经知道了怎么依葫芦画瓢编写简单的 CMake 构建文件了,但如果应对复杂的工程的话,这还是远远不够的. CMake 是一套编译构建体系, ...

  8. Python基础语法学习笔记

    Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...

  9. Python的零基础超详细讲解(第三天)-Python的基础语法

    多行语句 Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如: duohang = item_one + \item_two + \item_three ...

最新文章

  1. 汇总| SLAM优秀开源工程
  2. 走过2011,展望2012
  3. Python学习笔记:SMTP服务器
  4. java程序员_哪些书是不可错过的?Java程序员书单分享
  5. 【Python】range和xrange区别
  6. MVVM教程[资源+分析]
  7. 【MyBatis笔记】13-一对多左连接查询分步查询(查询所有客户及客户对应的订单)
  8. OSGi中的ServletContext
  9. Fluke DSX2-5000 CH线缆测试仪技术标书
  10. Essay写作具体内容怎么了解?
  11. java火星坐标转百度坐标_各种地理坐标系的转换,火星坐标,百度坐标,wsg84等...
  12. 【职场心灵鸡汤】以多年来拿最佳的心路历程来复盘【如何成为优秀的5%】
  13. 解决windows网络代理篡改,浏览器不能上网问题
  14. 新版mysql的下载教程_Mysql最新版8.0.21下载安装配置教程详解
  15. 我用Python爬取美食网站3032个菜谱并分析,没有我不会做的菜!
  16. node.js代码总结
  17. 关于SDN理解,老杨都放在这里了
  18. 从 QCon 旧金山 2012中学到的关键经验和教训
  19. uva 10118 - Free Candies(记忆化搜索)
  20. description标签如何正确使用?

热门文章

  1. Python-Flask开发微电影网站(八)
  2. 周末去哪儿架构师跟你聊:大数据平台快速解决方案
  3. 六种c++计时器函数(秒级到微妙级)
  4. 英语之境(chapter two)
  5. 遥感领域多模态综述论文翻译
  6. 股票成交价格确定方法详解
  7. 尽信书则不如无书、尽信标准则不如无标准(也谈JM8.6代码中的手误)
  8. Python爬虫-京东商品到货自动邮件通知
  9. python——合数分解
  10. Ubuntu 有望成为最jia Linux 游戏桌面