ソレノイドどんどん!

無名の電気部品ソレノイド、だけどたくさん使われているのだ


テーマ:

■ソレノイドをArduinoで制御しよう!編

付録編

 

付録③

付録②にスイッチを追加する

 

スイッチ:

 付属しているスイッチは、タクトスイッチといいます。ハート 黄

タクトスイッチ裏面中央の溝を基準として▲グループと×︎グループに分け、上の写真を簡略化して図にします。

右の図がタクトスイッチを上から見た図、左の図が下から見た図です。

 通常、スイッチを押していない時でも▲同士、×同士はつながっていますが、スイッチを押すと、図の▲チームと×チームがつながるので、電流が流れてLEDが点灯します。オカメインコ(工夫すれば長押し判定もできます。)

 

回路:

 

 

プログラム:

 スイッチは、ArduinoとLEDの間のワンクッション置いているだけなので、プログラムは付録②の内容と同じです。

プログラム

説明

int LED = 8;

 

void setup() {

  pinMode(LED,OUTPUT);

}

void loop() { //loop関数

  digitalWrite(LED,HIGH);

}

ピン定義

 

【setup関数】

LEDピンを出力として設定

 

【loop関数】

LEDピンにHIGHを出力

 

 

付録④

付録②にセンサーを追加する

 

センサーの扱い方

 

センサー:

 付属しているセンサーはCdSセンサーです。CdSセンサーは明るさの度合いを感知し、CdSセンサーは、暗くなったら抵抗が大きくなります。ArduinoがCdSセンサーから取得した電圧値を読み取られるように設計しましょう。ウインク

回路:

センサーから、Arduinoに入力が行われるため、Arduino上の「ANALOG IN」のピン(赤枠、A0〜A5)にセンサーを接続します。

 

プログラム:

プログラム

説明

void setup() {

  Serial.begin(9600);

}

 

void loop() {

  int sensorValue =analogRead(A0);

  Serial.println(sensorValue);

 

  delay(500);

}

【setup関数】

 

 

 

【loop関数】

sensoValueに読み込んだ値を代入

sensoValueの値をシリアルモニターに表示

 

 

 analogRead()関数について説明します。ビックリマークセンサーから読み取った0〜5[V]の電圧値を0〜1023の1024段階の数字に変換して読み取ってくれます。Serial.println()関数を使うと、その0〜1023の数字を別のウィンドウで見ることがきます。このとき、setup()関数内で、Serial.begin()関数が必要となります。Serial.begin(9600)とすると、9.6秒ごとに別ウィンドウ(シリアルモニター)でセンサーから読み取った値を1024段階の数字に変換して表示します。ちなみに、CdSセンサーは「暗くなった」と感知したら抵抗値が大きなるので、シリアルモニターに表示される値が大きくなります。ニコ

 

 

上のスクリーンショットは、シリアルモニターのウィンドウです。センサーに手をかざしたあたりから値が800になっていることがわかります。この値は、センサーと直列に繋げている抵抗の値や、その場自体の明るさで変化するので、ご自身で確認してみてください。

 

センサーに手をかざしたらLEDが点灯する動作

 先ほどの準備でセンサーの使い方がわかりました。次に、センサーに手をかざしたらLEDが点灯するようにしてみましょう。グラサン

 

回路図:

 

 

プログラム:

プログラム

説明

int LED = 8;

 

void setup() {

  pinMode(LED,OUTPUT);

}

 

void loop() {

  int value = analogRead(A5);

 

 

if(value>800){

    digitalWrite(LED,HIGH);

  }

  else{

    digitalWrite(LED,LOW);

  }

  delay(100);

}

ピン定義

 

【setup関数】

LEDピンを出力として設定

 

 

【loop関数】

センサーの値を読み取ってvalueという関数に入れる

 

→valueが800以上の時

LEDピンにHIGHを出力

 

→valueが800以下の時

LEDピンにLOWを出力

 

100ミリ秒待つ

 

 

 プログラムには、「暗くなったと感知したら、LEDを点灯させる」という命令を加えるために、if文を使いました。if文では、()内の条件を満たせば、{}内の文が実行されます。ここでは、センサーが読み取った値を先ほどの準備から800と設定し、その値を超えたら、つまりある程度暗くなったらLEDが点灯するようにしています。照れ照れ照れ

 

 

付録⑤

付属品以外のソレノイドを使う場合

 

 付属品以外のソレノイドを使用する場合については、使用しているトランジスタや抵抗も変更する必要があります。下の回路図が、トランジスタを使用した時の回路図です。!!

 

 トランジスタは、電気の流れの制御や、電流を増幅させる作用があります。使用するトランジスタのデータシートより、hfe(電流増幅率)の最小値、VBE(ベース-エミッタ電圧)を確認してください。!!

 

 Arduinoの出力は5[V]で、ソレノイドの電圧を6[V]と固定します。ソレノイドは、品番によって抵抗値が異なるので、ソレノイドの抵抗をRsとします。ソレノイド、トランジスタに合わせて必要な抵抗の値を求めます。

 

 

皆さん、Arduinoでソレノイドをどんどん動かしてみてください!もぐもぐ

 

 

 

 

作成者:九州工業大学 小野又 、米中

 

AD
いいね!した人  |  コメント(0)  |  リブログ(0)

テーマ:

■ソレノイドをArduinoで制御しよう!編

付録編

 

付録① 

動作環境

Arduinoの動作、プログラム環境を整えましょう。!!

動作環境:

付属のUSBケーブルでArduinoとパソコンと繋げば動作環境も整います。

プログラム:

下記のURLからArduino IDEをダウンロードしてください。ご利用中のOSに合わせてダウンロードしましょう。

https://www.arduino.cc/en/Main/Software

インストールしたら、プログラム環境はこれで完了。音譜

 

 

プログラムからArduinoで制御するまでの工程

①      回路

目的の動作ができるように回路を組み立てます。

②      プログラム

Arduinoを動かすためのプログラムを作成します。言語はC言語です。

③      コンパイル⇔エラー訂正

コンパイルした時、文法の誤りなどを犯すと下の黒枠にエラーが表示されます。エラーを訂正して再度コンパイルを行いましょう。

 

下の図は、エラーが出た時のスクリーンショットです。黒枠には、「セミコロン“;”が抜けています。」とエラーの内容を教えてくれます。おねがい

 

 

エラーが出なければコンパイル完了します。

 

 

左上の矢印を押すと、プログラムはArduinoに書き込まれます。

 

 

コンパイルは、プログラム自体の矛盾をエラー表示するため、回路との整合性は確かめられないことに注意が必要です。①〜③で、コンパイルエラーはないけど思った動作をしない場合は、回路や回路とプログラムの整合性を見直してください。ウインクウインクウインク

 

 

付録②

LEDをArduinoで制御する

 

LED:

LEDは、写真のように足が二本ついています。長い方(アノード)をプラス、短い方(カソード)をマイナスとして接続しましょう。反対に接続しても点灯しません。ガーン

回路:

 

ArduinoのGNDとブレットボードのマイナス、Arduinoの「DIGITAL」ピンをプラスとして、LED、抵抗と繋ぎます。抵抗はLEDに電流が流れすぎないようにするために挿入しています。

 

 

ブレットボードは、プラス・マイナスは縦につながっていて、それ以外は横につながっています。上の写真では、黄緑線が繋がっていることになります。ビックリマーク

 

プログラム:

プログラム

説明

int LED = 8;

 

void setup() {

  pinMode(LED,OUTPUT);

}

void loop() {

  digitalWrite(LED,HIGH);

  delay(1000);

  digitalWrite(LED,LOW);

  delay(1000);

}

ピン定義

 

【setup関数】

LEDピンを出力として設定

 

【loop関数】

LEDピンにHIGHを出力

1000ミリ秒待つ

LEDピンにLOWを出力

1000ミリ秒待つ

 

まずピン定義を行いますニコニコ

 

「LED」という名前のピンは、Arduino上の8番ピンであることを示しますが、ピン定義が無くてもプログラムを作成することは可能です!!

「int」については、はじめのうちは気にしない方が良いと思うで、魔法のキーワードと思っておいてください。イヒ音譜

 

 void setup()は、初期設定の内容を記載しています。合格

初期設定では、変数(必要な値を一時保管する領域)や、ピンモードの初期化を行います。pinMode()は先ほど定義したピンが、入力or出力であることを示します。ここでは、LEDピンを出力に設定しています。

 

 ピン定義をしない場合について、例えば、Arduino上のDIGITAL10番ピンを入力とするときは、「pinMode(10, INPUT)」と記載すれば良いです。ピン定義で、「pin10 = 10」としている場合は、「pinMode(pin10, INPUT)」としましょう。!!

 

 void loop()について、loop関数の内容は上から下まで実行、繰り返されます。

 digitalWrite関数では、指定したピンにHIGH(=5[V])または、LOW(=0[V])を出力します。

 

 delay関数について説明します。delay(5000)ならば、5000ミリ秒(5秒)間、動作を停止するという関数です。

 

 以上より、今回の動作では、LEDピンに1000ミリ秒(=1秒)間HIGHを出力、その後1000ミリ秒(=1秒)間LOWを出力する、つまり1秒間LED点灯させたのち、1秒間消灯させています。クラッカークラッカークラッカー

 

 

今回はここまで!

次回も是非見てくださいね(*^▽^*)

 

AD
いいね!した人  |  コメント(0)  |  リブログ(0)

テーマ:

昨年インターンで来てくれた、九州工業大学の小野又さんと米中さんが【ソレノイドをArduinoで制御する説明書】を作成してくれました!今日からパートごとに紹介させていただきます!爆  笑

 

ソレノイドをArduinoで制御しよう!編

■付録編

 

まず、必要なものリストはコチラ▼

ソレノイドはタカハ機工でhttp://www.takaha.co.jp/index.htm

他の部品は秋月電子で購入できます。http://akizukidenshi.com/catalog/default.aspx

 

 

ソレノイドについて

 ソレノイドは、プランジャーと呼ばれる鉄の棒を直進運動させる部品のことです!!巻いた銅線に電流を流すと、その銅線が磁石になって、プランジャーが引っ張られます。「引く」動作をするプルソレノイドと、「押す」動作をするプッシュソレノイドの2種類があります。

 

詳しくはタカハ機工HP、もしくは「ソレノイド探偵団」をご覧ください。

タカハ機工 HP            :http://www.takaha.co.jp/index.htm

ソレノイド探偵団     :http://www.takaha.co.jp/manga/index.html

 

ソレノイドの基本動作

 ブレットボード上にスイッチを追加してソレノイドの動きの基本を確認してみましょう照れビックリマーク

スイッチを押すソレノイドに電圧がかけられ、直線運動をするのがわかると思います。スイッチを話すと、バネの力で、プランジャーが元に戻りますグラサン

 

Arduinoでソレノイドを動かしてみる

 Arduinoの動作環境を整える準備は付録①にて説明します。Arduinoを初めて扱う方は、付録①〜④を行ってから、ソレノイドに挑戦する順序をオススメしますニコビックリマーク

 ソレノイドをArduinoで制御するにあたり、ダイオードとトランジスタが必須になるため、以下で説明をします。

 

 ダイオード

ソレノイドは、電磁石の作用で動きます。電源をOFFにした際に、それまでの電流を維持しようとコイルから電流(逆起電力)が発生します。その電流が回路側や、制御側に悪影響を及ぼす可能性があるため、ダイオードを用いてそれを防止します。音譜

トランジスタ

 トランジスタについて説明します。トランジスタとは、電気の流れを制御する電気部品です。基本的な使い方は、回路上でスイッチの役割や、電流を増幅させる作用があります。トランジスタは三又になっており、それぞれエミッタ、コレクタ、ベースと名付けられています!!

Arduinoから供給できる電流は、ソレノイドに対しては小さいため、ソレノイド動作用の電源は電池から供給します。トランジスタは、Arduinoから信号を受け取り、電池とソレノイドの間のスイッチの役割を果たします。

 

付属品以外のソレノイドを使用する場合については、付録⑤に説明します。チョキ

 

トランジスタを利用したスイッチング回路

 

回路図:

 付属しているソレノイドCBS08300120は、6[V]で連続通電です。よって単三電池を4本使用します。また、付属しているソレノイドには、プラス・マイナスの極性が存在しないので、2本の線をどちら側に繋いでも問題ありません。

 ソレノイドから延びる2本の線より、片方は電池、もう片方はトランジスタのコレクタに接続します。ベースは抵抗などを介してArduinoに接続し、コレクタはGNDに接続します。なぜ、抵抗を挿入するかなどの詳しいことは付録⑤にて説明します。

プログラム:

 プログラムは、LEDを接続するときなどとほとんど同様です。プログラムの書き方は、LEDを例として付録②で説明しますウシシ!!

プログラム

説明

int TR = 8;

 

void setup() {  //setup関数

  pinMode(TR,OUTPUT);

}

void loop() {

  digitalWrite(TR,HIGH);

  delay(1000);

  digitalWrite(TR,LOW);

  delay(1000);

}

ピン定義

 

【setup関数】

TRピンを出力として設定

 

【loop関数】

TRピンにHIGHを出力

 

TRピンにHIGHを出力

 

 

 

スイッチを追加する

スイッチの扱い方は、付録③で説明します。

回路図:

 スイッチは、Arduinoとトランジスタの間に設置します音譜

プログラム:

 スイッチを、回路に追加してもプログラム上での制御は必要ないため、P.6のプログラムとほとんど同様です。

 下記のプログラムは、スイッチを押すとソレノイドが5秒間(5回)動いて止まる動作ですパー

プログラム

説明

int TR = 8;

int SW = 2;

 

void setup() {

  pinMode(TR,OUTPUT);

  pinMode(SW,INPUT);

}

 

void loop() {

  if(digitalRead(SW) == LOW) {

 

    int i = 0;

    while(i < 5) {

      digitalWrite(TR,HIGH);

      delay(500);

      digitalWrite(TR,LOW);

      delay(500);

      i++;

    }

  }

}

トランジスタのピン定義

スイッチのピン定義

 

【setup関数】

TRピンを出力として設定

SWピンを入力として設定

 

 

【loop関数】

条件:SWピンがLOW(=0[V])ならば下記を実行

整数iを定義

※iが5未満ならば下記を実行

TRピンにHIGHを出力

 

TRピンにLOWを出力

 

iを1増加させる

※に戻る

 

 

センサーを追加する

センサーの扱い方は、付録④で説明します。

回路図:

 センサーは、Arduinoで値を読み取るために、「ANALOG IN」ポートに接続してください!!

プログラム:

プログラム

説明

int TR = 8;

 

void setup() {

  pinMode(TR,OUTPUT);

}

 

void loop() {

  int value = analogRead(A5);

 

  if(value>800){

    digitalWrite(TR,HIGH);

 }

 else{

    digitalWrite(TR,LOW);

 }

  delay(100);   //100ミリ秒待つ

}

ピン定義

 

【setup関数】

TRピンを出力として設定

 

 

【loop関数】

センサーの値を読み取ってvalueという関数に入れる

→valueが800以上の時

TRピンにHIGHを出力

 

→valueが800以下の時

TRピンにLOWを出力

 

 

 

 

次回、付録編を紹介しますラブ

ここまで見てくださった皆さんありがとうございます!!

 

作成者:九州工業大学 小野又 、米中

AD
いいね!した人  |  コメント(0)  |  リブログ(0)

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。