ソレノイドどんどん! -2ページ目

ソレノイドどんどん!

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

ソレコン、あっという間に第5回目となりました!!!!

ご応募ありがとうございました!

 

今回もユニークな作品ばかりです。どうやったらこんなにアイディアが沸くのか・・・

そして形にする行動力と技術力!素晴らしいです(♡ >ω< ♡)キラキラ

 

ぜひ、第5回ソレコン応募作品すべてご覧いただきたいです!爆  笑

動画は全て2分以内なのであっという間ですよ~

 

 

過去すべてのコンテストの作品はコチラからどうぞ!

 

 


にほんブログ村

にほんブログ村

にほんブログ村

■ソレノイドを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でソレノイドをどんどん動かしてみてください!もぐもぐ

 

 

 

 

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

 

■ソレノイドを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秒間消灯させています。クラッカークラッカークラッカー

 

 

今回はここまで!

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