簡體   English   中英

從LDR獲得價值

[英]Get value from LDR

我正在將picdem 18F4550與微芯片v8.63和c編譯器一起使用。 我使用的組件是:-3個LED(紅色,綠色,藍色); -LDR(327700 NORPS-12 Farnell)。

我已經在RB4,RB5和RB6上連接了3個LED(紅色,綠色和藍色)作為輸出。 我還將LDR連接到RB1。

我的問題是,當另一個LED的綠色點亮時,如何獲取LDR測量的代碼中的值?

我包括了我的代碼:

#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) {
        ;
    }   
}

假設您將LDR連接到配置為GPIO的引腳。 GPIO引腳的電壓閾值適用。 引腳上讀取的值取決於LDR的電阻擺幅足夠大,以產生邏輯低電平和邏輯高電平。 您很可能希望將LDR連接到PIC A / D引腳而不是GPIO。 使用ADCON來配置A / D。 設置A / D進行轉換,並等待A / D完成中斷。 然后讀取ADRESH和ADRESL,它們產生LDR的模擬電壓。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM