ラズパイのヘッドレスでC言語を使ってLチカ
さて、このブログでのラズパイ記事も3本目。
第一弾ではヘッドレスの環境構築、第二弾ではC言語でHello World。
そして今回の第三弾は電子工作のHello WorldともいえるLチカをしちゃいます!
C言語ファイルを作成
まずは前回の要領でC言語ファイルを作成します。
細かい説明は前回の記事を参考にしてください。
1 2 3 4 |
$ mkdir c_code $ cd c_code $ touch main.c $ nano main.c |
これで c_code というディレクトリに main.c というファイルを作成しました。
これで完了!
コード入力
まずはコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <stdio.h> #include <wiringPi.h> #define PIN_LED 21 int main(void) { int i; if( wiringPiSetupGpio()==-1 ) { // wiringPiがなければ終了 puts( "wiringPi is not exist." ); return 1; } pinMode(PIN_LED, OUTPUT); while(1) { digitalWrite( PIN_LED, 1 ); delay(500); digitalWrite( PIN_LED, 0 ); delay(500); } return 0; } |
これは21番ピンを使ってLEDをチカチカさせるだけのプログラムです。
実用性は皆無ですが、マイコン系の基礎では誰もが通る道ですよね…
今回はwiringPiというライブラリを使用しているのですが、気づいた方も多いかもしれませんが、Arduinoの記述方法に似ていますね。
そのため、Arduino系のマイコンを触ったことある方はかなり使いやすいと思います。
実行
さて、実行してみましょう。
まずはコンパイルします。
1 |
$ gcc main.c -I/usr/local/include -L/usr/local/lib -lwiringPi |
前回の記事を読んでくださった方は、「gcc main.c」だけと思ったかもしれませんが、今回はかなり長いですね?
これは、wiringPiを参照するために、保存されているディレクトリを指定してあげているんです。
ここでエラーが出る場合は、
- コピー&ペーストの失敗
- wiringPiの入っている位置が違う
- wiringPiがそもそも入っていない
のどれかだと思います。
wiringPiはraspbianであればデフォルトで入っていることが多いですが、入ってない可能性もありますので、その場合は調べてみてください!
電子回路を組む
といっても、抵抗とLEDを用意して、ブレッドボード上に組めばいいのですが…
今回は21番ピンを使用します。一番右下のピンですが、場所がわからない方は、Googleで「RaspberryPi ピン」と画像検索してもらえば、画像でわかると思います。
基本的にピンの位置を見るときは、LANポートやUSBポートのある側を下として見てください。
ピンの中の40番、GPIO21という場所がそうです。
配線は、GPIO21 ⇒ 抵抗 ⇒ LED ⇒ GND
という感じでつないでください。
抵抗は適当で大丈夫ですが、私は今回470Ωを使用したのでそちらを使用してもらえればOkです!
あと、GNDに関してはどこのモノを使ってもらっても構いません。
最後に実行
1 |
$ ./a.out |
さて、最後に実行します。
これでLEDが0.5秒間隔でLEDが点滅するかと思います。
光らない場合は、プログラム部分や配線を見直してみてください!
今回のブログ曲
今回投稿中に聴いていた曲はこちら