2015年1月20日火曜日

ラズパイでLEDをピカピカさせてみた

勉強会で今期はラズパイの電子工作やってこーってことになったのでガンバる!

手順


・回路図書いてみる
・電子部品のお買い物
・配線
・PythonでLEDの制御

完成図はこんな感じ→



回路図

中学、高校の理科でしかみたことないから四苦八苦(-_-|||)
ラズパイは3.3V,5.0Vの電圧を出力できる。この回路に順電圧2.0V、順電流20mAの赤色LEDを点灯させる。

この回路に20mAの電流を流したい。そのとき、備え付ける抵抗の値をいくつにすればいいのか計算する
直列回路なので、抵抗の電圧は$V=V_1+V_2$から \[ V= 3.3 - 2.0=1.3[V] \] オームの法則( $IR=E$ )から0.02Aにするための抵抗は \[ R =\frac{1.3}{0.02}=65[\Omega] \] なので、65Ω以上の抵抗があれば20mA以下の電流を作れる。今回は100Ωの抵抗を使っていく

お買い物リスト


機材個数画像
ブレッドボード
ハンダ付けとかせず、
簡単に配線ができるやつ
1個
オス-メスジャンパー線
ラズパイのGPIOと
ブレッドボードをつなぐ線
1個
オス-オスジャンパー線
ブレッドボード上で配線を
するための線
1個
LED
光るやつ
赤色
順電圧:2.0V
順電流:20mA 
1個
抵抗(100Ω)
回路に流れる電流を
制御するやつ
1個

配線



ちょっと工事中。。。

LED制御


次にコーディング
ラズビアンはPythonって言語が最初から使える
GPIO用のパッケージ?をインポートすれば簡単に実装できるっぽい
とりあえずディレクトリ作ってその中で作業
$ mkdir gpio
$ cd gpio
$ vi sample.py # pythonは拡張子py
1秒おきにLEDがピカピカするコード
#! usr/bin/env python
# coding: UTF-8

# インポート:GPIO、時間
import RPi.GPIO as GPIO
import time

# BCMタイプ:GPIOピン番号を指定する方法
GPIO.setmode(GPIO.BCM)

# 出力するポート
io_port = 4

# 4番を出力にする
GPIO.setup(io_port, GPIO.OUT)

## ループ処理:付けたり消したりする
for count in range(5):
    GPIO.output(io_port,GPIO.HIGH)
    time.sleep(1)
    GPIO.output(io_port,GPIO.LOW)
    time.sleep(1)

# IOをきれいにする
GPIO.cleanup()

これでおk
実行はルート権限がいる(コレに気づくのに時間かかった。。)
$ sudo python sample.py

ピカピカした!

まぁ最初だしこんなレベルでw

0 件のコメント:

コメントを投稿