Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni3 pagine

Codigo arduino 1

Il documento contiene un codice sorgente per il controllo di un sistema di motori e allarmi utilizzando una scheda Arduino. Include la definizione di pin per pulsanti, sensori e motori, oltre a funzioni per gestire l'accensione e lo spegnimento dei motori in risposta a vari eventi. Il sistema prevede anche la gestione di situazioni di emergenza e malfunzionamenti tramite allarmi e sensori.
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni3 pagine

Codigo arduino 1

Il documento contiene un codice sorgente per il controllo di un sistema di motori e allarmi utilizzando una scheda Arduino. Include la definizione di pin per pulsanti, sensori e motori, oltre a funzioni per gestire l'accensione e lo spegnimento dei motori in risposta a vari eventi. Il sistema prevede anche la gestione di situazioni di emergenza e malfunzionamenti tramite allarmi e sensori.
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 3

// Definir pines

const int botonArranquePin = 2; // Botón de arranque


const int botonParoPin = 3; // Botón de paro
const int sensorParoPin = 4; // Sensor de paro de emergencia
const int sensorMotor1Pin = 5; // Sensor de desactivación de motor1
const int falla1Pin = 6; // Botón de falla 1
const int falla2Pin = 7; // Botón de falla 2
const int falla3Pin = 8; // Botón de falla 3

const int motor1Pin = 9; // Motor 1


const int motor2Pin = 10; // Motor 2
const int motor3Pin = 11; // Motor 3
const int alarma1Pin = 12; // Alarma 1

// Variables de estado
bool motor1Activo = false;
bool motor2Activo = false;
bool motor3Activo = false;
bool alarma1Activa = false;
bool botonArranqueActivo = false;

void setup() {
// Configurar pines como entradas o salidas
pinMode(botonArranquePin, INPUT_PULLUP); // Botón de arranque
pinMode(botonParoPin, INPUT_PULLUP); // Botón de paro
pinMode(sensorParoPin, INPUT_PULLUP); // Sensor de paro de emergencia
pinMode(sensorMotor1Pin, INPUT_PULLUP); // Sensor de desactivación de motor1
pinMode(falla1Pin, INPUT_PULLUP); // Falla 1
pinMode(falla2Pin, INPUT_PULLUP); // Falla 2
pinMode(falla3Pin, INPUT_PULLUP); // Falla 3

pinMode(motor1Pin, OUTPUT); // Motor 1


pinMode(motor2Pin, OUTPUT); // Motor 2
pinMode(motor3Pin, OUTPUT); // Motor 3
pinMode(alarma1Pin, OUTPUT); // Alarma 1

// Inicializar motores y alarma en estado apagado


digitalWrite(motor1Pin, LOW);
digitalWrite(motor2Pin, LOW);
digitalWrite(motor3Pin, LOW);
digitalWrite(alarma1Pin, LOW);
}

void loop() {
// Leer estados de los botones y sensores
bool botonArranque = digitalRead(botonArranquePin) == LOW;
bool botonParo = digitalRead(botonParoPin) == LOW;
bool sensorParo = digitalRead(sensorParoPin) == LOW;
bool sensorMotor1 = digitalRead(sensorMotor1Pin) == LOW;
bool falla1 = digitalRead(falla1Pin) == LOW;
bool falla2 = digitalRead(falla2Pin) == LOW;
bool falla3 = digitalRead(falla3Pin) == LOW;

// Manejo del botón de arranque (enclavado)


if (botonArranque && !botonArranqueActivo) {
botonArranqueActivo = true;
encenderMotoresSecuencialmente();
}
// Manejo del botón de paro (desenclavado)
if (botonParo) {
botonArranqueActivo = false;
apagarMotores();
digitalWrite(alarma1Pin, LOW); // Apagar alarma si es necesario
}

// Manejo del sensor de paro de emergencia


if (sensorParo) {
apagarMotores();
digitalWrite(alarma1Pin, LOW); // Apagar alarma
}

// Manejo del sensor que desactiva motor1


if (sensorMotor1) {
desactivarMotor1();
}

// Manejo de los botones de falla


if (falla1 || falla2 || falla3) {
apagarMotores();
digitalWrite(alarma1Pin, HIGH); // Activar alarma
}

// Retardo para evitar rebotes de los botones


delay(50);
}

void encenderMotoresSecuencialmente() {
if (!motor1Activo) {
digitalWrite(motor1Pin, HIGH);
motor1Activo = true;
delay(1000); // Espera 1 segundo antes de encender motor2
}

if (!motor2Activo) {
digitalWrite(motor2Pin, HIGH);
motor2Activo = true;
delay(1000); // Espera 1 segundo antes de encender motor3
}

if (!motor3Activo) {
digitalWrite(motor3Pin, HIGH);
motor3Activo = true;
}
}

void apagarMotores() {
digitalWrite(motor1Pin, LOW);
digitalWrite(motor2Pin, LOW);
digitalWrite(motor3Pin, LOW);
motor1Activo = false;
motor2Activo = false;
motor3Activo = false;
}

void desactivarMotor1() {
if (motor1Activo) {
digitalWrite(motor1Pin, LOW);
motor1Activo = false;
}
if (!motor2Activo) {
digitalWrite(motor2Pin, HIGH);
motor2Activo = true;
}
if (!motor3Activo) {
digitalWrite(motor3Pin, HIGH);
motor3Activo = true;
}
if (!alarma1Activa) {
digitalWrite(alarma1Pin, HIGH); // Activar alarma
alarma1Activa = true;
}
}

Potrebbero piacerti anche