Laboratorio 15
LABORATORIO N°15 Microcontroladores
Proyecto"Carro Seguidor de Lineas"
Integrantes:
- Contreras Quispe Erick
- Puma Maldonado Fabian
- Turpo Luque Diego
Introducción:
Código:
Int:
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);
}
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
laboratorio 16: https://erick1256562.blogspot.com/2019/12/laboratorio-n-16.html
Comentarios
Publicar un comentario