0% encontró este documento útil (0 votos)
15 vistas6 páginas

Simulación de Microcontroladores en Tinkercad

Prácticas de electrónica
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas6 páginas

Simulación de Microcontroladores en Tinkercad

Prácticas de electrónica
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TECNOLÓGICO DE ESTUDIOS SUPERIORES

DE
CUAUTITLAN IZCALLI
PERIODO 2021/2

INGENIERÍA MECATRÓNICA
NOMBRE DEL ALUMNO
Reyes Mondragón Erick Alan

ASIGNATURA
MICROCONTROLADORES

PROFESOR
Ing. Ivette Núñez Nava

GRUPO
971-M

FECHA
14/ Enero/ 2025
COMPETEMCIA 4 – 5

Evidencia del diseño de las letras

Evidencia de la simulación
https://www.tinkercad.com/things/daaHAMdcf1N/editel?returnTo=%2Fdashboard
&sharecode=68T1xkSjDgxEUnzTMUF1UvI8YyLW63dtn9bce5mGc7w

Evidencia del programa


#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
Servo servo6;
Servo servo7;
const int trigPin = 13;
const int echoPin = 12;
int ret = 1000;
int distanciaLimite = 20;
void setup() {
servo1.attach(5);
servo2.attach(6);
servo3.attach(7);
servo4.attach(8);
servo5.attach(9);
servo6.attach(10);
servo7.attach(11);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
if (sensorActivado()) {
Serial.println("Objeto detectado, iniciando secuencia");
if (!verificarMovimiento(90, 180, 90, 90, 90, 90, 90)) return; //G
if (!verificarMovimiento(90, 90, 90, 90, 180, 180, 90)) return; // E
if (!verificarMovimiento(90, 90, 90, 90, 90, 90, 90)) return; // O
if (!verificarMovimiento(180, 90, 90, 90, 90, 90, 180)) return; // V
if (!verificarMovimiento(90, 90, 90, 90, 90, 90, 180)) return; // A
if (!verificarMovimiento(90, 90, 90, 180, 90, 90, 180)) return; // N
if (!verificarMovimiento(90, 90, 90, 180, 90, 90, 180)) return; // N
if (!verificarMovimiento(180, 90, 90, 180, 180, 180, 180)) return; // I
if (!verificarMovimiento(180, 180, 180, 180, 180, 180, 90)) return; // -
if (!verificarMovimiento(90, 90, 90, 90, 90, 90, 180)) return; // A
if (!verificarMovimiento(180, 180, 180, 90, 90, 90, 180)) return; // L
if (!verificarMovimiento(90, 90, 90, 90, 90, 90, 180)) return; // A
if (!verificarMovimiento(90, 90, 90, 180, 90, 90, 180)) return; // N
} else {
resetServos();
Serial.println("Esperando detección...");
}
}
bool verificarMovimiento(int s1, int s2, int s3, int s4, int s5, int s6, int s7) {
if (!sensorActivado()) {
resetServos();
Serial.println("Objeto perdido, reseteando servo");
return false;
}
moverServos(s1, s2, s3, s4, s5, s6, s7);
delay(ret);
return true;
}
void moverServos(int s1, int s2, int s3, int s4, int s5, int s6, int s7) {
servo1.write(s1);
servo2.write(s2);
servo3.write(s3);
servo4.write(s4);
servo5.write(s5);
servo6.write(s6);
servo7.write(s7);
}
void resetServos() {
moverServos(90, 90, 90, 90, 90, 90, 90);
}
bool sensorActivado() {
long duration;
int distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distancia: ");
Serial.println(distance);
return distance <= distanciaLimite;
}

Circuito funcionando

También podría gustarte