ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Código de motores especiales máquinas


Enviado por   •  7 de Mayo de 2024  •  Monografías  •  554 Palabras (3 Páginas)  •  33 Visitas

Página 1 de 3

#include <Servo.h>

#include <SoftwareSerial.h>

Servo servoMotor; // Crear un objeto servo para controlar el servo

int potPin = A0; // Pin analógico donde está conectado el potenciómetro

int potControlPin = 2; // Pin digital para el control del potenciómetro

int serialControlPin = 3; // Pin digital para el control a través del puerto serial

int btservo =4;

int selector = 0; // Variable para seleccionar el modo de control (0: ninguno, 1: potenciómetro)

int bluetoothTx = 10;

int bluetoothRx = 11;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup() {

servoMotor.attach(9); // Conectar el servo al pin digital 9

pinMode(potControlPin, INPUT_PULLUP); // Configurar el pin del control del potenciómetro como entrada con pull-up

pinMode(serialControlPin, INPUT_PULLUP); // Configurar el pin del control serial como entrada con pull-up

Serial.begin(9600); // Iniciar la comunicación serial

bluetooth.begin(9600);

}

void loop() {

int var1 = digitalRead(potControlPin); // Leer el estado del pulsador del control del potenciómetro

int var2 = digitalRead(serialControlPin); // Leer el estado del pulsador del control serial

int var3 = digitalRead(btservo); // Leer el estado del pulsador del control serial

// Establecer el selector basado en el estado de los pulsadores

if (var1 == HIGH) {

selector = 1; // Modo de control del potenciómetro

} else if (var2 == HIGH) {

selector = 0; // Modo de control serial

}

else if (var3 == HIGH) {

selector = 3; // Modo de control blueooth

}

// Ejecutar el código correspondiente al modo de control seleccionado

if (selector == 1) { // Modo de control del potenciómetro

int val = analogRead(potPin); // Leer el valor del potenciómetro (entre 0 y 1023)

int angle = map(val, 0, 1023, 0, 180); // Mapear el valor del potenciómetro a un ángulo entre 0 y 180 grados

servoMotor.write(angle); // Mover el servo al ángulo calculado

delay(15); // Pequeña pausa para estabilidad

} else if (selector == 0) { // Modo de control serial

while (Serial.available() > 0) { // Mientras haya datos disponibles en el puerto serial

int angle = Serial.parseInt(); // Leer el ángulo desde el puerto serial

if (angle >= 0 && angle <= 180) { // Verificar que el ángulo esté en el rango válido

servoMotor.write(angle); // Mover el servo al ángulo especificado

}

// Esperar a que llegue el siguiente dato antes de volver a leer

while

...

Descargar como (para miembros actualizados) txt (3 Kb) pdf (41 Kb) docx (8 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com