arduino学习笔记1 hello world和LED灯的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangjiali12011/article/details/78326985

ps.每个例程实验第一组是购买arduino是附赠的例程代码,第二组是在原基础上进行修改的练习

1.Hello World!

只需要arduino uno板一块

int val;//定义变量val
int ledpin=3;//定义数字接口13
void setup()
{
  Serial.begin(9600);//设置波特率为9600
  pinMode(ledpin,OUTPUT);//设置数字13 口为输出接口
}
void loop()
{
  val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val
  if(val=='H')//判断接收到的指令或字符是否是“H”。
  {//如果接收到的是“H”字符
    digitalWrite(ledpin,HIGH);//点亮数字13 口LED。
    delay(500);
    digitalWrite(ledpin,LOW);//熄灭数字13 口LED
    delay(500);
    Serial.println("Hello World!");//显示“Hello World!”字符串
  }
}


上传后在串口编辑器发送“H”,就能看到arduino自带的13口LED灯闪烁,然后串口编辑器显示“Hello World!"


在以上基础进行修改(除板子外还需要少许面包板跳线,一个220欧电阻,一个LED灯)

int val;//定义变量val
int Base=2;//定义数字接口2
void setup()
{
  Serial.begin(9600);//设置波特率为9600
  pinMode(Base,OUTPUT);//设置数字13 口为输出接口
}
void loop()
{
  val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val
  if(val=='H')//判断接收到的指令或字符是否是“R”。
  {//如果接收到的是“H”字符
    digitalWrite(Base,HIGH);//点亮外接的LED
    delay(1000);//延时
    digitalWrite(Base,LOW);//熄灭外接的LED
    delay(1000);//延时
    Serial.println("Hello World!");//显示“Hello World!”字符串
  }
}



接线如下图所示,电阻为220欧

此时,在串口监视器键入“H”是则会看到,外接的LED灯闪烁一下,然后屏幕上输出“Hello World!"


2.流水灯

ps.接线方式基本一致,只是灯的数量不同

此处需要:arduino板,面包板跳线若干,6个LED灯,6个220欧电阻

int BASE = 2 ;  //第一颗 LED 接的 I/O 脚
int NUM = 6;   //LED 的总数
int i=0;
void setup()
{
   for (int i = BASE; i < BASE + NUM; i ++) 
   {
     pinMode(i, OUTPUT);   //设定数字I/O脚为输出
   }
}

void loop()
{
   for (i = BASE; i < BASE + NUM; i =i+2) 
   {
     digitalWrite(i, LOW);    //设定数字I/O脚出为"低",即顺序熄灭
     delay(200);        //延时
   }
   for (i = BASE; i < BASE + NUM; i ++) 
   {
     digitalWrite(i, HIGH);    //设定数字I/O脚输出为"高",即顺序点亮
     delay(200);        //延时
   }  
}

上传后可看到效果为:六个LED灯从右往左依次点亮,再从右往左依次熄灭。


在此基础上进行修改


int BASE = 2 ;  //第一颗 LED 接的 I/O 脚
int NUM = 4;   //LED 的总数
int i=0;
void setup()
{
   for (int i = BASE; i < BASE + NUM; i ++) 
   {
     pinMode(i, OUTPUT);   //设定数字I/O脚为输出
   }
}

void loop()
{
    for (i = BASE; i < BASE + NUM; i ++) 
   {
     digitalWrite(i, HIGH);    //从右往左点亮
     delay(200);        //延时
   }  
    for (i = BASE+3; i < BASE + NUM; i --) 
   {
     digitalWrite(i, LOW);    //从左往右熄灭
     delay(200);        //延时
   }
  
}

此处将六个灯减为四个灯,上传后可看到LED灯由右至左依次点亮,然后由左往右顺次熄灭。


3.交通灯

ps.两组接线图一致

int redled =10; //定义数字10 接口
int yellowled =7; //定义数字7 接口
int greenled =4; //定义数字4 接口
void setup()
{
  pinMode(redled, OUTPUT);//定义红色小灯接口为输出接口
  pinMode(yellowled, OUTPUT); //定义黄色小灯接口为输出接口
  pinMode(greenled, OUTPUT); //定义绿色小灯接口为输出接口
}
void loop()
{
  digitalWrite(redled, HIGH);//点亮红色小灯
  delay(1000);//延时1 秒
  digitalWrite(redled, LOW); //熄灭红色小灯
  digitalWrite(yellowled, HIGH);//点亮黄色小灯
  delay(200);//延时0.2 秒
  digitalWrite(yellowled, LOW);//熄灭黄色小灯
  digitalWrite(greenled, HIGH);//点亮绿色小灯
  delay(1000);//延时1 秒
  digitalWrite(greenled, LOW);//熄灭绿色小灯
}


此例程的效果是,红色小灯点亮一秒,熄灭,黄色小灯点亮0.2秒,熄灭,绿色小灯点亮1秒熄灭。这个过程循环。


在此基础上进行修改,使延时加长便于观察。并且按照红灯→红黄同亮→绿灯→黄灯→红灯,这样的循环来使LED灯的闪烁更符合现实。



修改后代码如下

int redled =10; //定义数字10 接口为红灯
int yellowled =7; //定义数字7 接口为黄灯
int greenled =4; //定义数字4 接口为绿灯
void setup()
{
  pinMode(redled, OUTPUT);//定义红色小灯接口为输出接口
  pinMode(yellowled, OUTPUT); //定义黄色小灯接口为输出接口
  pinMode(greenled, OUTPUT); //定义绿色小灯接口为输出接口
}
void loop()
{
  digitalWrite(redled, HIGH);// 红灯亮
  delay(1200);//延时1.2 秒
  digitalWrite(yellowled, HIGH);//在红灯亮1.2秒,黄灯亮
  delay(800);//延时0.8 秒
  digitalWrite(yellowled, LOW);
  digitalWrite(redled, LOW);//黄灯红灯一起灭
  digitalWrite(greenled, HIGH);//绿灯亮
  delay(1200);//延时1.2 秒
  digitalWrite(greenled, LOW);//绿灯灭
  digitalWrite(yellowled, HIGH);//黄灯亮
  delay(800);//延时0.8 秒
  digitalWrite(yellowled, LOW);//黄灯灭
}


接线图如下

 
 

此时可以看到LED灯类似真实的交通灯规律闪烁。



猜你喜欢

转载自blog.csdn.net/zhangjiali12011/article/details/78326985