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语言


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

查看所有标签

猜你喜欢:

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

Java编程思想

Java编程思想

[美] Bruce Eckel / 陈昊鹏、饶若楠 / 机械工业出版社 / 2005-9 / 95.00元

本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到......一起来看看 《Java编程思想》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器