Drukknoppiebeheer met Arduino

In hierdie voorbeeld sal ons die rigting van 'n lineêre aktuator met 'n Arduino en twee oombliklike skakelaars beheer. Hierdie tutoriaal bou voort op beginsels wat in die tutoriaal bespreek word “Motorbestuurspoedbeheer met 'n Arduino', Ons beveel aan dat u die tutoriaal hersien voordat u voortgaan.

Hierdie tutoriaal word in twee afdelings verdeel: drukknoppies wat in 'n oombliklike modus optree (d.w.s. aktuators hou op beweeg wanneer die knoppie vrygestel word) en drukknoppies wat in die volhou -modus optree (d.w.s. aktuators beweeg, selfs wanneer die knoppie vrygestel word).

Opmerking: Hierdie tutoriaal veronderstel voorkennis met basiese elektroniese beginsels, Arduino -hardeware en sagteware. As dit u eerste keer is om Arduino te gebruik, stel ons voor dat u die basiese beginsels leer uit een van die vele groot beginner -tutoriale wat beskikbaar is via Google en YouTube -soektogte. Let daarop dat ons nie die hulpbronne het om tegniese ondersteuning vir pasgemaakte toepassings te bied nie, en dat ons nie hierdie tutoriale wat in die openbaar beskikbaar is, ontfout, kode of bedrading bied nie.

Komponente

Bedrading

Drukknoppiebeheer met Arduino

Hardeware en sagteware -oorsig vir oombliklike beheer

Momentêre skakelaars word gebruik as u slegs wil hê dat die aktuator moet beweeg terwyl die knoppie ingedruk word, sal die aktuator outomaties ophou beweeg wanneer die knoppie vrygestel word. Laai die onderstaande kode op.

Kode vir oombliklike beheer

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);
  }
}

Hardeware en sagteware -oorsig vir die handhawing van beheer

Alternatiewelik wil u soms 'n grendelknoppie gebruik; Laat die aktuator beweeg as u op 'n knoppie druk en dan aanhou beweeg wanneer u die knoppie loslaat. Om dit te bereik, moet u nog een skakelaar byvoeg, gekoppel aan PIN 8 en GND, en dan die onderstaande program oplaai. Aangesien die aktuator nie ophou beweeg as die knoppie vrygestel word nie, sal hierdie nuwe skakelaar op 'n “Stop” -knoppie optree.

Kode vir die handhawing van beheer

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: