Raspberry PiでLEDを制御する(Lチカ)
参考
http://qiita.com/toshihirock/items/880a43ff4a5506b629c5
前提
Raspberry Pi 2 +
(3でもいけるはず)
Raspberry PiにLEDを接続する
※Raspberry Piの電源が落ちている状態で実施すること。
ブレッドボードにLEDをさす。
(長い方の足が+になるのでどちらの足が長い方か覚えておく。)
※ブレッドボードの使い方は以下参照
http://bbradio.sakura.ne.jp/guide1/guide1.html
ジャンパーピンでRaspberry Piとつなぐ。
- 足が長い方とGPIO18
- 足が短い方とGround
※PIN配置は以下参照
コマンドでLEDを光らせる
Raspberry Piの電源を入れる。
GPIO18を使いますよ、と教えてあげる。
↓
出力
↓
使い終わったら解放。
まずは最初の状態を確認 $ ls -la /sys/class/gpio/ gpio18は表示されてないので準備できていない。 準備 $ echo 18 > /sys/class/gpio/export もっかい確認 $ ls -la /sys/class/gpio/ gpio18が出力されることを確認。 GPIO18を出力信号として利用することを書き込む $ echo out > /sys/class/gpio/gpio18/direction これで準備OK。 ON $ echo 1 > /sys/class/gpio/gpio18/value 光る! OFF $ echo 0 > /sys/class/gpio/gpio18/value 使い終わったらこのコマンド $ echo 18 > /sys/class/gpio/unexport 解放されたことを確認 $ ls -la /sys/class/gpio/ GPIO18がないことを確認
node.jsで制御する
node.jsのセットアップ方法は別エントリー参照。
sleepを使えるようにする。
$ npm install sleep
nodejsのコードを書く。
$ vi led.js
var fs = require('fs'); var sleep = require('sleep'); var pin = 18; fs.writeFileSync('/sys/class/gpio/export', pin); fs.writeFileSync('/sys/class/gpio/gpio' + pin + '/direction', 'out'); console.log("ON"); fs.writeFileSync('/sys/class/gpio/gpio' + pin + '/value', 1); sleep.sleep(5); console.log("OFF"); fs.writeFileSync('/sys/class/gpio/gpio' + pin + '/value', 0); fs.writeFileSync('/sys/class/gpio/unexport', pin);
実行
$ sudo node led.js