Post on 16-Jan-2016
description
Brayan Matos;John C. Montes | Fund. Elec. Digital | 12 de abril de 2015
Introducción a Arduino PRACTICA #1
PÁGINA 1
Actividad:
1. Responder las siguientes preguntas:
a. Cuál es la arquitectura del Atmega 328?
El Atmega se basa en una arquitectura AVR de 8-bit.
b. Que se conoce por Arquitectura?
Es la forma de seleccionar e interconectar componentes de hardware para
crear computadoras según los requerimientos de funcionalidad, rendimiento
y costo.
c. De cuantas entradas análogas dispone el Arduino UNO?
Tiene 6 entradas análogas que van de la A0 a la A5.
d. De cuantos pines dispone el Arduino UNO para GPIO?
los pines analógicos también tienen toda la funcionalidad como propósito
general de entrada y salida (GPIO) (el mismo que los pines digitales 0 - 13).
En consecuencia, si un usuario necesita pines de salida de entrada propósito
más general, y todos los pines analógicos no están en uso, los pines analógicos
se pueden usar para GPIO. En este sentido se puede disponer de 20 pines para
GPIO.
e. Cuál es el voltaje de operación del microcontrolador Atmega 328?
El dispositivo opera entre 1.8 y 5.5 voltios.
f. Cuál es el rango de voltaje recomendado para alimentar el Arduino
UNO?
El rango de voltajes recomendado es de 7-12V.
g. Consultar para que sirve una resistencia Pull Up y en qué casos es
recomendable.
Las resistencias Pull-up son usadas en
circuitos electrónicos lógicos para
asegurar que las entradas al Arduino
estén en niveles lógicos esperados si los
dispositivos externos están
desconectados o en alta impedancia. “El
hecho de que no haya nada conectado
en un pin de entrada no significa que sea
un cero lógico”.
Una resistencia pull-up débilmente
"tira" la tensión del cable que está
conectado a hacia su nivel de fuente de
tensión cuando los otros componentes
en la línea están inactivos. Cuando el
interruptor de la línea está abierto, es de
alta impedancia y actúa como si se
desconectara. Dado que los otros componentes actúan como si ellos
estuvieran desconectados, el circuito actúa como si se desconectara, y la
resistencia de actuación trae el cable hasta el nivel lógico alto. Cuando otro
PÁGINA 2
componente en la línea se activa, se anula el nivel lógico alto fijado por la
resistencia de actuación. La resistencia pull-up asegura que el alambre está a
un nivel lógico definido incluso si no hay dispositivos activos conectados a la
misma.
h. Al momento de cargar un programa en Arduino, el software de
programación debe realizar un reset; para hacerlo utiliza una de las
líneas de control de flujo del RS232. Cuál de las líneas es?
En lugar de requerir presionar el botón de reinicio antes de una carga, el
Arduino UNO está diseñado de una forma que permite ser reseteado
mediante un software que se ejecuta cuando se está conectado a una
computadora. Una de las líneas de control de flujo de hardware (DTR) del
Atmega8U2/16U2 está conectada a la línea de reseteo del Atmega 328
mediante un capacitor de 100nF. Cuando esta se afirma esta línea (toma un
LOW), la línea de reset cae lo suficiente para resetear el chip.
i. Cual considera que es la principal diferencia entre Arduino UNO y
Arduino Zero? Cuál es el más robusto (mayor capacidad de
procesamiento)?
Considero que la principal diferencia entre ambos es el procesador: el
Arduino UNO Se basa en un microcontrolador Atmel ATmega320 AVR de 8
bits a 16Mhz, mientras que el Arduino Zero contiene un potente Atmel
SAMD21 MCU de 48Mhz con un core ARM Cortex M0 de 32 bits.
En definitiva, el Arduino Zero va destinada para los que Arduino UNO se les
quede corto y necesitan algo más de potencia de procesamiento.
2.
a. Cuál es la diferencia entre setup() y loop()?
La función setup() se ejecuta una sola vez, cuando el sketch comienza. Este
es un buen lugar para configurar tareas como pinmodes o definir librerías. La
función loop() en cambio es ejecutada más de una vez. Se necesitan incluir
ambas funciones en el código, incluso si no se necesita de alguna.
b. Existe una manera de generar retrasos o pausas sin emplear delay()?
No de manera directa pero por ejemplo puede usarse una función que emplee
if() y la función millis().