一、图片:
二、程序代码:
/*
按键控制pwm进而调节LED灯的亮度,Arduino板的3、5、6、9、10、11引脚可输出pwm,
P2接key1:减小pwm
P8接key2:增加pwm
P9接LED
*/
boolean key1; //定义布尔变量:key1
boolean key2; //定义布尔变量:key2
int LED = 9; //定义整形变量:LED
int pwm = 128;
void setup()
{
pinMode(2,INPUT_PULLUP); //设置P2口为输入上拉模式
pinMode(8,INPUT_PULLUP); //设置P8口为输入上拉模式
pinMode(LED,OUTPUT); //设置P9口为输出模式
Serial.begin(9600); //设置通讯波特率为9600
}
void loop()
{
key1 = digitalRead(2); //读取P2口的状态(高电平/低电平)
key2 = digitalRead(8); //读取P8口的状态(高电平/低电平)
if(!key1 && pwm > 0) //判断按键是否被按下
{
pwm --;
}
else if(!key2 && pwm < 225)
{
pwm ++;
}
analogWrite(LED,pwm); //根据输入值pwm调节LED亮度的函数
Serial.println("pwm"); //在显示屏中显示pwm值
delay(10); //延时10ms
}
三、串口通讯函数:
(1).Serial.begin(int speed) //初始化串口比特率函数
例:Serial.begin(9600);
(2).Serial.available() //串口输入数据读取前的判断函数
返回值为1时说明串口缓存(buff)中有数据,返回值为0时说明串口buff中无数据或者数据已经读取出来过
例:if(Serial.available())
(3).Serial.read() //从串口buff中读取数据进来
例:information=Serial.read();
(4).Serial.flush() //清空串口buff中的数据
(5).Serial.print(data) //把数据data从串口发送出去
a、Serial.print(data) //把data对应的字符串ASCII码发送出去。
如:int data=79;
Serial.print(data);
串口发送出去的就是字符串”79”的ASCII
b、Serial.print(data,DEC) //发送的是data的10进制字符串
如:int data=79;
Serial.print(data,DEC);
串口发出去的就是字符串”79”
c、Serial.print(data,HEX) //发送的是data的16进制字符串
例:
int data=79;
Serial.print(data,HEX);
串口发出去的就是10进制数字79对应的16进制值“4F”
d、Serial.print(data,OCT) //发送的是data的8进制字符串
例:
int data=79;
Serial.print(data,OCT);
串口发出去的就是10进制数字79对应的8进制值“117”
e、Serial.print(data,BIN) //发送的是data的二进制字符串
例:
int data=79;
Serial.print(data,BIN);
串口发出去的就是10进制数字79对应的二进制值“1001111”
f、Serial.print(data,BYTE)
这是把data作为ASCII码对应的字符后发送,有的Arduino版本不支持这个函数
g、Serial.println(data)
类似Serial.print (data),把数据发送出去,不同的是发送的数据后面带上了换行符号