En este apartado se mostraran los proyectos realizados físicamente y hemos llevado de la teoría a la practica realizando los siguientes circuitos con representaciones:
Estacionamiento
En esta ocasiona realizamos un estacionamiento con la gran función de activación de la pluma automática con apoyo de sensores que detectaran el automóvil y se abriría la pluma y se encendería el led en verde y el auto entraría al estacionamiento y cuando salga pasa el mismo proceso.
Materiales:
Sensores ultrasonico (2)
Servomotores (2)
Led RGB
Arduino UNO
Pila de 9V
Protoboard
Cables para conexión
circuito:
Resultados:
Código empleado:
:#include <Servo.h>
Servo ioe;
Servo ioe2;
int trig = 2;
int echo = 3;
int trig2 = 9;
int echo2 = 8;
int tiempo, distancia;
int tiempo2, distancia2;
// Pines del LED RGB
int ledRojo = 5;
int ledVerde = 6;
int ledAzul = 7;
void setup() {
// Configuración de sensores y servos
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
ioe.attach(4);
pinMode(trig2, OUTPUT);
pinMode(echo2, INPUT);
ioe2.attach(10);
// Configuración de pines para el LED RGB
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(ledAzul, OUTPUT);
// Apagar todos los colores del LED al inicio
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, LOW);
digitalWrite(ledAzul, LOW);
}
void loop() {
bool sensorActivo = false; // Variable para verificar si algún sensor detecta una señal válida
// --- LECTURA DEL PRIMER SENSOR ---
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
tiempo = pulseIn(echo, HIGH);
distancia = tiempo / 58.2;
// Control del servo 1 y verificación del sensor
if (distancia <= 10 && tiempo > 0) { // Comprobamos que el tiempo no sea 0
ioe.write(90); // Posición elevada
sensorActivo = true; // El sensor 1 detecta una señal válida
} else {
ioe.write(0);
}
delay(100); // Pequeña pausa para evitar interferencia
// --- LECTURA DEL SEGUNDO SENSOR ---
digitalWrite(trig2, LOW);
delayMicroseconds(2);
digitalWrite(trig2, HIGH);
delayMicroseconds(10);
digitalWrite(trig2, LOW);
tiempo2 = pulseIn(echo2, HIGH);
distancia2 = tiempo2 / 58.2;
// Control del servo 2 y verificación del sensor
if (distancia2 <= 10 && tiempo2 > 0) { // Comprobamos que el tiempo no sea 0
ioe2.write(90); // Posición elevada
sensorActivo = true; // El sensor 2 detecta una señal válida
} else {
ioe2.write(0);
}
// Control del LED RGB
if (sensorActivo) {
// Si algún sensor detecta una señal válida, encender en verde
digitalWrite(ledVerde, HIGH);
digitalWrite(ledRojo, LOW);
} else {
// Si ningún sensor detecta señal, encender en rojo
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
}
// Aquí es donde realizas el movimiento del servo después de controlar el LED
if (sensorActivo) {
delay(2000); // Espera 2 segundos
ioe.write(0); // Baja el servo 1 a la posición original
ioe2.write(0); // Baja el servo 2 a la posición original (si aplica)
}
delay(100); // Pequeña pausa para la siguiente lectura
}
SKATE GAME
El proyecto realizado fue realizar un juego en una pantalla lcd, el funcionamiento y los objetivos con este mini juego son muy sencillos. El juego consiste en esquivar los obstáculos que van apareciendo en la pantalla, cada vez a mayor velocidad. Para ello debemos pulsar un botón, el cual hará que nuestro personaje en skate salte y esquive el obstáculos, pero claro, no todo es tan fácil, porque habrá que calcular cuanto y cuando pulsamos el botón, ya que después de cada obstáculo, SIEMPRE VIENEN MÁS.
Materiales empleados:
Arduino Uno
Potenciómetro (10000 holmios)
Cables (macho hembra)
Boton
Protoboard
Cables
Grúa Robótica
Las grúas son maquinaria esencial en diversas industrias, desempeñando un papel crucial en la manipulación y transporte de cargas pesadas, especialmente en sectores como la construcción, la minería y el transporte. En la construcción, permiten la elevación de materiales voluminosos, como vigas y paneles, facilitando la edificación de estructuras complejas y reduciendo el tiempo necesario para completar proyectos. Además, contribuyen a incrementar la seguridad al realizar tareas que serían peligrosas o físicamente imposibles para los trabajadores. En el ámbito industrial, las grúas viajeras y hidráulicas son fundamentales para elevar y transportar materiales en fábricas y almacenes, optimizando los procesos de producción.Asimismo, las grúas son vitales en el transporte y en situaciones de emergencia; permiten mover vehículos pesados tras accidentes y ayudan a rescatar personas atrapadas bajo escombros. Su versatilidad se refleja en los diferentes tipos disponibles, que se adaptan a diversas necesidades operativas. Al permitir realizar tareas con mayor rapidez y eficiencia, las grúas no solo mejoran la productividad, sino que también contribuyen a reducir costos operativos en proyectos a gran escala.
En este proyecto donde cumplimos nuestro objetivo de crear una grúa atreves de nuestro kits de circuito y hacerla funcionar adecuadamente como una grúa con menor capacidad pero mismo objetivo de cargar objetos.
Materiales:
Arduino Uno r3
Protoboard
3 servomotores
Motor paso a paso
Tarjeta controlador motor paso a paso
2 joysticks
Palillos de madera
Cables
Cables macho hembra
Código:
#include <Servo.h>
#include <Stepper.h>
// Declaración de los servomotores
Servo servomotor3; // Servomotor pinza
Servo servomotor2; // Servomotor en medio
Servo servomotor1; // Servomotor abajo
// Declaración del motor de pasos
Stepper motor(2048, 4, 6, 5, 7);
// Pines de entrada del joystick 1
const int joyX1 = A0; // motor de pasos
const int joyY1 = A1; // servo 1
// Pines de entrada del joystick 2
const int joyX2 = A3; // servo 2
const int joyY2 = A4; // servo 3
// Variables de estado
int posServo1 = 90; // Posición inicial del servomotor 1S
int posServo2 = 45; // Posición inicial del servomotor 2
int posServo3 = 0; // Posición inicial del servomotor 3
void setup() {
// Configuración de servomotores
servomotor1.attach(8);
servomotor2.attach(9);
servomotor3.attach(10);
// Configuración del motor de pasos
motor.setSpeed(10); // Velocidad del motor en RPM
// Inicialización de servos
servomotor1.write(posServo1);
servomotor2.write(posServo2);
servomotor3.write(posServo3);
}
void loop() {
bool moved = false;
// Leer joystick 1
int xValue1 = analogRead(joyX1); // Lectura del eje X para joystick 1
int yValue1 = analogRead(joyY1); // Lectura del eje Y para joystick 1
// Mover motor paso a paso (eje X)
if (xValue1 < 400) {
motor.step(-10); // Gira hacia la izquierda
moved = true;
} else if (xValue1 > 600) {
motor.step(10); // Gira hacia la derecha
moved = true;
}
// Mover servo 1 (eje Y)
if (yValue1 < 400) {
posServo1 = constrain(posServo1 -1, 90, 170);
servomotor1.write(posServo1);
moved = true;
delay(35);
} else if (yValue1 > 600) {
posServo1 = constrain(posServo1 + 1, 90, 170);
servomotor1.write(posServo1);
moved = true;
delay(35);
}
// Joystick 2
int xValue2 = analogRead(joyX2); // Eje del eje X para joystick 2
int yValue2 = analogRead(joyY2); // Eje Y para joystick 2
// Mover servo 2 (eje X)
if (xValue2 < 400) {
posServo2 = constrain(posServo2 - 1, 0, 90);
servomotor2.write(posServo2);
moved = true;
} else if (xValue2 > 600) {
posServo2 = constrain(posServo2 + 1, 0, 90);
servomotor2.write(posServo2);
moved = true;
}
delay(25);
// Mover servo 3 (eje Y)
if (yValue2 < 400) {
posServo3 = constrain(posServo3 - 1, 0, 45);
servomotor3.write(posServo3);
moved = true;
} else if (yValue2 > 600) {
posServo3 = constrain(posServo3 + 1, 0, 45);
servomotor3.write(posServo3);
moved = true;
}
delay(5);
}
Circuito físico:
No hay comentarios:
Publicar un comentario