Encendido led, contador 16 en 16, contador ascendente y descendete Arduino
Enviado por JudasAzul • 2 de Junio de 2020 • Práctica o problema • 2.565 Palabras (11 Páginas) • 296 Visitas
Microcontroladores
Reportes (Led básico, Contador, Contador de 16 en 16, Ascendente, Ascendente y descendente, Flanco)
Profesor:
Vázquez Rivera José Álvaro
Integrante:
Tadeo Sánchez Jorge Alfonso
Escuela:
Instituto Tecnológico de San Luis Potosí
ÍNDICE:
INTRODUCCION pag.3
PLANTEAMIENTO DEL PROBLEMA pag.3
OBJETIVO pag.3
MATERIAL pag.4
DESARROLLO pag.4
Led Básico pag.4
Contador pag.6
Contador de 16 en 16 pag.9
Ascendente pag.11
Ascendente y descendente pag.13
Flanco pag.16
CONCLUSION pag.19
INTRODUCCIÓN:
A continuación, veremos en este reporte soluciones a los problemas de las unidades 1, 2 y 3 con el programa Arduino, viendo las facilidades que este programa nos da de un lenguaje mucho mas claro y menos complicado, una ilustración y facilidad de programar teniendo conocimientos básicos del lenguaje C.
Esto nos tendrá de beneficio tener facilidad de manejo de diferentes softwares de programación, no solo encerrarnos a un solo software sino a varios, así como lo fue en Atmel studio7 y Arduino.
PLANTEAMIENTO DEL PROBLEMA:
P01.- Encendido y apagado de un led de forma automática con tiempo variable en Arduino.
P02.- Contador de 0 a 255 en forma binaria representada en leds de forma automática con tiempo variable en Arduino.
P03.- Contador de 16 en 16 en forma binaria representada en leds de forma automática con tiempo variable en Arduino.
P04.- Contador Ascendente de uno en uno en forma binaria representada en leds de forma manual con un botón pulsador en Arduino.
P05.- Contador Ascendente y descendente de uno en uno en forma binaria representada en leds de forma manual con dos botones pulsadores uno que incremente y otro que decremente en Arduino.
P06.- Flancos positivos contador Ascendente o Descendente de uno en uno en forma binaria representada en leds de forma manual con un botón pulsador que solo detecte un flanco ya sea negativo o positivo.
OBJETIVO:
Solucionar los problemas por medio del software de programación Arduino, haciendo lo que pide cada uno de ellos, haciendo la simulación en Proteus y verificando que funciona correctamente o bien haciéndola físicamente con un Arduino UNO y verificando que funciona correctamente.
MATERIAL:
- Arduino UNO
- Cable de comunicación Arduino UNO
- Proteus
- Software de Arduino
- Tira de leds (10 leds)
- 2 Botones pulsadores
- Duponds o jumpers (20 pz)
- Resistencias de entre 220 a 330Ω (resistencias entre estos valores solo 12pz)
DESARROLLO:
Led Básico
- Se debe de declarar la variable para el pin que se va a ocupar como salida para el led, en este caso lo nombraremos “pinLed” y su dirección será el numero 13, enseguida dentro de void setup(), declaramos que pinLed será una salida.
- Dentro de void loop(), daremos la indicación de digitalWrite para que pinLed encienda, damos un delay de medio segundo, continuamos con otro digital Write para que pinLed se apague y por ultimo dejamos otro tiempo de espera de medio segundo
- Por último, compilamos el programa y lo cargamos en el COM que se encuentre nuestro Arduino conectado, si es el caso físico.
- Si es el caso de que fuera por simulación debemos de dirigirnos a Programa, después damos click en exportar binarios compilados, nos dirigimos a proteus damos doble click en el atmega 328 y le damos el archivo con terminación “.hex” que se generó en nuestra carpeta del programa de Arduino.
[pic 1]
Conexión:
[pic 2]
Contador
- En este ejercicio el mas sencillo de hacer es el ejemplo 1, que esta en comentarios en la parte de abajo del programa el cual lo primero que hace es guardar en la memoria RAM la variable cuenta y la iniciamos en 0.
- Dentro del void setup() ponemos quienes serán los pines de salida utilizando DDRD = 0xFF para que todos los pines del puerto d sean salidas.
- Dentro del void loop() ponemos PORTD = cuenta para que los pines d inicien en 0 y seguimos con la instrucción cuenta++, esto para que vaya incrementando un bit cada que pasa por la instrucción, terminamos con un delay de medio segundo para que haga el cambio de cada conteo.
- Por último, compilamos el programa y lo cargamos en el COM que se encuentre nuestro Arduino conectado, si es el caso físico.
- Si es el caso de que fuera por simulación debemos de dirigirnos a Programa, después damos click en exportar binarios compilados, nos dirigimos a proteus damos doble click en el atmega 328 y le damos el archivo con terminación “.hex” que se generó en nuestra carpeta del programa de Arduino.
[pic 3]
[pic 4]
Conexión:
[pic 5]
Contador de 16 en 16
- En la memoria RAM guardamos la variable contadora y le damos el valor de 0.
- Dentro del void setup() declaramos que todo el puerto D sean salidas con la instrucción DDRD = 0xFF.
- Dentro de void loop() ponemos que el puerto D se inicie en 0, con la instrucción contador = contador+16 va a ir sumando 16 al valor anterior del contador esto hará que sea secuencia sumatoria de 16 en 16, terminamos con un delay que hará esperar medio segundo para ir sumando 16 y 16.
- Por último, compilamos el programa y lo cargamos en el COM que se encuentre nuestro Arduino conectado, si es el caso físico.
- Si es el caso de que fuera por simulación debemos de dirigirnos a Programa, después damos click en exportar binarios compilados, nos dirigimos a proteus damos doble click en el atmega 328 y le damos el archivo con terminación “.hex” que se generó en nuestra carpeta del programa de Arduino.
[pic 6]
Conexión:
[pic 7]
Ascendente
- Primero guardamos en la memoria RAM pulso y le damos el valor inicial de cero.
- Dentro de la instrucción void setup() decimos cual pin será de entrada en este caso el 2, y marcamos como salidas todo el Puerto B.
- Dentro de la instrucción void loop() decimos que cuando se lea una acción en el pin 2 se pase a la instruccion de pulso, entonces continuamos con una instrucción if(), que si pulso es igual a 1 se cumpla la condición de que el puerto B incremente en uno, damos un delay de medio segundo para volver a tomar la instrucción de if().
- Por último, compilamos el programa y lo cargamos en el COM que se encuentre nuestro Arduino conectado, si es el caso físico.
- Si es el caso de que fuera por simulación debemos de dirigirnos a Programa, después damos click en exportar binarios compilados, nos dirigimos a proteus damos doble click en el atmega 328 y le damos el archivo con terminación “.hex” que se generó en nuestra carpeta del programa de Arduino.
[pic 8]
Conexión:
[pic 9]
Ascendente y descendente
- Primero declaramos en la memoria RAM mas que tenga valor en cero y menos que también sea en 0 para que de inicio esten en 0.
- Dentro del void setup() declaramos los pines de entrada que en este caso serán el 2 y 3, seguimos dando como salida todo el puerto B.
- Dentro de void loop() decimos que cuando se lea algo en el pin 2 se pase a la instrucción de mas y cuando algo se lea en el pin 3 se pase a la instrucción de menos, continuamos con una instrucción if() que si mas es igual a 1 entonces tenga un incremento de uno en el puerto B, después le da un delay de medio segundo para volver a tomar la instrucción, seguimos con otro if() el cual tendrá que si menos es igual a 1 entonces cumpla lo siguiente, que el puerto B decremente en 1, siguiendo de un delay de medio segundo para volver a retomar la instrucción.
- Por último, compilamos el programa y lo cargamos en el COM que se encuentre nuestro Arduino conectado, si es el caso físico.
- Si es el caso de que fuera por simulación debemos de dirigirnos a Programa, después damos click en exportar binarios compilados, nos dirigimos a proteus damos doble click en el atmega 328 y le damos el archivo con terminación “.hex” que se generó en nuestra carpeta del programa de Arduino.
[pic 10]
...