2.1 Arduino Uno:es una plataforma de creación de electrónica de código abierto, la cual está basada en hardware y software libre, flexible y fácil de utilizar para los creadores y desarrolladores.
2.2 Sensor Óptico:Detectan la presencia de una persona o de un objeto que interrumpen el haz de luz que le llega al sensor.
2.3 Morreductor: Los reductores ó motorreductores son apropiados para el accionamiento de toda clase de máquinas y aparatos que necesitan reducir su velocidad en una manera segura y eficiente. Las transmisiones de fuerza por correa, cadena o trenes de engranajes que aún se usan para la reducción de velocidad presentan una regularidad perfecta tanto en la velocidad como en la potencia transmitida, mayor eficiencia en la transmisión de la potencia suministrada por el motor.
2.4 Llantas:
2.5 Rueda loca:
3. Evidencia del trabajo:
4. OBSERVACIONES:
Al momento de realizar las conexiones nos faltaron cables hembras por lo que se opto por alambres de cobre delgados para la conexiones.
Uno de nuestro sensores no podía ser calibrado para la distancia entre el suelo y la base del carro debido a que la rueda loca era muy grande.
Se busco una guía en Internet para realizar la programación.
5. CONCLUSIONES:
Al finalizar el laboratorio de logro armar el circuito de nuestro carro gracias a las simulaciones en tinkercad.
Se logro concluir que para poner una guía para que el carro siga su rutina es necesario colocar una cinta negra o algún material oscuro.
Se logro comprender las diferentes funciones de los códigos en la programación
Los int (enteros) son el tipo de datos primario para el almacenamiento de números.
Void Setup:
El setup es la primera función en ejecutarse dentro de un programa en Arduino. Es, básicamente, donde se «setean» las funciones que llevará a cabo el microcontrolador.Aquí es donde establecemos algunos criterios que requieren una ejecución única. Por ejemplo, si nuestro programa va a usar comunicación serial, en el setup establecemos el comando Serial.begin para indicarle al programa que vamos a iniciar la comunicación serial.Si vamos a utilizar un pin determinado como salida de voltaje, usamos el pinMode para indicarle a Arduino que determinado pin funcionará como salida, usando el parámetro OUTPUT.
Serial.begin:
Establece la velocidad de datos en bits por segundo (baudios) para la transmisión de datos en serie.
PinMode:
Configura el pin especificado para que se comporte como entrada o salida.
Void loop:
Loop en inglés significa lazo o bucle. La función loop en Arduino es la que se ejecuta un número infinito de veces. Al encenderse el Arduino se ejecuta el código del setup y luego se entra al loop, el cual se repite de forma indefinida hasta que se apague o se reinicie el microcontrolador.
DigitalRead:
Lee el valor de un pin digital especificado, ya sea HIGH o LOW.
Serial.print:
Imprime datos en el puerto serie como texto ASCII legible para humanos. Este comando puede tomar muchas formas. Los números se imprimen utilizando un carácter ASCII para cada dígito. Los flotadores se imprimen de manera similar como dígitos ASCII, por defecto con dos decimales. Los bytes se envían como un solo carácter. Los caracteres y las cadenas se envían tal cual. Por ejemplo-
Serial.print(78) da "78"
Serial.print(1.23456) da "1.23"
Serial.print('N') da "N"
Serial.print("Hello world.") da "Hola mundo".
If:
La if es una declaración que verifica si hay una condición y ejecuta la declaración o el conjunto de declaraciones en curso si la condición es 'verdadera'.
Else if:
Permite un mayor control sobre el flujo de código que el básico if declaración, al permitir múltiples pruebas para agruparse. Se else ejecutará una cláusula (si es que existe) si se if produce la condición en la declaración false. El else puede proceder con otra if prueba, de modo que se puedan ejecutar múltiples pruebas mutuamente excluyentes al mismo tiempo.
DigitalWrite:
Escriba un HIGH o un LOW valor en un pin digital.
Si el pin se ha configurado como OUTPUTcon pinMode (), su voltaje se establecerá en el valor correspondiente: 5V (o 3.3V en placas de 3.3V) para HIGH, 0V (tierra) para LOW.
Si el pin está configurado como INPUT, digitalWrite () habilitará (HIGH) o deshabilitará (LOW) el pullup interno en el pin de entrada. Se recomienda configurar pinMode () a INPUT_PULLUP para habilitar la resistencia de pull-up interna. Vea el tutorial Digital Pins para más información.
Si no se establece la pinMode () a OUTPUT, y conectar un LED a un pin, al llamar digitalWrite (HIGH), el LED puede aparecer tenue. Sin una configuración explícita pinMode (), digitalWrite () habrá habilitado la resistencia pull-up interna, que actúa como una gran resistencia limitadora de corriente.
Código para arduino:
int IR1 = 0;
int IR2 = 0;
//////////variables de PWM
int motor2A = 5;
int motor2B = 6;
//////////variables de los motores
int motor1A = 4;
int motor1B = 7;
void setup() {
Serial.begin(9600);/////////Establece la velocidad de datos en bits por segundo(9600)
pinMode(2, INPUT);/////////sensor 1
pinMode(3, INPUT);/////////sensor 2
////////////salidas motor normales
pinMode (motor1A, OUTPUT);
pinMode (motor1B, OUTPUT);
///////////salidas motor PWM
pinMode (motor2A, OUTPUT);
pinMode (motor2B, OUTPUT);
}
void loop() {
IR1 = digitalRead(2);
IR2 = digitalRead(3);
Serial.print(IR1);//////Imprime datos en el puerto serie(IR1)
Serial.print(IR2);//////Imprime datos en el puerto serie(IR2)
/////////////sentencias
if (IR1 == 0 && IR2 == 0) {
parar();
}
else if (IR1 == 0 && IR2 == 1) {
derecha();
}
else if (IR1 == 1 && IR2 == 0) {
izquierda();
}
else if (IR1 == 1 && IR2 == 1) {
avanzar();
}
delay(200);
}
//////////////funciones
void avanzar() {
digitalWrite(motor1A, 1);
digitalWrite(motor1B, 1);
digitalWrite(motor2A, 150);
digitalWrite(motor2B, 150);
}
void derecha() {
digitalWrite(motor1A, 0);
digitalWrite(motor1B, 1);
digitalWrite(motor2A, 0);
digitalWrite(motor2B, 150);
}
void izquierda() {
digitalWrite(motor1A, 1);
digitalWrite(motor1B, 0);
digitalWrite(motor2A, 150);
digitalWrite(motor2B, 0);
}
void parar() {
digitalWrite(motor1A, 0);
digitalWrite(motor1B, 0);
digitalWrite(motor2A, 0);
digitalWrite(motor2B, 0);
}
Imagen de la simulación en Tinkercad:
Vídeo:
Conclusiones:
El programa arduino trabaja con lenguaje C++ esto hace que el método al momento de realizar el código sea mas sencillo.
Los comandos usados para el código son sencillos y prácticos, no obstante cada uno tiene una forma de sintaxis.
El programa tinkercad es una plataforma virtual capaz de simular un circuito, nos ayudo con la simulación para el carro
Los robot-tortuga son muy populares y trabajar con ellos resulta
divertido. Por ese motivo su uso se está extendiendo en los centros
educativos y en el mundo de los aficionados. Aunque sus
posibilidades son muy amplias, normalmente los proyectos para los
que se utilizan caen dentro de una de estas tres categorías:
1. Seguir el trazado de una línea.
2. Evitar obstáculos en el camino.
3. Recorrer un laberinto.
Proteus pone a nuestra disposición un completo modelo eléctrico de
un robot-tortuga que incluye motores y sensores gobernados por una
placa Arduino. Y nos lo presenta dentro de un mundo de ‘realidad
virtual’ intencionadamente simple pero, a la vez, muy flexible en el
que es posible ver la evolución de nuestro robot-tortuga y simular
todos sus movimientos.
Controlar nuestro robot-tortuga utilizando el Diseñador Gráfico se
simplifica enormemente mediante la utilización de los “métodos de
alto nivel” que podemos incorporar dentro del flujograma que
contiene la lógica de control. Alternativamente, es posible obtener
una mayor flexibilidad y escribir programas tan complejos como
deseemos utilizando la programación en el lenguaje C disponible con
los equipos Arduino. Y, por supuesto, independiente del modo de
programación seleccionado, Proteus pone a nuestra disposición un
amplio y potente conjunto de herramientas de depuración y
simulación con lo que podemos asegurarnos de que nuestro
programa se comportará como realmente deseamos que lo haga,
antes de proceder a cargar el código dentro de nuestro robot-tortuga
del mundo real.
Actualmente, Proteus incorpora dos modelos completos para la
simulación de dos robot-tortuga con amplia presencia en el mercado:
2.- Vídeo
Simulación
3.-Conclusiones
Logramos realizar la simulación en proteus exitosa mente aplicando una programación diferente a lo que vimos antes.
Realizamos e identificamos los componente de un diagrama de flujo.
El LM35 es un circuito electrónico sensor que puede medir temperatura. Su salida es analógica, es decir, te proporciona un voltaje proporcional a la temperatura. El sensor tiene un rango desde −55°C a 150°C. Su popularidad se debe a la facilidad con la que se puede medir la temperatura. Incluso no es necesario de un microprocesador o microcontrolador para medir la temperatura. Dado que el sensor LM35 es analógico, basta con medir con un multímetro, el voltaje a salida del sensor.
Para convertir el voltaje a la temperatura, el LM35 proporciona 10mV por cada grado centígrado. También cabe señalar que ese sensor se puede usar sin offset, es decir que si medimos 20mV a la salida, estaremos midiendo 2°C.
"El sensor DS18B20"
El DS18B20 es un sensor de temperatura en el cual se lleva la conversión analógico a digital dentro del encapsulado, facilitando el resultado de dicha conversión a través de una interfaz digital llamada 1-wire.
El sensor de temperatura DS18B20 se puede encontrar en diversas formas, entre las cuales destacamos 2 que son bastante comunes:
El encapsulado TO-92 (usado comúnmente en transistores).
El sensor tipo sumergible, que es fabricado por terceros utilizando sensores en encapsulado TO-92 colocados dentro de una cubierta impermeable de acero inoxidable.
2.- Vídeo
Simulación
Código
Ejercicio 1
Ejercicio Final
3.-Conclusiones
Logramos realizar las lecturas en puertos analógicos, resolviendo los ejercicios planteados en el laboratorio.
Utilizamos y configuramos el sensor de temperatura LM35.
Realizamos una lectura analógicas en la pantalla LCD.