この例では、Arduinoと2つのモーメンタリスイッチを使用してリニアアクチュエータの方向を制御します。このチュートリアルは、チュートリアルで説明されている原則に基づいています。Arduinoによるモータードライバーの速度制御」、続行する前にそのチュートリアルを確認することをお勧めします。
このチュートリアルは、モーメンタリモードで動作するプッシュボタン(つまり、ボタンを離すとアクチュエータが動きを停止する)とサステインモードで動作するプッシュボタン(つまり、ボタンを離してもアクチュエータが動き続ける)の2つのセクションに分かれています。
注:このチュートリアルは、基本的な電子原理、Arduinoハードウェアおよびソフトウェアに関する予備知識を前提としています。 Arduinoを初めて使用する場合は、GoogleおよびYouTubeの検索で利用できる多くの優れた初心者向けチュートリアルの1つから基本を学ぶことをお勧めします。カスタムアプリケーションのテクニカルサポートを提供するためのリソースがなく、これらの公開されているチュートリアル以外でデバッグ、編集、コードまたは配線図を提供しないことに注意してください。
コンポーネント
- 12Vリニアアクチュエータ
- 12V電源
- Arduino
- モータードライバー
- 2つの瞬間的なボタン(オプションで、ラッチ制御用の3番目のボタン)
- 接続および圧着工具またははんだごてを作成するための電線
配線
瞬間的な制御のためのハードウェアとソフトウェアの概要
モーメンタリスイッチは、ボタンを押している間だけアクチュエータを動かしたい場合に使用します。ボタンを離すと、アクチュエータは自動的に動きを停止します。以下のコードをアップロードしてください。
瞬間的な制御のためのコード
https://gist.github.com/Will-Firgelli/aeee209bda6b2246359eed70ec353eb8
/* 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/* 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);
}
}