「Arduino Mega 2560 LESSON:30 リレー」の版間の差分

提供:yonewiki
編集の要約なし
編集の要約なし
91行目: 91行目:


<freescript></script><div class="hljs-wrap"><pre data-label="Arduino Code" class="pre-wrap">
<freescript></script><div class="hljs-wrap"><pre data-label="Arduino Code" class="pre-wrap">
<code class="cpp"> 
<code class="cpp">//www.elegoo.com
//2022.03.10
 
/************************
  Exercise the motor using
  the relay
************************/
 
#define ENABLE 5
#define DIRA 4
#define DIRB 3
 
int i;
 
void setup() {
  //---set pin direction
  pinMode(ENABLE, OUTPUT);
  pinMode(DIRA, OUTPUT);
  pinMode(DIRB, OUTPUT);
  Serial.begin(9600);
}
 
void loop() {
 
  //---relay example
  digitalWrite(ENABLE, HIGH); // enable on
  for (i = 0; i < 5; i++)
  {
    Serial.println("spin");
    digitalWrite(DIRA, HIGH); //motor spins
    digitalWrite(DIRB, LOW);
    delay(2000);
    Serial.println("stop");
    digitalWrite(DIRA, LOW); //motor stops
    digitalWrite(DIRB, LOW); //HIGH→LOWに書き換えが必要
    delay(2000);
  }
}
 
</code></pre></div><script></freescript>
</code></pre></div><script></freescript>
 ELEGOOのコードを修正しないとSTOPはしないですね。DIRAとDIRBに電位差があればリレー内部のコイルが中心の鉄心を磁化させ、スチッチの鉄板を引き寄せ接続状態になります。DIRA:HIGH、DIRB:LOWあるいはDIRA:LOW、DIRB:HIGHでNOピンがOnになります。リレーの箱側からみて右にあって2つのPinになってる側のPinがNOピンです。反対側はNCピンです。3つある側の真ん中がCenterピン。両側がCoilピンです。つまりCoilピンに電位差がある状態がDIRA:HIGH、DIRB:LOWあるいはDIRA:LOW、DIRB:HIGHでNOピンがOnになります。逆に電位差がない状態ではDIRA:LOW、DIRB:LOWあるいはDIRA:HIGH、DIRB:HIGHでNOピンがOffになります。NCピンはNOピンがOnならOff、NOピンがOffならOnの状態になるピンです。Centerにはモーターに供給する電力を送電します。Centerを経由してNOピンの状態に応じてモーターがOnOffされる感じです。


 
 


[[Arduino Mega 2560]]に戻る。
[[Arduino Mega 2560]]に戻る。

2026年11月10日 (火) 22:33時点における版

Arduino Mega 2560に戻る。

概要

 電源供給モジュールとモーターとL293Dとリレーを接続するレッスンです。


 完成図は以下のとおりです。


[[|380px||none|完成図]]


 PCB図は以下のようなものです。


[[|380px||none|PCB図]]


 3Dプレビュー図は以下のようなものです。


[[|380px||none|3Dプレビュー図]]


 コードは以下のようなものです。


//www.elegoo.com
//2022.03.10

/************************
  Exercise the motor using
  the relay
************************/

#define ENABLE 5
#define DIRA 4
#define DIRB 3

int i;

void setup() {
  //---set pin direction
  pinMode(ENABLE, OUTPUT);
  pinMode(DIRA, OUTPUT);
  pinMode(DIRB, OUTPUT);
  Serial.begin(9600);
}

void loop() {

  //---relay example
  digitalWrite(ENABLE, HIGH); // enable on
  for (i = 0; i < 5; i++)
  {
    Serial.println("spin");
    digitalWrite(DIRA, HIGH); //motor spins
    digitalWrite(DIRB, LOW);
    delay(2000);
    Serial.println("stop");
    digitalWrite(DIRA, LOW); //motor stops
    digitalWrite(DIRB, LOW); //HIGH→LOWに書き換えが必要
    delay(2000);
  }
}


 ELEGOOのコードを修正しないとSTOPはしないですね。DIRAとDIRBに電位差があればリレー内部のコイルが中心の鉄心を磁化させ、スチッチの鉄板を引き寄せ接続状態になります。DIRA:HIGH、DIRB:LOWあるいはDIRA:LOW、DIRB:HIGHでNOピンがOnになります。リレーの箱側からみて右にあって2つのPinになってる側のPinがNOピンです。反対側はNCピンです。3つある側の真ん中がCenterピン。両側がCoilピンです。つまりCoilピンに電位差がある状態がDIRA:HIGH、DIRB:LOWあるいはDIRA:LOW、DIRB:HIGHでNOピンがOnになります。逆に電位差がない状態ではDIRA:LOW、DIRB:LOWあるいはDIRA:HIGH、DIRB:HIGHでNOピンがOffになります。NCピンはNOピンがOnならOff、NOピンがOffならOnの状態になるピンです。Centerにはモーターに供給する電力を送電します。Centerを経由してNOピンの状態に応じてモーターがOnOffされる感じです。

 

Arduino Mega 2560に戻る。