首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从LDR获取值

从LDR获取值
EN

Stack Overflow用户
提问于 2011-03-28 02:24:37
回答 1查看 385关注 0票数 0

我使用的是picdem 18F4550和microchip v8.63和c编译器。我使用的组件是:-3个leds (红、绿、蓝);-一个LDR (327700 NORPS-12 farnell)。

我已经连接了3个leds (红色,绿色和蓝色),在RB4,RB5和RB6上作为输出。我还在RB1上连接了LDR。

我的问题是,当另一个led的绿灯亮起时,我如何在我的代码中检索LDR测量的值?

我包含了我的代码:

代码语言:javascript
复制
#include "p18cxxx.h"
#pragma config WDT = OFF 

void main(void) 
{ 
    // turn off all LED latches 
    LATDbits.LATD0 = 0; 
    LATDbits.LATD1 = 0; 
    LATDbits.LATD2 = 0; 
    // make port d bits which drive LEDs outputs 
    TRISDbits.TRISD0 = 0; 
    TRISDbits.TRISD1 = 0; 
    TRISDbits.TRISD2 = 0;

    TRISB = 0;
    // RB port output.
    PORTB = 0;
    PORTB = 0b10001111; // 0b01011010

    if(PORTBbits.RB4 == 0) {
        LATDbits.LATD0 = 1;     
    }
    if(PORTBbits.RB5 == 0) {
        LATDbits.LATD1 = 1;
    }
    if(PORTBbits.RB6 == 0) {
        LATDbits.LATD2 = 1;
    }   
    if(PORTBbits.RB1 == 1) {

    }
    while(1) {
        ;
    }   
}
EN

回答 1

Stack Overflow用户

发布于 2011-07-26 08:41:27

假设您正在将LDR连接到配置为GPIO的引脚。适用于GPIO引脚的电压阈值。引脚上读取的值取决于LDR的电阻,其摆动宽度足以产生逻辑低电平和逻辑高电平。您很可能希望将LDR连接到PIC A/D引脚,而不是GPIO。使用ADCON配置A/D。设置A/D进行转换,并等待A/D完成中断。然后读取产生LDR模拟电压的ADRESH和ADRESL。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5451300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档