Arduino学习笔记

栏目: 软件资讯 · 发布时间: 6年前

内容简介:引脚配置成输入或者输出,其中mode可以为INPUT或者OUTPUT例如:

一、引脚

Arduino学习笔记

二、函数介绍

1.pinMode(pin, mode)

引脚配置成输入或者输出,其中mode可以为INPUT或者OUTPUT

例如:

pinMode(7, INPUT); // 将引脚7定义为输入接口

2.digitalWrite(pin, value)

打开一个数值引脚并将其赋值高电平或者低电平,此引脚必须是前面定义过的输入或者输出模式,否则digitalWrite不生效。

value可以为HIGH或者LOW

例如:

digitalWrite(8, HIGH); // 给8号引脚高电平

3.digitalRead(pin)

读取一个输入状态的引脚值。当引脚处于高电平状态时返回HIGH,否则返回LOW。

例如:

val = digitalRead(7); // 读取7号引脚的值并赋值给val

4.analogRead(pin)

读取模拟输入引脚的值,并将其表示为0至1023之间的数值,对应0至5V的电压。

例如:

val = analogRead(0); // 读取模拟接口0的值,并赋值给val

5.analogWrite(pin, value)

改变该引脚的PWM输出数值,引脚(pin)可以是3、5、6、9、10、11。PWM值的改变范围是0至255,对应的电压输出值是0至5V。

例如:

analogWrite(9, 128); // 将9号引脚的LED点亮至50%亮度

6.Serial.begin(speed)

为与Arduino串口通信做准备,我们可以通过Arduino的上位机软件检测返回值,这里设置通信的波特率,我们通常使用9600,我们也可以使用其他的通信波特率,但最大值是115200.

例如:

Serial.begin(9600);

7.Serial.print(data)

Serial.print(data, encoding)

将数据通过串口传回,encoding指明数据传回类型,默认为纯文本格式。

例如:

Serial.print(75); //显示75

Serial.print(75, DEC); //同上

Serial.print(75, HEX); //“4B”(75的十六进制表达)

Serial.print(75,OCT); //“113”(75的八进制表达)

Serial.print(75, BIN); //“1001011”(75的二进制表达)

Serial.print(75, BYTE); //“K”(K的ASCII码值是75)

8.Serial.println(data)

Serial.println(data, encoding)

与Serial.print(data)相同,只是在传回数据的末尾多加一个换行符(\r\n)。换行符的意义就等于你在输入一些文字后敲入的回车键。

例如:

Serial.println(75); //显示“75\r\n”

Serial.println(75, DEC); //同上

Serial.println(75, HEX); //“4B\r\n”

Serial.println(75,OCT); //“113\r\n”

Serial.println(75, BIN); //“1001011\r\n”

Serial.println(75, BYTE); //“K\r\n”

9.pulseIn(pin, value)

读取一个引脚的脉冲持续时间,例如使用红外传感器或者加速度计时。它们都是利用单位时间不同的脉冲来获得状态值的传感器。

例如:

time = pulseIn(7,HIGH); // 读取7号引脚持续为高电平的时间

10.delay(ms)

延迟一定毫秒的时间。

例如:

delay(500); // 延迟500ms

11.delayMicroseconds(us)

延迟一定微秒的时间。

例如:

delayMicroseconds(1000); //延时1000us

12.min(x, y)

x和y中返回最小值。

例如:

val = min(10, 20); // val 的值为10

13.max(x, y)

x和y中返回最大值。

例如:

val = max(10, 20); // val 的值为20

14.abs(x)

传回x的绝对值,正数的绝对值是其本身,负数的绝对值是其相反的数。

例如:

val = abs(-5); // val 的值是5

15.map(value, fromLow, fromHigh, toLow, toHigh)

将value的值按照fromLow与fromHigh的范围,对等转换至toLow与toHigh的范围。通常应用于读取相似信号,并将其转换到程序中所需的范围。

例如:

val = map(analogRead(0), 0,1023, 100, 200);   //将模拟接口0读取的0~1023的值转换成0~100的值

16.pow(base, exponent)

传回一个数(base)的指数(exponent)的值

例如:

double x = pow(y, 32); //使x是y的32次方

17.sqrt(x)

去x的平方根。

例如:

double a = sqrt(1138); // 1138的平方根是33.73425674438

18.sin(rad)

传回某个角度(用弧度单位)的正弦值。

例如:

double sine = sin(2); // 2弧度的正弦值近似为0.90929737091

以此有cos(rad)、tan(rad)...

shiftOut(dataPin, clockPin, bitOrder, value)

发送数据到移位寄存器,用来扩大数字输出范围,此函数使用时有一个引脚作为数据输出,另一个引脚用来表示时钟,bitOrder用来表示字节的格式(LSBFIRST是最低有效位,MSBFIRST是最高有效位),value则要输出字节的值。

例如:

shiftOut(dataPin, clockPin, LSBFIRST, 255);

millis()

检测程序执行开始到当前的时间。

例如:

duration = millis()-lastTime; //表示从lastTime到当前的时间

constrain(x, a, b)

判断x与a和b的关系,若x小于a,则传回a;若x介于a与b之间,则传回x本身;若大于b,则传回b。

例如:

val = constrain(analogRead(0), 0, 255); // 忽略大于255的数

randomSeed(seed)

复位Arduino的随机数发生器,会产生一系列的随机数,虽然这些数字貌似是随机产生,但是它们的顺序其实还是可以被预测的。所以如果我们需要真正的一组随机数,我们就要重新设定随机数的种子。若我们没有连接一个模拟值引脚,它可以从周围环境(无线电波、宇宙射线、手机或者荧光灯的电磁干扰等)获得随机噪声。

例如:

randomSeed(analogRead(5)); // 利用5号引脚的噪声

long random(max)

long random(min, max)

传回指定区间的长整型随机数。如果没有规定最小值,则默认最小值为0。

例如:

long randnum = random(o, 100); //传回一个介于0~100之间的数

long randnum = random(11); //传回一个介于0~10之间的数

int Serial.available()

传回一个数值,告诉上位机有多少字节没有被read()函数读取,若Serial.available()返回值是0,则代表串行数据都已被read()读取。

例如:

int count = Serial.available();

int Serial.read()

读取一个字节的串行数据

例如:

int data = Serial.read();

Serial.flush()

因为数据传输的速度要大于Arduino程序处理速度,所以Arduino会将数据先存放在缓存区中。如果有需要,我们可以利用Serial.flush()函数来清空缓存区,以确保缓存区的数据是最新的。

例如:

Serial.flush();

三、程序运行

1.一个Arduino程序分为两部分:

void setup()

在这个函数里防止初始化Arduino的程序,使主循环程序在开始之前设置好相关参数。

void loop()

这是Arduino的主函数。这套程序会一直重复执行,直到电源被断开。

2.Arduino语言有一些特殊意义的关键字。

例如:

HIGH和LOW用来表示你打开或关闭(高电平或者低电平);

Arduino的一个引脚(pin),INPUT和OUTPUT用来设定某个特定引脚是输入接口还是输出接口;

INPUT_PULLUP用来设定某个引脚为输入,并且被拉高;

True和False,像它们的字面意思一样;表示一个条件或一个运算是真还是假。

3.语法规则如C语言


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

AJAX企业级开发

AJAX企业级开发

Davec Johnson、Alexeic White、Andrec Charland / 张祖良、荣浩、高冰 / 人民邮电出版社 / 2008 / 49.00元

本书首先解释了AJAX 为什么在大规模的开发中能有如此广阔的应用前景,接着系统地介绍了当前重要的AJAX 技术和组件。你将看到把数据表、Web 窗体、图表、搜索和过滤连接在一起用于构建AJAX应用程序的框架开发的整个过程;在此基础上,本书给出了已经过证实的AJAX 架构模式,以及来源于实际的.NET 和Java AJAX 应用程序的案例研究。一起来看看 《AJAX企业级开发》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具