极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 迷你强

Arduino入门教程--第四课--按钮控制的LED延时开关

  [复制链接]
发表于 2012-11-1 23:41:03 | 显示全部楼层
/*
作者:极客工坊
时间:2012年5月24日
IDE版本号:1.0.1
发布地址:www.geek-workshop.com
作用:当你按下按钮后1秒钟,灯会亮,然后维持5秒钟,熄灭
*/

void setup ()
{
  pinMode(4,INPUT);                 //将4号数字口设置为输入状态,13号数字口设置为输出状态
  pinMode(13,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(10,OUTPUT);


}

void loop()
{
  int n =digitalRead(4);                   //创建一个变量n,将4号数字口的状态采集出来赋值给他。
  if (n==HIGH)                             //判断n是否为高电平,如果是执行下面的语句,不是则跳过。
  {

    delay(1000);
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);
    delay(1000);
    digitalWrite(12,HIGH);
    delay(1000);
    digitalWrite(12,LOW);
    delay(1000);
    digitalWrite(11,HIGH);
    delay(1000);
    digitalWrite(11,LOW);
    delay(1000);
    digitalWrite(10,HIGH);
    delay(1000);
    digitalWrite(10,LOW);

}
}
回复 支持 反对

使用道具 举报

发表于 2012-11-19 13:08:05 | 显示全部楼层
原来没学过电子方面的知识

请问一下,高电平是什么意思?低电平是什么意思?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-19 14:32:51 | 显示全部楼层
laofuz1024 发表于 2012-11-19 13:08
原来没学过电子方面的知识

请问一下,高电平是什么意思?低电平是什么意思?

低电平的意思就是和地线的点位保持一致,地线作为一个参考电位(0电位),犹如大海的海平面,比他高的就叫高电平。。和他一样的就叫低电平。额,解释的有点乱。求高手指正   (还有一种情况就是-5V之类的电源,这个貌似叫负高电平)
回复 支持 反对

使用道具 举报

发表于 2012-11-19 15:38:53 | 显示全部楼层
迷你强 发表于 2012-11-19 14:32
低电平的意思就是和地线的点位保持一致,地线作为一个参考电位(0电位),犹如大海的海平面,比他高的就叫 ...

呵呵,谢谢,那地线是不是本例中蓝色那条线,接上一个电阻的?,本人没有电子电路的知识,现在正从头学起呢,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-19 16:49:08 | 显示全部楼层
laofuz1024 发表于 2012-11-19 15:38
呵呵,谢谢,那地线是不是本例中蓝色那条线,接上一个电阻的?,本人没有电子电路的知识,现在正从头学起 ...

推荐一本书《身边的电子学》老外写的那本,当当京东亚马逊啥的都有售
回复 支持 反对

使用道具 举报

发表于 2012-11-19 17:05:01 | 显示全部楼层
迷你强 发表于 2012-11-19 16:49
推荐一本书《身边的电子学》老外写的那本,当当京东亚马逊啥的都有售

嗯,好的,就是论坛里面贴子上的第一本吧,36个小实验的那个吧?已经下载有pdf版了,正在看呢,不过还没有那么多工具做实验....谢谢!!!
回复 支持 反对

使用道具 举报

发表于 2012-12-10 19:13:27 | 显示全部楼层
我试了试可不可以读取输出口的状态。结果还真行。。我做的这个意思是按一下按钮灯亮,再按一下灯灭。。。可是有时候按钮会不大好使。。。还有按下按钮的时候灯会变暗。怎么回事?
  1. void setup ()
  2. {
  3.   pinMode(4,INPUT);            
  4.   pinMode(13,OUTPUT);
  5. }

  6. void loop()
  7. {
  8.   int n =digitalRead(4);
  9.   int x =digitalRead(13);
  10.   if (n==HIGH)                        
  11.   {
  12.     if (x==LOW)
  13.     {
  14.       digitalWrite(13,HIGH);
  15.     }
  16.     if (x==HIGH)
  17.     {
  18.       digitalWrite(13,LOW);
  19.     }
  20.   }

  21. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2012-12-10 19:17:24 | 显示全部楼层
Haley 发表于 2012-12-10 19:13
我试了试可不可以读取输出口的状态。结果还真行。。我做的这个意思是按一下按钮灯亮,再按一下灯灭。。。可 ...

参考这篇帖子里的消抖部分,做一下按键消抖。
http://www.geek-workshop.com/thread-74-1-1.html
回复 支持 反对

使用道具 举报

发表于 2013-1-1 15:22:03 | 显示全部楼层
强哥!如果我想用两个开关来控制灯的亮和灭 比如收我按下一个开关灯是亮的,再按另一个开关灯由亮变灭 怎么来啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-1 16:03:14 | 显示全部楼层
不会放弃 发表于 2013-1-1 15:22
强哥!如果我想用两个开关来控制灯的亮和灭 比如收我按下一个开关灯是亮的,再按另一个开关灯由亮变灭 怎么 ...

if 接口1 为 高电平  则灯亮。 再if接口2这么弄不就行了
回复 支持 反对

使用道具 举报

发表于 2013-1-20 12:47:00 | 显示全部楼层
/*
作用:用两个按钮控制流水灯方向
*/
void setup()
{
     pinMode(50,INPUT);
     pinMode(51,INPUT);   
     for (int i=30; i<=37; i++)    //通过循环的方式设置30-37号引脚为输出状态
    {
     pinMode(i,OUTPUT);
    }
}
void loop()
{
   int z =digitalRead(50);                  
   int f=digitalRead(51);
    if (z==HIGH  )
      {
       for (int x=30; x<=37; x++)   //通过循环的方式依次让每个引脚的led在1秒内完成明灭
           {
            digitalWrite(x,HIGH);
            delay(500);
            digitalWrite(x,LOW);
             delay(500);
           }
     }
   if (f==HIGH )
     {
       for (int x=37; x>=30; x--)   //通过循环的方式依次让每个引脚的led在1秒内完成明灭
           {
            digitalWrite(x,HIGH);
            delay(500);
            digitalWrite(x,LOW);
            delay(500);
          }
   }

}
回复 支持 反对

使用道具 举报

发表于 2013-1-29 20:05:55 | 显示全部楼层
问一下,pin脚悬空是不是就等于接地了啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-29 22:41:35 | 显示全部楼层
Bravo!东东 发表于 2013-1-29 20:05
问一下,pin脚悬空是不是就等于接地了啊?

悬空就是悬空,悬空会受到干扰
回复 支持 反对

使用道具 举报

发表于 2013-1-30 22:24:39 | 显示全部楼层
迷你强 发表于 2013-1-29 22:41
悬空就是悬空,悬空会受到干扰

哦哦,懂了
回复 支持 反对

使用道具 举报

发表于 2013-2-5 19:13:53 | 显示全部楼层
多谢老鸟的支持
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 22:28 , Processed in 0.047805 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表