搜索
bottom↓
回复: 15

为什么此电路芯片输出,连0603的LED灯都点不亮?

[复制链接]
(15753475)

出0入0汤圆

发表于 2021-1-30 21:32:52 | 显示全部楼层 |阅读模式

我确定程序是好使的,可以串口打印字符。我在调试的时候,发现led灯珠碰在芯片输出管脚和GND之间都只能看见超级小的一亮一灭(我程序控制的1s亮灭),直接用的电路发现只有电源电路的指示灯很亮,其他3个LED灯是直接控制管脚输出电压亮不了的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(15753384)

出0入0汤圆

 楼主| 发表于 2021-1-30 21:34:23 | 显示全部楼层
求各位大佬支招,我确实是找不出任何原因了,我第一次自己打板arduino,现在有点慌
(15753147)

出80入46汤圆

发表于 2021-1-30 21:38:20 | 显示全部楼层
本帖最后由 cne53102 于 2021-1-30 21:44 编辑

上电后IO默认初始化为输入模式,如果楼主没有将IO设置为输出,就直接控制IO的话,那么实际开关的是IO内部的一个上拉电阻,阻值还挺大,就这效果。

#include <avr/io.h>
#include <util/delay.h>

#define LED PD3

int main(void){
    DDRD |= (1 << LED); //<-u need this!
    while (1) {
        PORTD |= (1 << LED);
        _delay_ms(500);
        PORTD &= ~(1 << LED);
        _delay_ms(500);
    }
    return (0);
}
(15752744)

出0入4汤圆

发表于 2021-1-30 21:45:03 | 显示全部楼层
看下是不是刚打开,又被哪里关掉了
(15752742)

出0入0汤圆

 楼主| 发表于 2021-1-30 21:45:05 | 显示全部楼层
void setup() {
        Serial.begin(115200);
}
void loop() {
        digitalWrite(3, HIGH);
        delay(1000);
        digitalWrite(3, LOW);
        delay(1000);
        digitalWrite(4, HIGH);
        delay(1000);
        digitalWrite(4, LOW);
        delay(1000);
        digitalWrite(5, HIGH);
        delay(1000);
        digitalWrite(5, LOW);
        delay(1000);
}这是我的3个LED灯的测试程序
(15752582)

出0入0汤圆

 楼主| 发表于 2021-1-30 21:47:45 | 显示全部楼层
laujc 发表于 2021-1-30 21:45
看下是不是刚打开,又被哪里关掉了

就是灯特别弱,不仔细看都看不见
(15752534)

出0入0汤圆

 楼主| 发表于 2021-1-30 21:48:33 | 显示全部楼层
cne53102 发表于 2021-1-30 21:38
上电后IO默认初始化为输入模式,如果楼主没有将IO设置为输出,就直接控制IO的话,那么实际开关的是IO内部的 ...

同样的程序,我放在arduino uno开发板上就特别亮
(15752299)

出0入4汤圆

发表于 2021-1-30 21:52:28 | 显示全部楼层
如果灯是亮的,可能就是输入/输出模式设置有问题
试着在亮灯前将IO设置为推挽
(15752248)

出80入46汤圆

发表于 2021-1-30 21:53:19 | 显示全部楼层
yuguoyu123456 发表于 2021-1-30 21:48
同样的程序,我放在arduino uno开发板上就特别亮

那。。板子断电,万用表用测二极管档位测量LED看看亮不亮,确认下方向
(15751993)

出0入0汤圆

 楼主| 发表于 2021-1-30 21:57:34 | 显示全部楼层
cne53102 发表于 2021-1-30 21:53
那。。板子断电,万用表用测二极管档位测量LED看看亮不亮,确认下方向

二极管是对的,我的4个二极管方向相同,电源指示灯特别亮
(15751033)

出0入0汤圆

 楼主| 发表于 2021-1-30 22:13:34 | 显示全部楼层
我认为应该是LED没有配置输出模式,谢谢各位大佬,我马上去测试
(15749307)

出0入0汤圆

 楼主| 发表于 2021-1-30 22:42:20 | 显示全部楼层
谢谢大家,果然是配置问题,输出模式就行了
(15749175)

出0入0汤圆

发表于 2021-1-30 22:44:32 | 显示全部楼层
直接上程序就对了.
(15748899)

出200入2053汤圆

发表于 2021-1-30 22:49:08 | 显示全部楼层
yuguoyu123456 发表于 2021-1-30 22:42
谢谢大家,果然是配置问题,输出模式就行了

pinMode 都没调用,你跟我说程序没问题。

在 Arduino 当中这是基础吧
(15708882)

出0入0汤圆

 楼主| 发表于 2021-1-31 09:56:05 | 显示全部楼层
t3486784401 发表于 2021-1-30 22:49
pinMode 都没调用,你跟我说程序没问题。

在 Arduino 当中这是基础吧

谢谢指点
(15706513)

出0入42汤圆

发表于 2021-1-31 10:35:34 | 显示全部楼层
喜欢用Arduino的人很多都是没有专业电路基础的, 一般不怎么关注芯片的底层配置,也不怎么关注电路的细节。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-8-1 05:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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