极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 迷你强

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

  [复制链接]
发表于 2012-7-24 17:53:22 | 显示全部楼层
弘毅 发表于 2012-7-24 17:46
蓝色那个线需要接GND,你这里是接到了AREF,所以才会有此问题。

图片不是很清楚,我接的是GND
回复 支持 反对

使用道具 举报

发表于 2012-7-24 18:00:53 | 显示全部楼层
迷你强 发表于 2012-7-24 17:48
请看此图,地线和电源线中间部分是断开的(需要自己跳线连接),因为下拉电阻没有接地,所以会出现干 ...

按照迷你强的图中间连线了,但是现在按开关灯又不亮了,我试试换个开关看看
回复 支持 反对

使用道具 举报

发表于 2012-7-24 18:03:10 | 显示全部楼层
呵呵,是开关坏了~~~感谢老鸟这么对菜鸟负责啊!!谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-24 18:09:33 | 显示全部楼层
乐_乐(顺) 发表于 2012-7-24 18:03
呵呵,是开关坏了~~~感谢老鸟这么对菜鸟负责啊!!谢谢!


有问题多交流,才能解决问题,哈哈,知识就是这么涨的,不过开关这玩意应该是没插接好,接触不良,这个东西坏的可能性很小啊。。。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-25 16:44:55 | 显示全部楼层
迷你强 发表于 2012-7-24 18:09
有问题多交流,才能解决问题,哈哈,知识就是这么涨的,不过开关这玩意应该是没插接好,接触不良,这个 ...

是的,昨天晚上又重新拿那个坏的试了试,是接触不好,没完全按下去~
回复 支持 反对

使用道具 举报

发表于 2012-9-19 18:47:55 | 显示全部楼层
好东西,支持楼主!
回复 支持 反对

使用道具 举报

发表于 2012-9-19 18:55:01 | 显示全部楼层
好东西,顶~
回复 支持 反对

使用道具 举报

发表于 2012-9-26 21:56:36 | 显示全部楼层
开关部分完全开路,但是还是会闪烁怎么回事啊
回复 支持 反对

使用道具 举报

发表于 2012-9-26 22:00:27 | 显示全部楼层
原来是开关没接+5V,接地了,看来还是要挂一个原理图最好啊

http://wenku.baidu.com/view/86859885ec3a87c24028c48c.html
回复 支持 反对

使用道具 举报

发表于 2012-9-29 23:29:41 | 显示全部楼层
按键也可以接在数字口上,读取数字口的数字值,判断是否按键接通。
回复 支持 反对

使用道具 举报

发表于 2012-9-29 23:31:17 | 显示全部楼层
按键如果接在数字口上,就不用加10K的上拉电阻了吧?这个上拉电阻的作用是什么啊?
回复 支持 反对

使用道具 举报

发表于 2012-9-29 23:36:28 | 显示全部楼层
花开无痕 发表于 2012-9-29 23:31
按键如果接在数字口上,就不用加10K的上拉电阻了吧?这个上拉电阻的作用是什么啊?

这里做了个下拉,接数字口也需要,主要是为了防止悬空时干扰信号。
回复 支持 反对

使用道具 举报

发表于 2012-10-5 21:44:32 | 显示全部楼层
本帖最后由 nonames 于 2012-10-5 21:45 编辑

@迷你强
强哥 为啥我这个电路我把按钮开关部分开路或者把下拉电阻去掉这个LED就不断闪烁啊?照道理4号端口应该是低电平的
另外 我对下拉电阻抗干扰的作用不是很懂 能否给点资料或者链接看看?谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-6 18:09:01 | 显示全部楼层
nonames 发表于 2012-10-5 21:44
@迷你强
强哥 为啥我这个电路我把按钮开关部分开路或者把下拉电阻去掉这个LED就不断闪烁啊?照道理4号端口 ...

下拉就是将干扰信号引向GND。。因为,接口插上导线就是天线,会受各式各样的电磁波干扰产生电平
回复 支持 反对

使用道具 举报

发表于 2012-10-19 22:18:57 | 显示全部楼层
楼主提到的那个 用两个按钮控制流水灯方向的码  不知道有没有简写
void setup()
{
  pinMode(13,INPUT);
  pinMode(12,INPUT);
  for(int i=2;i<=7;i++)
  {
    pinMode(i,OUTPUT);
  }
}
void loop()
{
  int n=digitalRead(13);
  int m=digitalRead(12);
  if(n==HIGH)
  {
    for(int x=2;x<=7;x++)
    {
      digitalWrite(x,HIGH);
      delay(300);
      digitalWrite(x,LOW);
      delay(300);
    }
   }
   if(m==HIGH)
    {
      for(int x=7;x>=2;x--)
      {
       digitalWrite(x,HIGH);
       delay(300);
       digitalWrite(x,LOW);
       delay(300);
      }
     }
}
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 10:01 , Processed in 0.047866 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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