资料来源于太极创客
详细网址:http://www.taichi-maker.com
Arduino 开源硬件
编程语言 C++
int 类型 默认赋值0
arduino内存有限,选择合适的数据类型,太大太小都不合适
通过pinMode()函数,你可以将Arduino的引脚配置为以下三种模式:
- 输出(OUTPUT)模式
- 输入(INPUT)模式
- 输入上拉(INPUT_PULLUP)模式 (仅支持Arduino 1.0.1以后版本)
pinMode(pin,OUTPUT/INPUT/INPUT_PULLUP)//pin为引脚号码
将数字引脚写HIGH(高电平)或LOW(低电平)
如果该引脚通过pinMode()设置为输出模式(OUTPUT),您可以通过digitalWrite()语句将该引脚设置为HIGH(5伏特)或LOW(0伏特/GND)。
如果该引脚通过pinMode()设置为输入模式(INPUT),当您通过digitalWrite()语句将该引脚设置为HIGH时,
这与将该引脚将被设置为输入上拉(INPUT_PULLUP)模式相同。
digitalWrite(pin, value)
pin
:引脚号码
value
: HIGH或 LOW
电流从正极流向负极(抛去反向击穿例子),实物中长的为正极,短的为负极
LED灯珠工作电流:20毫安(mA)
串口通信初始化,每秒9600位
Serial.begin(9600);
设置电脑与Arduino进行串口通讯时的数据传输速率(每秒传输字节数)。可使用以下速率:300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, or 115200。,你也可以根据你所使用的设备而设置其他传输速率。
speed: 每秒传输字节数 – long(长整型数据)
读取数字引脚的 HIGH(高电平)或 LOW(低电平)。
digitalRead(pin)
pin
:被读取的引脚号码
HIGH(1) 或 LOW(0)
共阴极
random函数可用来产生随机数。
random(max)
random(min, max)
min: 产生随机数的下限(包含此数值)
max: 产生随机数的上限(不包含此数值)
在最小值(min)和最大值减一(max-1)之间的随机数值
注意
单独使用random()函数。每次程序运行所产生的随机数字都是同一系列数字。并非真实的随机数,而是所谓的伪随机数。如果希望每次程序运行时产生不同的随机数值。应配合使用randomseed()函数。
randomSeed()函数可用来产生随机种子。单独使用random()函数所产生的随机数,在每一次程序重新启动后,总是重复同一组随机数字。如果希望程序重新启动后产生的随机数值与上一次程序运行时的随机数不同,则需要使用randomSeed()函数。
在实际应用时,可以通过调用analogRead()函数读取一个空引脚,作为随机种子数值。
randomSeed(seedVal)
seedVal: 随机种子数值
long randNumber;
void setup(){
Serial.begin(9600);
randomSeed(analogRead(A0));
//将引脚A0放空,每次程序启动时所读取的数值都是不同的。analogRead(A0)模拟输入。
//这么做可以产生真正的随机种子值,从而产生随机数值。
}
void loop(){
randNumber = random(300); // 产生随机数
Serial.println(randNumber);
delay(50);
}
将一个模拟数值写进Arduino引脚**。这个操作可以用来控制LED的亮度, 或者控制电机的转速**。Arduino每一次对引脚执行analogWrite()指令,都会给该引脚一个固定频率的PWM信号。PWM信号的频率大约为490Hz.
在Arduino UNO控制器中,5号引脚和6号引脚的PWM频率为980Hz。在一些基于ATmega168和ATmega328的Arduino控制器中,analogWrite()函数支持以下引脚: 3, 5, 6, 9, 10, 11。
在Arduino Mega控制其中,该函数支持引脚 2 – 13 和 44 – 46。使用ATmega8的Arduino控制器中,该函数只支持引脚 9, 10, 11.
在调用analogWrite()函数前,您无需使用pinMode()函数来设置该引脚。
analogWrite(pin, value)
pin
:被读取的模拟引脚号码
value
:0到255之间的PWM频率值, 0对应off, 255对应on
电位器,向哪旋转,哪边的电阻值变小
向右旋转,(2,3)引脚之间的电阻值变小,2号引脚的电压值变大
向左旋转,(1,2)引脚之间的电阻值变小,2号引脚的电压值变小
本指令用于从Arduino的模拟输入引脚读取数值。Arduino控制器有多个10位数模转换通道。这意味着Arduino可以将0-5伏特的电压输入信号映射到数值0-1023。
换句话说,我们可以将5伏特等分成1024份。0伏特的输入信号对应着数值0,而5伏特的输入信号对应着1023。
例:
当模拟输入引脚的输入电压为2.5伏特的时候,该引脚的数值为512。
(2.5伏特 / 5伏特 = 0.5, 1024 X 0.5 =512)
引脚的输入范围以及解析度可以使用analogReference()指令进行调整。
Arduino控制器读取一次模拟输入需要消耗100微秒的时间(0.0001秒)。控制器读取模拟输入的最大频率是每秒10,000次。
注意:在模拟输入引脚没有任何连接的情况下,用analogRead()指令读取该引脚,这时获得的返回值为不固定的数值。这个数值可能受到多种因素影响,如将手靠近引脚也可能使得该返回值产生变化。
analogRead(pin)
pin
:被读取的模拟引脚号码
0到1023之间的值
map()可以用来将某一数值从一个区间等比映射到一个新的区间。
[c gutter=”0″]
map (x, in_min, in_max, out_min, out_max) [/c]
x: 要映射的值
in_min: 映射前区间最小值
in_max: 映射前区间最大值
out_min: 映射后区间最小值
out_max 映射后区间最大值