arduino笔记--常用语句
arduino 笔记–常用语句
arduino语言
结构
void setup()
初始化变量,管脚模式,调用库函数等
**void loop() **
连续执行函数内的语句
功能
数字I/O
pinMode(pin, mode)
接口定义为输入或输出接口,用在setup()函数里。
数字 IO 口输入输出模式定义函数,
pin表示为 0~13, mode 表示为 INPUT 或 OUTPUT。
1 | pinMode(7,INPUT); // 将脚位 7 设定为输入模式 |
digitalWrite(pin, value)
将数字接口值至高或 低。
数字 IO 口输出电平定义函数,pin表示为 0~13,value 表示为 HIGH 或 LOW。
比如定义 HIGH可以驱动 LED。
1 | digitalWrite(8,HIGH); //将脚位 8 设定输出高电位 |
int digitalRead(pin)
读出数字接口的值。
数字 IO 口读输入电平函数,
pin 表示为 0~13,value 表示为 HIGH 或 LOW。比如可以读数字传感器。
1 | val = digitalRead(7); // 读出脚位 7 的值并指定给 val |
模拟I/O
int analogRead(pin)
从指定的模拟接口读取值,Arduino对该模拟值进行 10-bit 的数字转换,这个方法将输入的 0-5 电压值转换为 0 到 1023 间的整数值。
模拟 IO 口读函数,
pin 表示为 0~5 (Arduino Diecimila 为 0~5,Arduino nano 为 0~7)。
比如可以读模拟传感器(10 位 AD,0~5V 表示为 0~1023)。
1 | val = analogRead(0); //读出类比脚位 0 的值并指定给 val 变数 |
analogWrite(pin, value) - PWM
给一个接口写入模拟值(PWM波)。对于 ATmega168 芯片的 Arduino(包括 Mini 或 BT),该函数 可以工作于 3, 5, 6, 9, 10 和 11 号接口。
数字IO口PWM输出函数,
Arduino 数字 IO 口标注了 PWM 的 IO 口可使用该函数,pin 表
示 3, 5, 6, 9, 10, 11,value 表示为 0~255。比如可用于电机
PWM 调速或音乐播放。
1 | analogWrite(9,128); // 输出电压约 2.5 伏特(V) |
扩展I/O
shiftOut(dataPin, clockPin, bitOrder, value)
把资料传给用来延伸数位输出的暂存器,函数使用一个脚位表示资 料、一个脚位表示时脉。bitOrder 用来表示位元间移动的方式(LSBFIRST 最低有效位元或是 MSBFIRST 最高有效位元),最后 value会以 byte 形式输出。此函式通常使用在延伸数位的输出。
SPI 外部 IO 扩展函数,
通常使用带 SPI 接口的 74HC595 做 8 个 IO 扩展,
dataPin 为数据口,clockPin 为时钟口,bitOrder 为数据传输方
向(MSBFIRST 高位在前,LSBFIRST 低位在前),value 表
示所要传送的数据(0~255),另外还需要一个 IO 口做
74HC595 的使能控制。
1 | shiftOut(dataPin, clockPin, LSBFIRST, 255); |
unsigned long pulseIn(pin, value)
设定读取脚位状态的持续时间,例如使用红外线、加速度感测器测得
某一项数值时,在时间单位内不会改变状态。
脉冲长度记录函数,
返回时间参数(us),pin 表示为 0~13,value 为 HIGH 或 LOW。
比如 value 为 HIGH,那么当 pin 输入为高电平时,开始计时,
当 pin 输入为低电平时,停止计时,然后返回该时间。
1 | time = pulsein(7,HIGH); // 设定脚位 7 的状态在时间单位内保持 为 HIGH |
时间函数
unsigned long millis()
返回时间函数(单位 ms),该函数是
指,当程序运行就开始计时并返回记录的参数,该参数溢出大
概需要 50 天时间。
1 | duration = millis()-lastTime; // 表示自"lastTime"至当下的时 间 |
delay(ms)
延时函数(单位 ms)。
1 | delay(500); //暂停半秒(500 毫秒) |
delayMicroseconds(us)
延时函数(单位 us)。
1 | delayMicroseconds(1000); //暂停 1 毫秒 |
随机数函数
randomSeed(seed)
随机数端口定义函数,
seed 表示读模拟口 analogRead(pin)函数 。
事实上在 Arduino 里的乱数是可以被预知的。所以如果需要一个真正的乱数,可以呼叫此函式重新设定产生乱数种子。你可以使用乱数当作乱数的种子,以确保数字以随机的方式出现,通常会使用类比输入当作乱数种子,藉此可以产生与环境有关的乱数(例如:无线电波、宇宙雷射线、电话和萤光灯发出的电磁波等)。
1 | randomSeed(analogRead(5)); // 使用类比输入当作乱数种子 |
long random(max)
随机数函数,
返回数据大于等于 0,小于max。
1 | long randnum = random(11); // 回传 0 -10 之间的数字 |
long random(min, max)
随机数函数,
返回数据大于等于min,小于 max。
1 | long randnum = random(0, 100); // 回传 0 – 99 之间的数字 |
外部中断函数
attachInterrupt(interrupt, , mode)
外部中断只能用到数字IO 口 2 和 3,
interrupt 表示中断口初始 0 或 1,表示一个功能 函数,mode:LOW 低电平中断,CHANGE 有变化就中断,RISING 上升沿中断,FALLING 下降沿中断。
detachInterrupt(interrupt)
中断开关,
interrupt=1 开,interrupt=0 关。
中断使能函数
interrupts()
使能中断
noInterrupts()
禁止中断
串口收发函数
Serial.begin(speed)
串口定义波特率函数,speed 表示波特
率,如 9600,19200 等。
1 | Serial.begin(9600); |
int Serial.available()
回传有多少位元组(bytes)的资料尚未被 read()函式读取,如果回 传值是 0 代表所有序列埠上资料都已经被 read()函式读取。
判断缓冲器状态。
1 | int count = Serial.available(); |
int Serial.read()
读取持续输入的数据。
读串口并返回收到参数。
Serial.flush()
有时候因为资料速度太快,超过程式处理资料的速度,你可以使用此 函式清除缓冲区内的资料。经过此函式可以确保缓冲区(buffer)内的资料都是最新的。
清空缓冲器。
1 | Serial.flush(); |
Serial.print(data)
串口输出数据。
Serial.println(data)
串口输出数据并带回车符。
1 | Serial.print(75); // 列印出 "75" |