LoginSignup
6
4

More than 5 years have passed since last update.

【初級者殺し:解決】リレーを介した、ポンプとの直結

Last updated at Posted at 2015-10-05

追記:このページは訂正箇所がありますが「引用」の形式でツッコミを入れて残します。おそらく同じように間違いやすい箇所だと思う。

超教訓

失敗を繰り返す中でたくさんの気づきがあったので記す。

リレーとブレッドボード

最初、リレーはオムロン「G5V-1」を買ってきました。これの選定理由は、下記「参考ページ」を見たからなのですが、このリレーの取り付け方で大ハマリ。結論から言うと、リレーの足が短すぎてブレッドボードの「真ん中をまたげなかった」ことが原因で動かなかった。たまたまURL(※)を見ながら、ふと、リレーひっくり返して、2と9に直接ワイヤーくっつけたらいい感じのスイッチ音がしたため発覚。「G5V-1」が実装基板用で、そもそもブレッドボードで使われることが想定外であったのだと思われる。
1.jpg
ブレッドボードの使い方がわかってなかったのが悪いんだけど、とんだ初級者殺しだな...。「参考ページにブレッドボードが出てこない」ことに気がつくべきでした。
(※)http://minkara.carview.co.jp/userid/345027/blog/28920061/

ブレッドボードの基本

ブレッドボードのタテのラインは内部で繋がっていて、真ん中の溝で離れている。アタマではわかったつもりでも手が追いついていなかった。
http://jsdiy.web.fc2.com/avr_7segclockbb/

リレーが動かなかった理由

当初「リレーがうまく動かなかった理由」は、「G5V-1」リレーの2と9がショートしていたからである。ショートするとリレーは一見繋がっていても動かない(動くためのパワーが、ショートした側に奪われる)。「ショートすると部品に電流が行かない理由」を説明するには、中学校の勉強内容にさかのぼる。この、水に例えるのは非常にわかりやすかった(学生当時「暗記」して「理解」しなかったツケが...)
http://www.max.hi-ho.ne.jp/lylle/denryu5.html

3.JPG
リレーは赤い波線で回路を「分断」しなければならない(ショートしたらだめ)
だから赤い波線の場所にブレッドボードの「溝」を当て込む。いやー、勉強になったなぁ。ブレッドボードの真ん中の溝をまたげる、でかいリレーを買おう(結論)

ちなみに、「G5V-1」リレーを右90°に回転させて2と9のラインを変えてやる実験をしたら、やかんが沸騰したみたいな「ピー!ピー!」という音がした(音がするタイミングは、狙った通りのタイミング)これは、2と9を分離して安心していた僕に、でも実はつながってはいけない1と2が繋がるという想定外のショートに、リレーが悲鳴をあげたと思われる。


参考ページ

Arduinoで自動水やり器を作る①
http://qiita.com/interestor/items/d59590b64820a8cf973e

ブレッドボードにつけよう(リレーはG6E-134P-US DC5)

(リレー番号を、買い直した後の番号に変えてあるので注意)
電気の基本的な流れは「任意のDigitalOut から始まって(あいだに部品をはさんで)GNDに帰る」だ。今回は「Digi1から始まってリレーの1番に入り、リレーの6番から出てGNDに帰る」だ。

差替1:当初5Vからリレーにワイヤーを直結していた。これでは条件分岐ができない。

1.JPG

リレー

リレー(G6E-134P-US DC5)は5本のピンでできていて、上図右下ワイプのように取り付けた。「OMRON」が普通に読めるように配置してもよかったんだけど、1から6に流れるところをブレッドボードの上半分に持って行きたかった(なんとなく)だけ。

【TIPS】番号が連番じゃないのは、各ピンの位置が物理的に離れているため。1番ピンをブレッドボードの”1″のところに刺すと、次のピンが”2″、その次のピンが”5″の位置に刺さるようになっている。
http://nanoappli.com/blog/archives/2382

下図右端の番号図(端子配置/内部接続図)は "下から見た" 状態なので、ブレッドボードから見るときは逆に見ないといけないけども、リレーの1番から6番に電気が走ると、リレーの10番から12番にリレーの内部金具(?)がスイッチして、「リレーの12番と7番が電気の通り道として有効」になる。
1.JPG


このリレーの12番と7番をポンプの電池の金具部分につけてやろう。それでリレーセクションはクリアだ!

ポンプ

ポンプの基本動作として、ウラからスライドスイッチをスライドすると「A」と「B」が物理的にくっついてポンプが動作するので、とりあえず
・「リレーの7番」と「A」
・「リレーの12番」と「B」
をつないでみたらポンプが動いた!
キャプチャ3.JPG

ソース

#include <Wire.h>
#include <rgb_lcd.h>

// 土壌センサー dry[0-300], normal[300-700], wet[700-950]
int buf;

// LCD
const int colorR = 0;
const int colorG = 0;
const int colorB = 255;
rgb_lcd lcd;


void setup() 
{
    pinMode(0,OUTPUT);                  // LED
    pinMode(1,OUTPUT);                  // リレー行きのピン
    pinMode(A0,OUTPUT);                 // 土壌センサー

    lcd.begin(16, 2);                   // 画面表示LCD(LCDは16文字2行です)  
    lcd.setRGB(colorR, colorG, colorB); // LCDのカラーを決定します
}

void loop() 
{

    // 土壌センサー 値取得
    buf = analogRead(0);

    // 乾いている時の挙動
    if(buf < 400){

      // ポンプを動かす
      digitalWrite(1,HIGH);

      // ***************
      // 「A」
      looop:

      // パトランプ
      digitalWrite(0,HIGH);
      delay(10);
      digitalWrite(0,LOW);

      // 値を見る
      buf = analogRead(0);

      // 画面表示 
      lcd.clear();
      lcd.print("sensor value is");
      lcd.setCursor(0, 1);
      lcd.print(buf);
      delay(100);

      // 判断:値を見て、まだ乾いているなら 「A」 に戻る
      if(buf < 400){
        goto looop; 
      }
      // ***************

      digitalWrite(1,LOW);

    }

    // 画面表示 
    lcd.clear();
    lcd.print("sensor value is");
    lcd.setCursor(0, 1);                // Note:行は0base、第2引数で1を指定すると2行目の意
    lcd.print(buf);
    delay(100);

}

動作確認

ようやくうまくいった!すがらしい

つぎは?

ちょっとしばらく植物を使った実験かな。
気が済んだら、つぎは「SDカードに定期的に記録する」を作りたい。
SDカードは「FlashAir」である。http://www.flashair.info/
つまりSDカードがhttpリクエストが飛ばせる。
httpリクエストで飛ばされた情報をSQLServer(データベース)に記録する。
IOTらしくなってくるかな?

6
4
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4