查看: 237|回复: 4

[已解决] 在pinMode中对开关设置INPUT和OUTPUT有什么区别

[复制链接]
  • TA的每日心情
    开心
    2020-6-30 08:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-7-13 11:11 | 显示全部楼层 |阅读模式
    本帖最后由 baiya 于 2020-7-14 07:51 编辑

    我发现这个程序(按下开关过两秒点亮LED)对开关设置INPUT和OUTPUT不影响结果。

    1. int buttonPin = 2;
    2. int ledPin = 13;
    3. int buttonState = 0;

    4. void setup()
    5. {
    6.   // 初始化I/O口
    7.   pinMode(buttonPin,INPUT);
    8.   pinMode(ledPin,OUTPUT);
    9.   Serial.begin(9600);
    10. }

    11. void loop()
    12. {
    13.   buttonState = digitalRead(buttonPin);
    14.   if(buttonState==HIGH)
    15.   {
    16.     delay(2000);
    17.     digitalWrite(ledPin,HIGH);
    18.   
    19.   }
    20. }
    21.   

    复制代码
  • TA的每日心情
    慵懒
    2020-7-20 15:04
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2020-7-13 14:42 | 显示全部楼层
    怎么简单的问题,我竟然答不上来~~一直是这么用的,没研究过为什么  
  • TA的每日心情
    开心
    2020-8-11 05:09
  • 签到天数: 646 天

    [LV.9]以坛为家II

    发表于 2020-7-13 17:02 | 显示全部楼层
    因为对输出口是可以读取其状态的,所以没有影响程序结果,但你将端口2设定为输出时就不能再随便写高低电平了,此时你若再将高低电平(除非有限流)就会烧毁端口,也就是端口状态是不取决外部电平高低的,相反你若将端口13改成输入,虽然你也可写其为高电平或低电平,但能输出的电流很小,基本带不了负载。

    该用户从未签到

    发表于 2020-7-13 19:48 | 显示全部楼层
    如果你在程序中拉高电平的话,在INPUT模式下是接上拉电阻,你要硬是当输出用,那么就是个弱推挽,而在OUTPUT模式下,是接VCC的,是个强推挽。如果你在程序中拉低电平的话,在INPUT模式下是悬空,而在OUTPUT模式下,是接GND。
  • TA的每日心情
    擦汗
    2020-8-8 01:43
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2020-7-13 23:38 | 显示全部楼层
    這個除了程式以外,也要看你的線路怎麼接,
    因為樓主沒貼出電路,難以進一步說明

    不明究理的亂宣告,好運一點就覺得沒差,
    歹運一點就燒掉 PORT,所以養成正確
    宣告的習慣很重要

    不相信? 你把 PIN2 宣告成 OUTPUT,
    digitalWrite( 2,LOW) 將輸出拉低電位,
    接個開關再接到 Vcc 去,看你開關 ON
    是讀到 PIN2 為 HIGH 還是直接燒掉 PIN2?

    我沒試過,不過我認為 PIN2 會燒掉 XD
    因為透過開關將 Vcc輸入到低電位的 PORT
    =短路→大電流→燒毀 PORT
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    未见过的TFT屏,是什么驱动芯片?
    未见过的TFT屏,是什么驱
    这两块屏是从POS机里拆的,准备做几个锂电池组电压监测,在网上没找到资料,在这里问
    win10系统显示不出端口信息,编译后显示serial port not selected。
    win10系统显示不出端口信
    求各位哥哥帮忙,小兄弟实在不懂是win10系统的原因,还是需要安装什么驱动程式?具体
    更智能的电脑远程开关机-基于继电器
    更智能的电脑远程开关机-
    我只是刚刚入门的萌新,所以有不足请指出 先展示下 功能:开关机,开关机检测,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表