Controlar Servomotor con Arduino

Cpp


#include <Servo.h>

Servo servo1;
Servo servo2;

int pos1 = 0;
int pos2 = 0;
int step1 = 1;
int step2 = 1;

unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;

const unsigned long interval1 = 15;  // Intervalo para servo1 (15 ms)
const unsigned long interval2 = 30;  // Intervalo para servo2 (30 ms)

void setup() {
  // Asignar pines para los servomotores
  servo1.attach(9);
  servo2.attach(10);
  
  // Posicionar inicialmente los servos
  servo1.write(pos1);
  servo2.write(pos2);
}

void loop() {
  unsigned long currentMillis = millis();

  // Actualizar el primer servo cada 15 ms
  if (currentMillis - previousMillis1 >= interval1) {
    previousMillis1 = currentMillis;
    pos1 += step1;
    if (pos1 >= 180 || pos1 <= 0) {
      step1 = -step1;  // Cambiar dirección al alcanzar extremos
    }
    servo1.write(pos1);
  }
  
  // Actualizar el segundo servo cada 30 ms
  if (currentMillis - previousMillis2 >= interval2) {
    previousMillis2 = currentMillis;
    pos2 += step2;
    if (pos2 >= 180 || pos2 <= 0) {
      step2 = -step2;  // Cambiar dirección al alcanzar extremos
    }
    servo2.write(pos2);
  }
}
Este código utiliza dos temporizadores basados en millis() para actualizar cada servomotor en intervalos diferentes: servo1 se actualiza cada 15 ms y servo2 cada 30 ms. Cada servo se moverá de 0 a 180 grados y luego cambiará de dirección de manera independiente. Puedes ajustar los pines, los intervalos o la lógica de pasos según tus necesidades.
Define project description
Set key constraints
Plan architecture
No schematic yet

Talk to Flux to get started.

No files yet

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    No assets added.

    Efficient Aquamarine Time Machine

    Efficient Aquamarine Time Machine thumbnail
    Welcome to your new project. Imagine what you can build here.

    Properties

    Properties describe core aspects of the project.

    Pricing & Availability

    Distributor

    Qty 1

    Controls