Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Microprocesadores y Microcontroladores: Guía Práctica para el Desarrollo de Aplicaciones, Apuntes de Microprocesadores

Microprocesadores y Microcontroladores

Tipo: Apuntes

2020/2021

Subido el 16/03/2021

st.acosta9
st.acosta9 🇨🇴

5

(4)

4 documentos

1 / 49

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Microprocesadores y
Microcontroladores
Oscar Alberto Jaramillo Alzate
ECBTI/ZOCC/CEAD Medellín
Medellín 2020
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31

Vista previa parcial del texto

¡Descarga Microprocesadores y Microcontroladores: Guía Práctica para el Desarrollo de Aplicaciones y más Apuntes en PDF de Microprocesadores solo en Docsity!

Microprocesadores y

Microcontroladores

Oscar Alberto Jaramillo Alzate

ECBTI/ZOCC/CEAD Medellín Medellín 2020

Desarrollo del componente práctico

1. El desarrollo del componente práctico se va a desarrollar de forma individual o grupal según lo que

indique el tutor asignado de componente práctico de la zona (Por favor estar atento a las indicaciones

del tutor asignado para verificar si se va a desarrollar individual o grupal)

2. Se va a utilizar el software de programación Arduino o Python

3. Se va a utilizar el software de simulación Proteus

4. Se van a desarrollar los 3 laboratorios a continuación de forma virtual

5. Cada una de las prácticas se desarrollan de forma independiente, se debe entregar video de

sustentación de la práctica junto con su respectivo informe, tengan en cuenta que al final son 3

informes con el desarrollo de cada una de las prácticas con sus vídeos de sustentación respectivos

6. La sustentación la realizan por medio de un video enlazado a la plataforma Youtube, con una duración

mínima de 5 minutos explicando el código generado en Arduino o Python y el funcionamiento del

circuito simulado en Proteus

7. Van a entregar el informe teniendo en cuenta las siguientes indicaciones, tenga en cuenta que dentro

del informe debe estar el link del video de sustentación de la práctica desarrollada

Portada

Nombre – Código, Universidad, Escuela, Programa Académico, Fecha

Introducción

Temas a tratar y finalidad del documento

Resumen

Desarrollo, metodología, y conclusiones

Objetivos

ObjetivosAcorde a los propósitos de las actividades a desarrollar

Marco Metodológico

Descripción paso a paso del desarrollo de la actividad. Se anexan imágenes, tablas, graficas, libros, links, videos, blogs, etc.

Conclusiones

Una conclusión es un aspecto importante y relevante que observaron en el desarrollo de la actividad, como:aspectos de diseño,metodología,equivocaciones,distintos métodos para llegar a un fin,y demás ítems relevantes que se encontraron

Bibliografía

Normas APA

Recomendaciones

Propuestas por el estudiante después de observar cómo se puede mejorar la actividad y las describe en el documento UNICAMENTE: para aquellos estudiantes que deseen realizar las prácticas utilizando las tarjetas de desarrollo Arduino, Raspberry Pi o ST de forma física, lo pueden hacer y no necesitan realizar simulación, en cambio presentan el video donde se observa el funcionamiento y desarrollo de la práctica con los elementos propuestos de cada una, y como bonificación no presentan el informe, en cambio realizan un ensayo máximo de una página donde explican el funcionamiento junto con los nombres y datos de los estudiantes

https://es.wikipedia.org/wiki/Algoritmo_divide_y_vencer%C3%A1s

Algoritmo divide y vencerás

En la cultura popular, divide y vencerás hace referencia a un refrán que implica resolver

un problema difícil, dividiéndolo en partes más simples tantas veces como sea

necesario, hasta que la resolución de las partes se torna obvia. La solución del

problema principal se construye con las soluciones encontradas.

En las ciencias de la computación, el término divide y vencerás (DYV) hace referencia a

uno de los más importantes paradigmas de diseño algorítmico. El método está basado

en la resolución recursiva de un problema dividiéndolo en dos o más subproblemas de

igual tipo o similar. El proceso continúa hasta que éstos llegan a ser lo suficientemente

sencillos como para que se resuelvan directamente. Al final, las soluciones a cada uno

de los subproblemas se combinan para dar una solución al problema original.

Se debe diseñar un contador  (asumimos n = n + 1;) utilizando 2 displays de 7

segmentos  (es indiferente, la programación es igual solo cambia si activo en alto o

en bajo las salidas), (El grupo escoge si es de ánodo o cátodo común)  (cambia la

configuración física del hardware), para presentar el valor desde 0.0 hasta 9.9 

(rango de conteo) cada número del reloj (depende del tiempo, se usa un

temporizador) es un display de 7 segmentos, debe tener un botón de inicio y parada 

(puede prestarse a ambigüedad, dado que no hay mas indicaciones; asumimos 2

pulsadores; inicialmente mínimo “dos” estados).

Desglose del planteamiento del problema

1. Display 7 segmentos Hardware y Conexiones

2. Conteo “decimal” incremental de dos dígitos circular: 0.0 → 9.9 → 0.0 → 9.

3. Temporizador Contador (incremento)

4. Temporizador Displays 7 segmentos

5. Leer pulsadores

6. Determinar estado del sistema

Pasos a seguir

Digit Display abcdefg a b c d e f g 0 0 0x7E on on on on on on 1 1 0x30 on on 2 2 0x6D on on on on on 3 3 0x79 on on on on on 4 4 0x33 on on on on 5 5 0x5B on on on on on 6 6 0x5F on on on on on on 7 7 0x70 on on on 8 8 0x7F on on on on on on on 9 9 0x7B on on on on on on

Distribución de los
segmentos
Representación numérica en el display de 7 segmentos
Ánodo Común Cátodo Común

Seleccionamos Cátodo Común para trabajar con lógica positiva; trabajar con lógica invertida – negativa- o

mixta ya sea en Hardware o Software, puede complicar innecesariamente el problema, más aún cuando

no se tiene experiencia con este tipo de lógicas (Recordar simplificaciones NAND o NOR en Digitales).

NOTA: todos los pines del 7 segmentos [A:G] deben llevar una resistencia limitadora de corriente.

𝑽𝒄𝒄 = 𝟓𝑽𝑫𝑪 𝑰𝑳𝑬𝑫 =^ 𝟏𝟎𝒎𝑨

D0 D1 D2 D

Método de visualización por multiplexación para displays 7 segmentos

A. Valor que representa un numero decimal para visualizar por el display 7 segmentos

B. Digito activo (muestra el numero, todos los demás están apagados)

C. Tiempo que debe permanecer activo el display 7 segmentos para ser visible (*)

A B C
(*) Persistencia de la visión: https://es.wikipedia.org/wiki/Persistencia_de_la_visi%C3%B3n
Persistence of visión: https://en.wikipedia.org/wiki/Persistence_of_vision

Incremento de D1 (unidades) e incremento de D0 (decenas), verificación de limites D1 (recirculación/reinicio)

C Online Compiler: https://repl.it/languages/c

Verificación de limites D0 (recirculación/reinicio) Emulación del ciclo infinito loop() de Arduino Envió a los Displays 7 segments

  • Python online editor, IDE, compiler, interpreter, and REPL https://repl.it/languages/python
Blink Without Delay: https://www.arduino.cc/en/Tutorial/BuiltInExamples/BlinkWithoutDelay

const int ledPin = LED_BUILTIN; // the number of the LED pin int ledState = LOW; // ledState used to set the LED unsigned long previousMillis = 0; // will store last time LED was updated const long interval = 1000; // interval at which to blink (milliseconds) void setup() { pinMode(ledPin, OUTPUT); } void loop() { unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; // save the last time you blinked the LED if (ledState == LOW) { // if the LED is off turn it on and vice-versa: ledState = HIGH; } else { ledState = LOW; } digitalWrite(ledPin, ledState); // set the LED with the ledState of the variable: } }

Generalización de retardos de tiempos diferentes utilizando millis()
Embed With Elliot: Debounce Your Noisy Buttons, Part I
https://hackaday.com/2015/12/09/embed-with-elliot-debounce-your-noisy-buttons-part-i/

“Cuando presiona físicamente un botón

pulsador normal, dos piezas de metal entran

en contacto entre sí. Si estas dos pequeñas

láminas de metal no están perfectamente

planas o perfectamente alineadas (y no lo

están), entonces pueden hacer y romper el

contacto unas cuantas veces antes de estar lo

suficientemente apretadas juntas como para

que siempre estén conduciendo.”

“Para un microcontrolador, el botón parece que se presiona muchas veces durante períodos

extremadamente breves, cuando cree que lo acaba de presionar una vez. La eliminación de rebotes se

trata de asegurarse de que usted y el microcontrolador estén de acuerdo sobre cuándo ocurrió un evento

de pulsación o liberación de un botón.”

Graficas de osciloscopio que muestran la señal de entrada a un
microcontrolador debido a un pulsador siendo presionando y
soltando.