目录
基本函数
1、pinMode( )
将指定引脚配置为输入或输出模式 无返回值
语法:
pinMode(pin,mode)
pin:要设置的引脚编号
mode:模式
INPUT | 输入模式 |
OUTPUT | 输出模式 |
INPUT_PULLUP | 上拉输入模式 |
2、digitalWrite( )
设置引脚的输出电压为高电平或低电平 无返回值
语法:
digitalWrite(pin,value)
pin:要设置其输出的引脚编号
value:表示输出的电压
HIGH(1) | 5V |
LOW(0) | 0V |
3、analogWrite( )
模拟输出函数 在指定引脚输出指定占空比的PWM方波 无返回值
语法:
analogWrite(pin,value)
pin:产生方波的指定引脚
value:占空比,介于0-255之间,用于计算一段时间内的通导时间
4、analogRead( )
模拟输入函数 读取模拟接口的值 即施加到其中一个引脚的电压
语法:
val = analogRead(pin)
val:返回值 返回0-1023之间的数字,表示0-5V的电压
pin:要读取电压的引脚
5.map( )
将变量按照映射范围来返回相应的值
语法:
val = map(value,fromLOW,fromHIGH,yoLOW,toHIGH)
将value变量按照fromLOW-formHIGH的范围,映射到toLOW-toHIGH的范围
val:接收映射返回值
基本点灯
1、闪烁的LED灯
//基本点灯
//闪烁的LED灯
int pin = 13;//Arduino Mega的LED灯引脚为13号引脚
void setup() {
pinMode(pin,OUTPUT);
}
void loop() {
digitalWrite(pin,HIGH);
delay(5000);//暂停5000ms
digitalWrite(pin,LOW);
delay(5000);
}
2、用按钮控制LED灯的闪烁(第一种)
//基本点灯
//用按钮来控制LED灯的闪烁+按钮防抖
//这种按钮为按下闪烁,放松熄灭
int LEDpin = 13;
int pin = 2;//假设按钮连接的是2号引脚
void setup() {
pinMode(LEDpin,OUTPUT);
pinMode(pin,INPUT);
}
void loop() {
if(digitalRead(pin) == HIGH){
digitalWrite(pin,HIGH);
}else{
digitalWrite(pin,LOW);
}
delay(1);
}
3、用按钮控制LED灯的闪烁(第二种)
//基本点灯
//用按钮来控制LED灯的闪烁+按钮防抖
//这种按钮为每次按下和放松为一次改变状态
int LEDpin = 13;
int pin = 2;
int x = 0;//x=0灯灭,x=1灯亮
int deng1 = 0;//按键当时的状态
int deng2 = 0;//按键之前的状态
void setup() {
pinMode(LEDpin,OUTPUT);
pinMode(pin,INPUT);
}
void loop() {
deng1 = digitalRead(pin);
if(deng1 == 1 and deng2 == 0){
delay(50);//按钮防抖
if(x == 0){
x = 1;
}else{
x = 0;
}
}
deng2 = deng1;
delay(1);
if(x == 1){
digitalWrite(LEDpin,HIGH);
}else{
digitalWrite(LEDpin,LOW);
}
}
4、会呼吸的LED灯
//基本点灯
//会呼吸的LED灯
int pin = 13;
void setup() {
pinMode(pin,OUTPUT);
}
void loop() {
for(int i = 0;i < 255;i++){
analogWrite(pin,i);
delay(4);
}
for(int i = 255;i > 0;i++){
analogWrite(pin,i);
delay(4);
}
}
串口通信
1、连接
需要两个数据引脚,一个用于传输数据的TX(pin=1),另一个用于接收的RX(pin=0)。一个设备的TX连接另一个设备的RX,反之,RX连接TX。
还需要两个设备共地,即参考电压一致。所以要把两个设备的GND引脚相连。
2、代码
使用库#include <SoftwareSerial.h>
SoftwareSerial mySerial(rxPin,txPin); 类库的构造函数,通过它用户可以指定软串口RT、TX引脚。mySerial是用户自定义的软件串口对象 rxPin是软串口接收引脚(类似于RX)txPin是软串口发送引脚(类似于TX)
begin( );
available( ); Serial.available( ) 获取软串口接收到的数据个数,即获取串口接收缓冲区的字节数(缓冲区最多保存64bytes的数据)当其大于0时,说明串口接收到了数据,可以读取
//available典型用法 while(Serial.available() > 0){ data = Serial.read(); delay(2); }
read( ); Serial.read( ) 从串口缓冲区中取出并读取一个bytes的数据
peek( ); Serial.peek( ) 从缓冲区返回一个字节数据,与read( )不同的是,peek( )读取数据后不会在缓冲区删除修改数据
write( ); Serial.write( ) 以字节形式输出数据到串口(与IIC中使用的wire.h一致)
listen( ); 开启串口监听状态