- Pythonでやる
- SHELLでやる
- Wireing piを使う
の3つの方法があるようです。
・Pythonでやる方法
公式に出てるのですが、読むのがめんどくさいのでやりません。
というかPythonがめんどくさい
・Wireing piを使う
I2Cについてはこちらでやってみました→
https://pitslaboratory.blogspot.jp/2018/05/raspberrypii2cc.html
GPIOについては・・たぶんやらない
・SHELLでやる
一番簡単な方法みたいなので、今回はこの方法を使おうと思います。
I2Cとかログファイル作成もSHELLでやってますし、なにかと便利そうです
GPIOにLEDを接続
http://pi.gadgetoid.com/pinoutここでどのポートを使うか確認します。
今回はI2Cのポートに近い、4番を使ってみます。GNDはその隣です。
とりあえず、その辺に散らかっているLEDと、適当に460Ωをくっつけてみます。
適当にLEDと抵抗を決めましたが、いちおう計算の仕方を示しておきます。
R = (Vdd - Vf)/If
■Vdd RaspberryPiの場合3.3V。Arduinoなら5V
■Vf 順方向に電圧を加えた場合、LEDの端子間でどれだけ電圧が降下するかの値。LEDのデータシートを見ます。普通の赤色LEDだと、だいたい2Vです。
■If LEDに流れる電流で通常2~20mA程度。インジケーターに利用するだけなので3mAで十分です。
■計算 これを式に当てはめると、
R=(3.3-2.0)/0.003=433Ω
偶然にも、テキトーに選んだ460Ωに近い値になりました。(棒
ちなみにArduinoで使う場合は
(5.0-2.0)/460=0.0065=6.5mA
そのまま使っても大丈夫です。
LEDに接続する抵抗は設計する人によって様々ですが330~470Ωあたりを付ければ間違いないでしょう。定格の20mAを超えないことに注意すれば壊れることはありません。
RasPiからGPIOを動かす
とりあえずGPIO4を動かしてみますGPIO4を使えるようにする
> echo 4 > /sys/class/gpio/export
GPIO4を出力にする Arduinoの pinMode(4, OUTPUT)に相当
> echo out > /sys/class/gpio/gpio4/direction
点灯する digitalWrite(4, HIGH)に相当
> echo 1 > /sys/class/gpio/gpio4/value
消灯する digitalWrite(4, LOW)に相当
> echo 0 > /sys/class/gpio/gpio4/value
終了するには
> echo 4 > /sys/class/gpio/unexport
あら簡単(゚д゚)
最初と最後のexportやunexportは、GPIOを仮想ファイルを使ってコントロールするやり方らしいのですが、Raspbianの仕様で、そういうものだ。ということで理解しておきましょう。
動かしてみた
というわけで、先ほどのLEDのかわりにソリッドステートリレーを付けます。これでRaspberryPiから100Vのデバイスを制御できるようになりました。ソリッドステートリレーキット http://akizukidenshi.com/catalog/g/gK-00203/
放熱板を付けなくても、200Wくらいのデバイスなら制御可能。
今回使う予定のポンプは4W(金魚用のアレ)~12W(お風呂ポンプ)なので、けっこう余裕があります。
普通のリレーでも良いのですが、ソリッドステートリレーのほうが
- 壊れにくい
- 低電圧小電流(3.3V 5mA)で動く
- 応答速度が速い
デメリットとしては
- リレー特有のカチカチ音がしないので寂しい
- 多少お高い
今回、水やりをするのに金魚用ポンプを選択したわけですが、実は最初、電磁バルブを考えてました。お値段はお風呂ポンプとあまり変わらない程度。せめて5Vで動けば・・
0 件のコメント:
コメントを投稿