Нажмите кнопку управления с Arduino

В этом примере мы будем управлять направлением линейного привода с Arduino и двумя сиюминутными переключателями. Этот учебник основывается на принципах, обсуждаемых в учебнике "Управление скоростью водителя с Arduino", мы советуем пересмотреть этот учебник, прежде чем продолжить.

Этот учебник разбит на два раздела: кнопки нажатия, действующие в сиюминутном режиме (т.е. приводы перестают двигаться при освобождении кнопки) и кнопки, действующие в режиме поддержания (т.е. приводы продолжают двигаться даже при освобождении кнопки).

Примечание: Этот учебник предполагает предварительные знания с основными электронными принципами, arduino аппаратного и программного обеспечения. Если это ваш первый раз с помощью Arduino мы предлагаем узнать основы от одного из многих великих начинающих учебники доступны через Google и YouTube поисков. Пожалуйста, имейте в виду, что у нас нет ресурсов для предоставления технической поддержки пользовательских приложений и не будет отладки, редактирования, предоставления кода или проводки диаграммы за пределами этих общедоступных учебников.

Компоненты

Проводки

Нажмите кнопку управления с 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, а затем загрузить программу ниже. Так как привод не перестанет двигаться, когда кнопка будет выпуск, этот новый переключатель будет действовать кнопкой "стоп".

Кодекс для поддержания контроля

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: