注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!

3.1.5 バッテリーインジケーター

前書き

このコースでは、LEDバーグラフにバッテリーレベルを視覚的に表示できるバッテリー指示装置を作成する。

部品

../_images/list_Battery_Indicator1.png

回路図

T-Board Name

physical

wiringPi

BCM

GPIO17

Pin 11

0

17

GPIO18

Pin 12

1

18

GPIO27

Pin 13

2

27

GPIO25

Pin 22

6

25

GPIO12

Pin 32

26

12

GPIO16

Pin 36

27

16

GPIO20

Pin 38

28

20

GPIO21

Pin 40

29

21

GPIO5

Pin 29

21

5

GPIO6

Pin 31

22

6

GPIO13

Pin 33

23

13

GPIO19

Pin 35

24

19

GPIO26

Pin 37

25

26

../_images/Schematic_three_one51.png

実験手順

ステップ1: 回路を作る。

../_images/image2481.png

ステップ2: コードのフォルダーに入る。

cd ~/davinci-kit-for-raspberry-pi/c/3.1.5/

ステップ3: コードをコンパイルする。

gcc 3.1.5_BatteryIndicator.c -lwiringPi

ステップ4: EXEファイルを実行する。

sudo ./a.out

プログラムの実行後、ADC0834の3番目のピンとGNDに個別にリード線を配線し、 それらを別々にバッテリーの2つの極に導く。 LEDバーグラフの対応するLEDが点灯し、電力レベルが表示される(測定範囲:0〜5V)。

コードの説明

void LedBarGraph(int value){
    for(int i=0;i<10;i++){
        digitalWrite(pins[i],HIGH);
    }
    for(int i=0;i<value;i++){
        digitalWrite(pins[i],LOW);
    }
}

この機能は、LED棒グラフの10個のLEDの点灯/消灯を制御するために機能する。 これらの10個のLEDを最初にオフにするために高レベルを指定し、 次に受信したアナログ値を変更することでいくつのLEDを点灯させるかを決定する。

int main(void)
{
    uchar analogVal;
    if(wiringPiSetup() == -1){ //when initialize wiring failed,print messageto screen
        printf("setup wiringPi failed !");
        return 1;
    }
    pinMode(ADC_CS,  OUTPUT);
    pinMode(ADC_CLK, OUTPUT);
    for(int i=0;i<10;i++){       //make led pins' mode is output
        pinMode(pins[i], OUTPUT);
        digitalWrite(pins[i],HIGH);
    }
    while(1){
        analogVal = get_ADC_Result(0);
        LedBarGraph(analogVal/25);
        delay(100);
    }
    return 0;
}

analogVal は、さまざまな電圧値(0-5V)で値(0-255)を生成する。 たとえば、バッテリーで3Vが検出されると、対応する値 152 が電圧計に表示される。

LED棒グラフの10個のLEDはanalogVal測定値を表示するために使用される。255/10 = 25。 したがって、25ごとにアナログ値が増加し、もう1つのLEDが点灯する。