こんにちは。駆け出しエンジニアのまっきーです。ラズパイを使って日々勉強しています。
使用言語はC言語です。
前置きが長くなりましたが、早速始めていきます!
初期設定(OS,WiringPIのダウンロード)は終了していることを前提とします。
参考にできそうなリンクを張っておきます。
・OSのインストール(*スターターキットを購入した場合はこの手順はスキップできます。)
まずは電子回路です。
GPIO23 ⇒ 抵抗 ⇒ LED ⇒ GND (抵抗、LEDは逆でも良い)というように
つながっていれば問題ないです。
抵抗は1000Ωのものを使用しています。理想値は400Ωほどですが、家になかったため少し大きくなってしまいました。よほど大きいものでない限りは大丈夫です!
次にプログラムを書いていきます。今回は5回連続で点灯させたいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> #include <wiringPi.h>//WiringPiを使うための記述 int main(void){ int i; wiringPiSetupGpio();//WiringPiの初期化 pinMode(23,OUTPUT);//pinMode(GPIO番号、OUTPUTorINPUT) for(i = 0;i<5;i++){ digitalWrite(23,HIGH);//digitalWrite(GPIO番号、HIGHorLOW) delay(500); digitalWrite(23,LOW); delay(500); } return 0; } |
これを、Geanyでコンパイル、実行すると....
LEDを点灯させることができました!
今回押さえておきたいのはこの3つです。これらはWiringPiのライブラリ関数です。
- wiringPiSetupGpio()
- pinMode(23,OUTPUT)
- digitalWrite(23,HIGH)
RaspberryPiの基本的な制御はpythonで行うことが多いみたいですが、
この書籍を活用すればC言語初心者でも十分制御できそうですね!
次に自分なりに少しアレンジをしてみました。
LED 4つを連続で点灯させるプログラムです。
電子回路の接続方法は数を増やしただけなので上のものと同じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <stdio.h> #include <wiringPi.h> int main(void){ int gpio[] = {23,24,25,26}; int i; wiringPiSetupGpio(); for(i = 0;i < 4;i++){ pinMode(gpio[i],OUTPUT); } while(1){ for(i = 0;i < 4;i++){ digitalWrite(gpio[i],HIGH); delay(100); digitalWrite(gpio[i],LOW); delay(100); } } return 0; } |
連続で光らせることができました!
ただ光らせるだけでも、いろいろなことができそうですね!
次回は、スイッチと対応させていきたいと思います。
ありがとうございました!
本記事掲載内容等はこちらを参考にしながら書いています。
参考にさせて頂いた書籍は「C言語ではじめる RaspberryPi 徹底入門」という書籍です。
初心者にもとても分かりやすく、おすすめです!