まず部品を用意。
ジャンパピンはコンソールケーブルを作るときに買ったものがあった。
ブレッドボードを買う。
どういうものかしらなかったが、横がつながっていて縦はつながっていないそうだ。
あとLED。
LEDとはなんぞやということは中学生のときの「技術」の授業で習った。
ハンダゴテを使ってラジオを使った。
あれは義務教育だよね?
まずaitendoに行ったら、100個くらい入ったものが売っていた。
が、
規格というものがどこにも書いていない。
LEDにも規格はあるよね?
LEDは電気が流れると光ること、さらに流れる方向が決まっていることは覚えている。
豆電球に乾電池をつなぐと光るのとはちょっとわけが違うことも。
調べると、raspberry piでLEDを光らせるにはGPIOという、ピンがたくさんならんでいるものから、
電源となるピンともう一つ選び、
それをon/offすればよいらしかった。
そして、LEDに電流を流すときは抵抗を通さなければならないということだった。
では、いくつの抵抗が必要なのか?
それは規格によるだろうと思った。
piの流す電流(電圧?)と、LEDの規格によって決まるのだろうと。
しかし、LEDの規格というのがあまり情報がない。
いろいろ探した結果、型番がはっきりしている下記のものを買った。
http://www.marutsu.co.jp/pc/i/69514/
3.2V・20mA・250mcd(max)
とある。
そして抵抗は330Ωのもの。
これは必要な抵抗を計算したのではなく、WEBでそれを使っている人が何人かいたから
マネしただけだ。
下記のページで計算してみたのだが、
http://diy.tommy-bright.com/
raspberry piの電源 3.3v
LEDの電圧 3.2v
流したい電流 20mA
とすると必要な抵抗は 5Ω となる。
抵抗が330Ωの場合、流れる電流は0.3mAとなるのではないか?
という計算はあとでやったのだが、
とりあえずつないで点灯させてみた。
Pin#1(GND)と、Pin#22(GPIO25)を使う。
Pin#1を抵抗側、Pin#22をLED側につなぐ。
GND --- 抵抗 --- LED --- GPIO25
下記のpythonスクリプトを書いて、実行する。
--------------------------
import RPi.GPIO as GPIO
import time
pin=25
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)
#GPIO.output(pin, GPIO.HIGH)
GPIO.output(pin, 0)
time.sleep(3)
GPIO.cleanup()
import time
pin=25
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)
#GPIO.output(pin, GPIO.HIGH)
GPIO.output(pin, 0)
time.sleep(3)
GPIO.cleanup()
--------------------------
pi@raspberrypi:~ $ sudo python led.py
LEDが点灯し、3秒たつと消える。
GPIO.output(pin,0)
のことろは、参考にしたスクリプトでは0でなくGPIO.HIGHにすると点灯し、GPIO.LOWにすると消灯するのだが、
私がやってみると、HIGH/LOWが逆になる。
つまり、GPIO.LOWにすると点灯する。
なぜだろう?