注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
1.1.1 点滅LED
前書き
このレッスンでは、プログラミングによってLEDを点滅させる方法を学習する。設定により、LEDは一連の興味深い現象を生成できる。今、行動しよう。
部品

注釈
スムーズに進めるには、独自のRaspberry Pi、TFカード、およびRaspberry Piの電源を用意する必要がある。
原理
ブレッドボード
ブレッドボードは、電子装置のプロトタイピングの構築基盤である。それは回路設計を完了する前に、回路を迅速に作って、テストするために使用される。また、上記の部品をICや抵抗器、ジャンパー線などのように挿入できる多くの穴が搭載されている。ブレッドボードを使用すると、部品を簡単に差し込んだり、取り外したりすることができる。
この写真は、full +ブレッドボードの内部構造を示している。ブレッドボード上のこれらの穴は互いに独立しているように見えるが、実際には内部で金属ストリップを介して互いに接続されている。

LED
LEDは一種のダイオードである。LEDの長いピンが正極に接続され、短いピンが負極に接続されている場合にのみ、LEDが点灯する。
LEDを電源に直接接続することはできないため、部品に損傷を与える可能性がある。160Ω以上の抵抗(5V動作電圧)は、LEDの回路に直列に接続する必要がある。
抵抗器
抵抗器は、分岐電流を制限できる電子素子である。固定抵抗器は抵抗値を変更できない抵抗器の一種であるが、ポテンショメータまたは可変抵抗器の抵抗値は調整できる。
このキットには固定抵抗器が適用される。回路では、接続された部品を保護することは重要である。次の図は、実際の物体、220Ω抵抗器、および抵抗器汎用の二つの回路記号を示している。Ωは抵抗値の単位で、より大きな単位はKΩ、MΩなどである。それらの関係は次のように示している:1M= 1000KΩ、1KΩ=1000Ω。通常、抵抗値はマークされている。したがって、回路にこれらの記号が表示される場合、抵抗があることを意味する。

抵抗器を使用する場合、まず抵抗値を知る必要がある。以下の二つの方法がある:抵抗の帯域を観察すること、またはマルチメーターを使用して抵抗を測定すること。より便利で迅速なので、一番目の方法をお勧めする。値を測定するには、マルチメーターを使用してください。
カードに示されているように、各色は数字を表している。

回路図
この実験では、まず220Ωの抵抗器を陽極(LEDの長いピン)に接続し、それから抵抗器を3.3 Vの電源に接続し、LEDの陰極(短いピン)をRaspberry PiのGPIO17に接続する。したがって、LEDをオンにするには、GPIO17を低(0V)レベルにする必要がある。プログラミングを通じてこの現象を取得できる
注釈
Pin11 はRaspberry Piの左から11番目のピンを指し、それに対応する wiringPi と BCM のピン番号は以下の表の通りです。
C言語関連のコンテンツでは、wiringPiでGPIO0を0と同等にする。Python言語関連のコンテンツの中で、BCM 17は次の表のBCM列の17である。同時に、それらはRaspberry Piの11番目のピン-ピン11と同じである。
T-Board Name |
physical |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |

実験手順
ステップ1: 回路を作る。

ステップ2: コードのフォルダーに入る。
モニターを使用する場合は、次の手順を実行することをお勧めする。
~/
に入り、 davinci-kit-for-raspberry-pi
フォルダーを見つけてください。
フォルダー内で C を見つけて右クリックし、** Open in Terminal** を選択する。

それから以下のようなウィンドウがポップアップされる。これで、コード 1.1.1_BlinkingLed.c
のパスに入っていた。

次のレッスンでは、右クリックの代わりにコマンドを使用してコードファイルを入力する。ただし、お好みの方法を選択可能である。
Raspberry Piにリモートでログインする場合、
cd
を使用してディレクトリを変更する:
cd ~/davinci-kit-for-raspberry-pi/c/1.1.1/
注釈
この実験では、cdを使用してディレクトリをコードのパスに変更します。
どちらにしても、現在は C フォルダにいることになります。この2つの方法に基づくその後の手順は同じです。次に進みましょう。
ステップ3: コードをコンパイルする.
gcc 1.1.1_BlinkingLed.c -o BlinkingLed -lwiringPi
注釈
gcc は GNU Compiler Collection です。ここでは、C言語ファイル*1_BlinkingLed.c*をコンパイルし、実行ファイルを出力するような機能を持っています。
コマンドでは、 -o
は出力を意味し( -o
の直後の文字はコンパイル後のファイル名出力であり、 BlinkingLed
という名前のEXEファイルがここで生成される)、 -lwiringPi
はライブラリー
のwiringPiをロードする( l
はlibraryの省略形である)。
ステップ4: 前のステップで出力されたEXEファイルを実行する。
sudo ./BlinkingLed
注釈
GPIOを制御するには、コマンド sudo
(superuser do)でプログラムを実行してください。コマンド ./
は現在のディレクトリを示している。コマンド全体は、現在のディレクトリで BlinkingLed
を実行することである。

コードの実行後、LEDが点滅する。
注釈
実行しても動作しない場合、または「wiringPi.h: No such file or directory」というエラー プロンプトが表示される場合は、Cコードが機能していませんか? を参照してください。
コードファイル 1.1.1_BlinkingLed.c
を編集する場合は、 Ctrl + C
を押してコードの実行を停止する。次に、次のコマンドを入力してそれを開く:
nano 1.1.1_BlinkingLed.c
注釈
nanoはテキストエディターツールである。このコマンドは、このツールを通して、コードファイル 1.1.1_BlinkingLed.c
を開くために使用される。
Ctrl + X
を押して終了する。コードを修正した場合、変更を保存するかどうかを尋ねるプロンプトが表示される。 Y
(保存)または N
(保存しない)を入力する。
次に、 Enter
キーを押して終了する。 ステップ3
と ステップ4
を繰り返して、修正後の効果を確認する。

コード
プログラムコードは次のように表示される:
#include <wiringPi.h>
#include <stdio.h>
#define LedPin 0
int main(void)
{
// When initialize wiring failed, print message to screen
if(wiringPiSetup() == -1){
printf("setup wiringPi failed !");
return 1;
}
pinMode(LedPin, OUTPUT);// Set LedPin as output to write value to it.
while(1){
// LED on
digitalWrite(LedPin, LOW);
printf("...LED on\n");
delay(500);
// LED off
digitalWrite(LedPin, HIGH);
printf("LED off...\n");
delay(500);
}
return 0;
}
コードの説明
include <wiringPi.h>
ハードウェアドライブライブラリは、Raspberry PiのC言語用に設計されている。このライブラリを追加すると、ハードウェアの初期化、およびI/Oポート、PWMなどの出力に役立つ。
#include <stdio.h>
標準I/Oライブラリ。画面に表示されるデータの印刷に使用されるpintf機能は、このライブラリによって実現される。他にも多くのパフォーマンス機能がある。
#define LedPin 0
T_Extension BoardのGPIO17ピンは、wiringPiのGPIO0に対応している。GPIO0をLedPinに割り当て、LedPinは後のコードでGPIO0を表す。
if(wiringPiSetup() == -1){
printf("setup wiringPi failed !");
return 1;
これにより、wiringPiが初期化され、呼び出しのプログラムがwiringPiピン番号スキームを使用することになると想定される。
この関数を呼び出すには、ルート権限が必要である。配線の初期化に失敗すると、画面にメッセージが表示される。 関数「return」は現在の関数から飛び出すために使用される。main()関数で関数「return」を使用すると、プログラムが終了する。
pinMode(LedPin, OUTPUT);
LedPinを出力として設定し、値を書き込む。
digitalWrite(LedPin, LOW);
GPIO0を0V(低レベル)に設定SURU。LEDの陰極はGPIO0に接続されているため、GPIO0が低レベルに設定されるとLEDが点灯する。 それに反して、GPIO0を高レベルに設定すると(digitalWrite(LedPin、HIGH)):LEDが消灯する。
printf("...LED off\n");
printf関数は標準ライブラリ関数であり、その関数プロトタイプはヘッダーファイル「stdio.h」にあります。 呼び出しの一般的な形式は次のとおりです。 printf("フォーマット制御文字列"、出力テーブルの列)。 フォーマット制御文字列は、フォーマット文字列と非フォーマット文字列に分けられる出力フォーマットを指定するために使用されます。フォーマット文字列は「%」で始まり、 10進整数出力の場合は「%d」などのフォーマット文字が続きます。 フォーマットされていない文字列はプロトタイプとして印刷されます。 ここで使用されているのは、フォーマットされていない文字列であり、その後に改行文字である 「\n」 が続きます。これは、文字列を印刷した後の自動行折り返しを表します。
delay(500);
Delay (500) は、現在のHIGHまたはLOW状態を500ms維持する。
これは、プログラムを一定期間中断する機能である。また、プログラムの速度はハードウェアによって決まる。ここで、LEDをオンまたはオフにする。 遅延機能がない場合、プログラムはプログラム全体を非常に高速で実行し、継続的にループする。そのため、プログラムの作成とデバッグに役立つ遅延機能が必要である。
return 0;
通常、メイン関数の後ろに配置され、関数が正常に実行されると0を返すことを示す。