Arduinoによるプッシュボタンコントロール

この例では、Arduinoと2つのモーメンタリスイッチを使用してリニアアクチュエータの方向を制御します。このチュートリアルは、チュートリアルで説明されている原則に基づいています。Arduinoによるモータードライバーの速度制御」、続行する前にそのチュートリアルを確認することをお勧めします。

このチュートリアルは、モーメンタリモードで動作するプッシュボタン(つまり、ボタンを離すとアクチュエータが動きを停止する)とサステインモードで動作するプッシュボタン(つまり、ボタンを離してもアクチュエータが動き続ける)の2つのセクションに分かれています。

注:このチュートリアルは、基本的な電子原理、Arduinoハードウェアおよびソフトウェアに関する予備知識を前提としています。 Arduinoを初めて使用する場合は、GoogleおよびYouTubeの検索で利用できる多くの優れた初心者向けチュートリアルの1つから基本を学ぶことをお勧めします。カスタムアプリケーションのテクニカルサポートを提供するためのリソースがなく、これらの公開されているチュートリアル以外でデバッグ、編集、コードまたは配線図を提供しないことに注意してください。

コンポーネント

配線

Arduinoによるプッシュボタンコントロール

瞬間的な制御のためのハードウェアとソフトウェアの概要

モーメンタリスイッチは、ボタンを押している間だけアクチュエータを動かしたい場合に使用します。ボタンを離すと、アクチュエータは自動的に動きを停止します。以下のコードをアップロードしてください。

瞬間的な制御のためのコード

https://gist.github.com/Will-Firgelli/aeee209bda6b2246359eed70ec353eb8

COPY
/* Firgelli Automations
 * Limited or no support: we do not have the resources for Arduino code support
 * 
 * Program enables momentary direction control of actuator using push button
 */

int RPWM = 10; //connect Arduino pin 10 to IBT-2 pin RPWM
int LPWM = 11; //connect Arduino pin 11 to IBT-2 pin LPWM
int downPin = 12; 
int upPin = 13;
int Speed = 255; //choose any speed in the range [0, 255]

void setup() {
  pinMode(RPWM, OUTPUT);
  pinMode(LPWM, OUTPUT);
  pinMode(downPin, INPUT_PULLUP);
  pinMode(upPin, INPUT_PULLUP);
}

void loop() { 
  if(digitalRead(upPin)==LOW){ //check if extension button is pressed
    analogWrite(RPWM, 0);
    analogWrite(LPWM, Speed);
  } 

  else if(digitalRead(downPin)==LOW){ //check if retraction button is pressed
    analogWrite(RPWM, Speed);
    analogWrite(LPWM, 0);
  } 

  else{ //if no button is pushed, remain stationary
    analogWrite(RPWM, 0); 
    analogWrite(LPWM, 0);
  }
}

制御を維持するためのハードウェアとソフトウェアの概要

または、ラッチボタンを使用したい場合もあります。ボタンを押すとアクチュエータが動き、ボタンを離すとアクチュエータが動き続けます。これを実現するには、ピン8とGNDに接続されたスイッチをもう1つ追加してから、以下のプログラムをアップロードする必要があります。ボタンを離してもアクチュエータの動きが止まらないため、この新しいスイッチは「停止」ボタンとして機能します。

制御を維持するためのコード

https://gist.github.com/Will-Firgelli/2b96dce14c0cee7a0009e61e47cc5f67
COPY
/* Firgelli Automations
 * Limited or no support: we do not have the resources for Arduino code support
 * 
 * Program enables latching direction control of actuator using push button
 */

int RPWM = 10; //connect Arduino pin 10 to IBT-2 pin RPWM
int LPWM = 11; //connect Arduino pin 11 to IBT-2 pin LPWM
int stopPin = 8;
int downPin = 12;
int upPin = 13;

int Speed = 255; //choose any speed in the range [0, 255]

void setup() {
  pinMode(RPWM, OUTPUT);
  pinMode(LPWM, OUTPUT);
  pinMode(stopPin, INPUT_PULLUP);
  pinMode(downPin, INPUT_PULLUP);
  pinMode(upPin, INPUT_PULLUP);
}

void loop() { 
  if(digitalRead(upPin)==LOW){ //check if extension button is pressed
    analogWrite(RPWM, 0);
    analogWrite(LPWM, Speed);
  } 

  else if(digitalRead(downPin)==LOW){ //check if retraction button is pressed
    analogWrite(RPWM, Speed);
    analogWrite(LPWM, 0);
  } 

  else if(digitalRead(stopPin)==LOW){ //check if retraction button is pressed
    analogWrite(RPWM, 0);
    analogWrite(LPWM, 0);
  } 
}
Share This Article
Tags: