Arduino入门实例8.docx
《Arduino入门实例8.docx》由会员分享,可在线阅读,更多相关《Arduino入门实例8.docx(10页珍藏版)》请在冰点文库上搜索。
Arduino入门实例8
Arduino
入
门
实
例
作者:
小新哥
/*实例一:
定义引脚模式*/
/*pinMode(pin,mode) 数字IO口输入输出模式定义函数,pin表示为引脚0~13,mode表示为INPUT或OUTPUT模式*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
pinMode(1,INPUT);//定义引脚1为输入模式
pinMode(9,OUTPUT);//定义引脚9为输出模式
}
voidloop()//连续执行函数内的语句
{
}
/*实例二:
定义引脚1~8为输入模式,9~13为输出模式*/
/*方法1:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
pinMode(1,INPUT);//定义引脚1为输入模式
pinMode(2,INPUT);//定义引脚2为输入模式
pinMode(3,INPUT);//定义引脚3为输入模式
pinMode(4,INPUT);//定义引脚4为输入模式
pinMode(5,INPUT);//定义引脚5为输入模式
pinMode(6,INPUT);//定义引脚6为输入模式
pinMode(7,INPUT);//定义引脚7为输入模式
pinMode(8,INPUT);//定义引脚8为输入模式
pinMode(9,OUTPUT);//定义引脚9为输出模式
pinMode(10,OUTPUT);//定义引脚10为输出模式
pinMode(11,OUTPUT);//定义引脚11为输出模式
pinMode(12,OUTPUT);//定义引脚12为输出模式
pinMode(13,OUTPUT);//定义引脚13为输出模式
}
voidloop()//连续执行函数内的语句
{
}
/*方法2:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
for(inti=0;i<=8;i++)//for循环
pinMode(i,INPUT);//定义引脚1~8为输入模式
for(intj=9;j<=13;j++)//for循环
pinMode(j,OUTPUT);//定义引脚9~13为输出模式
}
voidloop()//连续执行函数内的语句
{
}
/*方法3:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
for(inti=0,j=9;i<=8,j<=13;i++,j++)//for循环
{
pinMode(i,INPUT);//定义引脚1~8为输出模式
pinMode(j,OUTPUT);//定义引脚9~13为输出模式
}
}
voidloop()//连续执行函数内的语句
{
}
/*实例三:
按下按钮1亮灯,松开按钮1灭灯*/
∙digitalWrite(pin,value) 数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。
比如定义HIGH可以驱动LED。
∙int digitalRead(pin) 数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。
比如可以读数字传感器。
∙HIGH | LOW 表示数字IO口的电平,HIGH 表示高电平
(1),LOW 表示低电平(0)。
∙INPUT | OUTPUT 表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(AVR能提供5V电压40mA电流)。
/*方法1:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
pinMode(1,INPUT);//定义引脚1为输入模式
pinMode(13,OUTPUT);//定义引脚13为输出模式
}
voidloop()//连续执行函数内的语句
{
if(digitalRead
(1)==HIGH)//if语句,引脚1置高电平,即按钮1按下
digitalWrite(13,HIGH);//引脚9置高电平,即亮灯
else
digitalWrite(13,LOW);//引脚9置低电平,即灭灯
}
/*方法2:
最简单的方法*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
pinMode(1,INPUT);//定义引脚1为输入模式
pinMode(13,OUTPUT);//定义引脚13为输出模式
}
voidloop()//连续执行函数内的语句
{
digitalWrite(13,digitalRead
(1));//读取引脚1的电平,赋值给引脚13
}
/*方法3:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
for(inti=0,j=9;i<=8,j<=13;i++,j++)//for循环
{
pinMode(i,INPUT);//定义引脚1~8为输入模式
pinMode(j,OUTPUT);//定义引脚9~13为输出模式
}
}
voidloop()//连续执行函数内的语句
{
while(digitalRead
(1)==1)//while循环HIGH即是数字信号1
digitalWrite(13,HIGH);
while(digitalRead
(1)==0)//LOW即是数字信号0
digitalWrite(13,LOW);
}
/*方法4:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
for(inti=0;i<=8;i++)//for循环
pinMode(i,INPUT);//定义引脚1~8为输入模式
for(intj=9;j<=13;j++)//for循环
pinMode(j,OUTPUT);//定义引脚9~13为输出模式
}
voidloop()//连续执行函数内的语句
{
digitalRead
(1)==HIGH?
digitalWrite(13,HIGH):
digitalWrite(13,LOW);//使用条件运算符
}
/*实例四:
同时按下按钮1和按钮2亮灯,松开灭灯*/
/*方法1:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
for(inti=0,j=9;i<=8,j<=13;i++,j++)//for循环
{
pinMode(i,INPUT);//定义引脚1~8为输入模式
pinMode(j,OUTPUT);//定义引脚9~13为输出模式
}
}
voidloop()//连续执行函数内的语句
{
if(digitalRead
(1)==HIGH&&digitalRead
(2)==HIGH)//逻辑与运算符&&
digitalWrite(13,HIGH);
else
digitalWrite(13,LOW);
}
/*方法2:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
for(inti=0,j=9;i<=8,j<=13;i++,j++)//for循环
{
pinMode(i,INPUT);//定义引脚1~8为输入模式
pinMode(j,OUTPUT);//定义引脚9~13为输出模式
}
}
voidloop()//连续执行函数内的语句
{
while(digitalRead
(1)==HIGH&&digitalRead
(2)==HIGH)//逻辑与运算符&&
digitalWrite(13,HIGH);
while(digitalRead
(1)==LOW||digitalRead
(2)==LOW)//逻辑或运算符||
digitalWrite(13,LOW);
}
/*方法3:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
for(inti=0,j=9;i<=8,j<=13;i++,j++)//for循环
{
pinMode(i,INPUT);//定义引脚1~8为输入模式
pinMode(j,OUTPUT);//定义引脚9~13为输出模式
}
}
voidloop()//连续执行函数内的语句
{
digitalRead
(1)==1&&digitalRead
(2)==1?
digitalWrite(13,1):
digitalWrite(13,0);
//使用条件运算符和逻辑与运算符&&,其中电平值HIGH为1,LOW为0
}
/*实例五:
按下按钮1或者按钮2亮灯,松开灭灯*/
/*方法1:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
for(inti=0,j=9;i<=8,j<=13;i++,j++)//for循环
{
pinMode(i,INPUT);//定义引脚1~8为输入模式
pinMode(j,OUTPUT);//定义引脚9~13为输出模式
}
}
voidloop()//连续执行函数内的语句
{
digitalRead
(1)==HIGH||digitalRead
(2)==HIGH?
digitalWrite(13,HIGH):
digitalWrite(13,LOW);
//使用条件运算符和逻辑或运算符||
}
/*方法2:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
for(inti=0,j=9;i<=8,j<=13;i++,j++)//for循环
{
pinMode(i,INPUT);//定义引脚1~8为输入模式
pinMode(j,OUTPUT);//定义引脚9~13为输出模式
}
}
voidloop()//连续执行函数内的语句
{
if(digitalRead
(1)==HIGH||digitalRead
(2)==HIGH)//逻辑或运算符||
digitalWrite(13,HIGH);
else
digitalWrite(13,LOW);
}
/*方法3:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
pinMode(1,INPUT);//定义引脚1为输入模式
pinMode(13,OUTPUT);//定义引脚13为输出模式
}
voidloop()//连续执行函数内的语句
{
while(digitalRead
(1)==HIGH&&digitalRead
(2)==HIGH)//逻辑或运算符||
digitalWrite(13,HIGH);
while(digitalRead
(1)==LOW||digitalRead
(2)==LOW)//逻辑与运算符&&
digitalWrite(13,LOW);
}
/*实例六:
按下开灯按钮1亮灯,按下关灯按钮2灭灯*/
/*方法1:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
pinMode(1,INPUT);//定义引脚1为输入模式
pinMode(13,OUTPUT);//定义引脚13为输出模式
}
voidloop()//连续执行函数内的语句
{
while(digitalRead
(1)==HIGH)//按下开灯按钮
digitalWrite(13,HIGH);//亮灯
while(digitalRead
(2)==HIGH)//按下关灯按钮
digitalWrite(13,LOW);//灭灯
}
/*方法2:
*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
pinMode(1,INPUT);//定义引脚1为输入模式
pinMode(13,OUTPUT);//定义引脚13为输出模式
}
voidloop()//连续执行函数内的语句
{
if(digitalRead
(1)==HIGH)
digitalWrite(13,HIGH);
if(digitalRead
(2)==HIGH)
digitalWrite(13,LOW);
}
/*实例七:
按一下按钮1亮灯,再按一下灭灯*/
/*方法1:
*/
/*高电平有效*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
pinMode(1,INPUT);//定义引脚1为输入模式
pinMode(13,OUTPUT);//定义引脚13为输出模式
}
voidloop()//连续执行函数内的语句
{
if(digitalRead
(1)==HIGH)//按键1按下
{
delay(20);//延时20ms去抖动
if(digitalRead
(1)==HIGH)//按键1按下
{
digitalWrite(13,!
digitalRead(13));//使用逻辑非运算符!
,引脚13的状态翻转
while(digitalRead
(1)==HIGH);//等待按键松手
}
}
}
/*方法2:
*/
/*使用上拉电阻,低电平有效*/
voidsetup()//初始化变量,管脚模式,调用库函数等
{
pinMode(1,INPUT_PULLUP);//定义引脚1为输入模式,并启用内部上拉功能
pinMode(13,OUTPUT);//定义引脚13为输出模式
}
voidloop()//连续执行函数内的语句
{
if(digitalRead
(1)==LOW)//按键1按下
{
delay(20);//延时20ms去抖动
if(digitalRead
(1)==LOW)//按键1按下
{
digitalWrite(13,!
digitalRead(13));//使用逻辑非运算符!
,引脚13的状态翻转
while(digitalRead
(1)==LOW);//等待按键松手
}
}
}
/*实例八:
串口通讯*/
/*使用Arduino自带的串口调试器,在串口输出“Helloworld!
”*/
voidsetup()
{
Serial.begin(9600);//初始化串口参数,设置波特率为9600
}
voidloop(){
Serial.println("Helloworld!
");//打印“Helloworld!
”到串口
delay(2000);//延时2秒
}