SlideShare una empresa de Scribd logo
2
Lo más leído
Ing. Fernando Marcos Marcos
1
CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO
Marcos Marcos Fernando
fmarcos@uabc.edu.mx
RESUMEN: El proyecto consiste en un contador
binario Ascendente – Descendente de 14 bits, el sentido
del conteo es controlado mediante un selector, el cual
puede ser modificado en cualquier momento respetando
el número que se está mostrando en el contador al
momento del cambio.
1 INTRODUCCIÓN
El desarrollo de sistemas automáticos se ha
tornado aún más sencillo con el uso de
microcontroladores ya que la cantidad de funciones y
aplicaciones que se les puede dar son en verdad
extensas,se puede simplemente jugar con un led (Blink)
hasta hacer sistemas más complejos como una mano
robótica,un carrito, un cuadricoptero pero de hecho esto
también se vuelve más sencillo con el uso de
complementos que se adaptan de manera sencilla al
microcontrolador, se puede decir que los limites en los
usos y/o aplicaciones de los micros están en nuestra
imaginación.
Arduino es una herramienta para hacer que los
ordenadores puedan sentir y controlar el mundo físico a
través de tu ordenador personal. Es una plataforma de
desarrollo de computación física (physical computing) de
código abierto, basada en una placa con un sencillo
microcontrolador y un entorno de desarrollo para crear
software (programas) para la placa.
Arduino puede ser utilizado para crear objetos
interactivos, leyendo datos de una gran variedad de
interruptores y sensores y controlar multitud de tipos de
luces,motores y otros actuadores físicos. Los proyectos
de Arduino pueden ser autónomos o comunicarse con
un programa (software) que se ejecute en tu ordenador
(ej. Flash, Processing, MaxMSP).La placa puedes
montarla tu mismo o comprarla ya lista para usar, y el
software de desarrollo es abierto y lo puedes descargar
gratis.
El lenguaje de programación de Arduino es una
implementación de Wiring, una plataforma de
computación física parecida, que a su vez se basa en
Processing, un entorno de programación multimedia.
2 TEORIA
Contadores
Todos los sistemas digitales complejos contienen
varios contadores. Las misiones de un contador son,
además de la obvia de contar sucesos o periodos de
tiempo o poner en orden secuencial acontecimientos,
otras no tan obvias como dividir una frecuencia,
direccionar y servir como unidades de memoria.
Existen muchos microcontroladores y plataformas
con microcontroladores disponibles para la computación
física. Parallax Basic Stamp, BX-24 de Netmedia,
Phidgets, Handyboard del MIT, y muchos otros ofrecen
funcionalidades similares. Todas estas herramientas
organizan el complicado trabajo de programar un
microcontrolador en paquetes fáciles de usar. Arduino,
además de simplificar el proceso de trabajar con
microcontroladores, ofrece algunas ventajas respecto a
otros sistemas a profesores, estudiantes y amateurs.
Las placas Arduino son más accesibles
comparadas con otras plataformas de
microcontroladores.
Multi-Plataforma
El software de Arduino funciona en los sistemas
operativos Windows, Macintosh OSX y Linux. La
mayoría de los entornos para microcontroladores están
limitados a Windows.
Entorno de programación simple y directo
El entorno de programación de Arduino es fácil de
usar para principiantes ylo suficientemente flexible para
los usuarios avanzados. Pensando en los profesores,
Arduino está basado en el entorno de programación de
Procesing con lo que el estudiante que aprenda a
programar en este entorno se sentirá familiarizado con el
entorno de desarrollo Arduino.
Software ampliable y de código abierto
El software Arduino esta publicado bajo una
licencia libre y preparado para ser ampliado por
programadores experimentados. El lenguaje puede
ampliarse a través de librerías de C++, y si se está
interesado en profundizar en los detalles técnicos, se
puede dar el salto a la programación en el lenguaje AVR
C en el que está basado.De igual modo se puede añadir
directamente código en AVR C en tus programas si así
lo deseas.
Hardware ampliable y de Código abierto
Arduino está basado en los microcontroladores
ATMEGA168, ATMEGA328y ATMEGA1280.
Los planos de los módulos están publicados bajo
licencia Creative Commons, por lo que diseñadores de
circuitos con experiencia pueden hacer su propia versión
del módulo, ampliándolo u optimizándolo. Incluso
usuarios relativamente inexpertos pueden construir la
versión para placa de desarrollo para entender cómo
funciona y ahorrar algo de dinero.
3 DESARROLLO
Lo materiales y/o equipo necesarios para el
proyecto son:
- 2 Potenciómetros (No importa el valor de este
componente)
- 14 Leds
- 14 Resistencias de 220kΩ
- Computadora
- Plataforma de desarrollo
- Arduinino μc ATmega328P
- Protoboard
- Cable y pinzas peladoras
- Cable USB Arduino
- Fuente de Voltaje
- 2 pares de cable banana – caimán
Ing. Fernando Marcos Marcos
2
El circuito armado se muestra en la figura 1.
Figura 1. Circuito
Las conexiones realizadas en la figura 1 son muy
sencillas, cada puerto digital va conectada a una
resistencia de 220 Ohms, las cuales a su vez van
conectadas al cátodo de los leds,los ánodos de los leds
están conectadas directamente a tierra. Para el caso de
ambos potenciómetros, un extremo está conectado a
tierra (GND) y el otro a Vcc (5 V), no importa el orden, y
las terminales centrales variables están conectadas a las
entradas analógicas A0 (Potenciómetro “P1”) y A1
(Potenciómetro “P2”).
Función de cada uno de los puertos:
E/S Digitales del 0 al 13: Estos puertos se
encargaran de activar o desactivar los leds de acuerdo
al contador.
E/S Analógica A0: Se encargara de regular la
velocidad de conteo, para el caso de esta práctica, los
tiempos asignados en el proyecto están dentro del rango
de 0 a 1000 milisegundo los cuales se obtienes
mediante el mapeo de los valores analógicos medidos.
E/S Analógica A1: Se encargara de controlar el
sentido del contador,ya sea ascendente o descendente.
Las lecturas analógicas de 0 a 5V siempre arrojan un
valor por default que va de 0 a 1023, por lo tanto para la
selección del sentido del contador se tomaron dos
rangos diferentes, para lecturas del 0 al 510 es para
seleccionar el contador ascendente, y para el caso de
lecturas del 511 al 1023 es para seleccionar el contador
descendente.
El contador binario consta de 14 bits, por lo tanto el
número máximo a contar es 11 1111 1111 1111 y el
mínimo es 00 0000 0000 0000, lo que es decimal se
refiere a contar a un máximo de 16,383 y un mínimo de
cero.
Las E/S Digitales están divididas en dos grupos de
registros diferente, lo cual limita a cada registro a un
contador de 8 bits para el caso del PortD y un contador
de 6 bits para el caso del PortB, pero mediante una
conexión en cascada de ambos registros es posible
tener un registro resultante de 14 E/S. Para fines
prácticos del proyecto teóricamente hay un solo registro,
es cual es resultante de la conexión en cascada de los
dos registros (PortD y PortB), por lo tanto el puerto
digital 0 corresponde al bit de menor nivel y el puerto
digital 13 corresponde al bit de mayor nivel.
Para el desarrollo de la práctica todos los puertos
digitales se utilizaran como salidas y los dos puertos
analógicos como entradas.
La programación desarrollada es la siguiente:
int contador1, contador2;
void setup(){
DDRD=B11111111; /*Configurando como salida
los puertos D del arduino (pines 0 – 7)*/
DDRB=B111111; /*Configurando como salida los
puertos D del arduino (pines 8-13)*/
if(analogRead(A1)<511){
contador1=0;
contador2=0;
}else{
contador1=255;
contador2=63;}}
void loop(){
PORTD=byte(contador1);
PORTB=byte(contador2);
delay(map(analogRead(A0),0,1023,0,1000));
if(analogRead(A1)<511){
if(contador1==255){
contador1=-1;
contador2=contador2+1;
if(contador2==64){
contador2=0;}}
contador1=contador1+1;
}else{
if(contador1==0){
contador1=256;
contador2=contador2-1;
if(contador2==-1){
contador2=63;}}
contador1=contador1-1;}
}
En el diagrama 1 se pueden observar dos
contadores, Contador1 y Contador2 los cuales
representan a los contadores de los Registros PortD y
PortB respectivamente, el contador del Registro PortD
controlara el contador del registro PortB, para ello se han
conectado en cascada.
De manera general la lógica utilizada para la
programación se muestra en el diagrama 1.
Ing. Fernando Marcos Marcos
3
Diagrama 1. Lógica del contador.
4 ANALISIS DE RESULTADOS
4.1 Discusión de la precisión y exactitud de
los resultados.
El resultado obtenido fue lo que se esperaba.
4.2 Análisis de los posibles errores en los
resultados.
Sin error alguno.
4.3 Descripción de cualquier resultado
anormal.
Ningún resultado anormal en el desarrollo del
proyecto.
5 CONCLUSION
El programa está limitado a tarjetas arduino con
ATmega328P o para aquellas tarjetas que manejen un
microcontrolador con una estructura similar al
ATmega328P, ya que los registros cambian de un
microcontrolador a otro (en algunos casos), para lo cual
el usuario tendrá que conocer la estructura de su tarjeta
y sus componentes de hardware para realizar los
cambios pertinentes en el programa, de lo contrario la
programación no será funcional.
El uso de funciones y de registros permite un
ahorro de memoria, tiempo de procesamiento y
recursos, además de agilizar la programación y su
asimilación.
El uso de registros hace posible facilitar el manejo
de las E/S digitales y analógicas, y el dividir los puertos
en tres grupos diferentes de registros afecta de alguna
manera en la complejidad del programa de la práctica,
pero con conocimientos básicos de electrónica digital el
ajuste llega a ser sencillo.
6 BIBLIOGRAFIA
http://arduino.cc
http://platea.pntic.mec.es/~lmarti2/arduino/introardu
/index.htm

Más contenido relacionado

DOCX
Informe (ieee) generador de diente de sierra
DOC
Practica1m
PDF
Informe previo y experimento nª2 del Lab. Circuitos Electronicos II UNSAAC(wa...
PDF
Electrónica digital: Ruta de datos multiplexores y demultiplexores
PPTX
Sección 2.6: Sistemas descritos mediante ecuaciones en diferencias
PDF
Sesion contadores y registros
PPTX
Amplificador de instrumentación
PDF
Cuadripolos
Informe (ieee) generador de diente de sierra
Practica1m
Informe previo y experimento nª2 del Lab. Circuitos Electronicos II UNSAAC(wa...
Electrónica digital: Ruta de datos multiplexores y demultiplexores
Sección 2.6: Sistemas descritos mediante ecuaciones en diferencias
Sesion contadores y registros
Amplificador de instrumentación
Cuadripolos

La actualidad más candente (20)

PDF
CONTADORES.pdf
PDF
Amplificadores de potencia
PDF
Conversión GRAFCET a ladder el mejor método.
PPTX
Método de cantidades por unidad p.u.
PDF
Apuntes y ejercicios Señales y sistemas (Borrador)
PDF
Control digital: Retenedor de orden cero y uno
PDF
informe-control de potencia por angulo de disparro
DOCX
TERCER LABORATORIO DE ELECTRONICA
DOC
Calculo transformadores
PPT
Modelos equivalentes de pequeña señal de los transistores fet
DOCX
Manejo de teclado 4x4 con pic 16 f84a
PPTX
Circuitos secuenciales ejemplos
PPTX
T7 Algebra de Boole
PDF
Arduino: Teclado matricial
PDF
Clase 1.pdf diseño de tableros eléctricos
PDF
CODIFICADORES Y MULTIPLEXORES.pdf
PPTX
6 aplicaciones del transistor bjt
PDF
Resistencia de entrada, salida y ganancia de un amplificador realimentado.
PPT
Los Flip Flops
PPT
Configuraciones de operacionales 2ª clase
CONTADORES.pdf
Amplificadores de potencia
Conversión GRAFCET a ladder el mejor método.
Método de cantidades por unidad p.u.
Apuntes y ejercicios Señales y sistemas (Borrador)
Control digital: Retenedor de orden cero y uno
informe-control de potencia por angulo de disparro
TERCER LABORATORIO DE ELECTRONICA
Calculo transformadores
Modelos equivalentes de pequeña señal de los transistores fet
Manejo de teclado 4x4 con pic 16 f84a
Circuitos secuenciales ejemplos
T7 Algebra de Boole
Arduino: Teclado matricial
Clase 1.pdf diseño de tableros eléctricos
CODIFICADORES Y MULTIPLEXORES.pdf
6 aplicaciones del transistor bjt
Resistencia de entrada, salida y ganancia de un amplificador realimentado.
Los Flip Flops
Configuraciones de operacionales 2ª clase
Publicidad

Similar a CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO (20)

DOCX
CONTADOR BINARIO ASCENDENTE DE 14 BITS CON ARDUINO
DOCX
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
DOCX
CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINO
DOCX
CONTADOR BINARIO ASCENDENTE DE 8 BITS CON ARDUINO
DOCX
DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO
DOCX
Señales con arduino y DAC
PDF
Proyecto arduino medidor de temperatura
DOCX
Trababajo sobre placa arduino
DOCX
Tarjeta arduino (1)
DOCX
Tarjeta arduino (1)
DOCX
Tarjeta arduino (1)
DOCX
Tarjeta arduino
DOCX
Tarjeta arduino
PDF
Tutorial micro MSP430
PDF
La electricidad y la electronica tarjeta arduino.
PDF
La electricidad y la electrónica tarjeta arduino.
PDF
La electricidad y la electronica tarjeta arduino.
PDF
DOCX
Informe escolar grupal sobre tarjeta arduino
DOCX
La electricidad y la electronica tarjeta arduino.
CONTADOR BINARIO ASCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINO
CONTADOR BINARIO ASCENDENTE DE 8 BITS CON ARDUINO
DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO
Señales con arduino y DAC
Proyecto arduino medidor de temperatura
Trababajo sobre placa arduino
Tarjeta arduino (1)
Tarjeta arduino (1)
Tarjeta arduino (1)
Tarjeta arduino
Tarjeta arduino
Tutorial micro MSP430
La electricidad y la electronica tarjeta arduino.
La electricidad y la electrónica tarjeta arduino.
La electricidad y la electronica tarjeta arduino.
Informe escolar grupal sobre tarjeta arduino
La electricidad y la electronica tarjeta arduino.
Publicidad

Más de Fernando Marcos Marcos (20)

DOCX
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
DOCX
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
DOCX
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
DOCX
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
PDF
DISEÑO DE PCB CON MODULO DE TRANSMISIÓN Y RECEPCIÓN RN41
PDF
DISEÑO Y DESARROLLO DE UNA PLACA PCB CON ATMEGA 328
DOCX
DISEÑO DEL JUEGO PING PONG EN FPGA - VHDL - VGA
DOCX
APLICACIONES DE FOURIER
DOCX
APLICACIONES DE LAPLACE
DOCX
CONTROL AUTOMATICO DE GANANCIA (AGC)
DOCX
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATOR
DOCX
USO DEL TRANSISTOR COMO SWITCH - TRANSISTOR EN CORTE Y EN SATURACION - TRANSI...
PDF
SISTEMA DE CONTROL Y MONITOREO DE HUMEDAD EN LOMBRICOMPOSTA - HUMIDITY MONITO...
DOC
DISEÑO ANALOGICO Y ELECTRONICA - ADC - CONVERTIDOR ANALÓGICO DIGITAL - ANALOG...
DOCX
DISEÑO ANALOGICO Y ELECTRONICA - DAC 8 BITS
DOCX
DISEÑO Y ELECTRÓNICA ANALÓGICA - OSCILADORES
DOCX
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...
DOCX
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
DOCX
DISEÑO Y ELECTRÓNICA ANALÓGICA - CONFIGURACIONES DEL OP AMP LM741
DOCX
DISEÑO ANALOGICO - AMPLIFICADOR DE INSTRUMENTACION INA114 Y LM741
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
DISEÑO DE PCB CON MODULO DE TRANSMISIÓN Y RECEPCIÓN RN41
DISEÑO Y DESARROLLO DE UNA PLACA PCB CON ATMEGA 328
DISEÑO DEL JUEGO PING PONG EN FPGA - VHDL - VGA
APLICACIONES DE FOURIER
APLICACIONES DE LAPLACE
CONTROL AUTOMATICO DE GANANCIA (AGC)
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATOR
USO DEL TRANSISTOR COMO SWITCH - TRANSISTOR EN CORTE Y EN SATURACION - TRANSI...
SISTEMA DE CONTROL Y MONITOREO DE HUMEDAD EN LOMBRICOMPOSTA - HUMIDITY MONITO...
DISEÑO ANALOGICO Y ELECTRONICA - ADC - CONVERTIDOR ANALÓGICO DIGITAL - ANALOG...
DISEÑO ANALOGICO Y ELECTRONICA - DAC 8 BITS
DISEÑO Y ELECTRÓNICA ANALÓGICA - OSCILADORES
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
DISEÑO Y ELECTRÓNICA ANALÓGICA - CONFIGURACIONES DEL OP AMP LM741
DISEÑO ANALOGICO - AMPLIFICADOR DE INSTRUMENTACION INA114 Y LM741

Último (20)

PDF
1132-2018 espectrofotometro uv visible.pdf
PPTX
leyes de los gases Ideales. combustible refinación
PDF
Primera formulación de cargos de la SEC en contra del CEN
PDF
presentacion sobre los polimeros, como se conforman
PPTX
Gestion de seguridad y salud ocupacional.pptx
PDF
Copia de Presentación Propuesta de Marketing Corporativo Blanco y Negro.pdf
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
PDF
Oficio SEC 293416 Comision Investigadora
PPTX
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
PDF
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PPTX
Curso Corto de PLANTA CONCENTRADORA FREEPORT
PPTX
GEOLOGIA, principios , fundamentos y conceptos
PPTX
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PDF
Pensamiento Politico Siglo XXI Peru y Mundo.pdf
PDF
Curso Introductorio de Cristales Liquidos
PPTX
Software para la educación instituciones superiores
PDF
TESTAMENTO DE DESCRIPTIVA ..............
PPTX
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...
1132-2018 espectrofotometro uv visible.pdf
leyes de los gases Ideales. combustible refinación
Primera formulación de cargos de la SEC en contra del CEN
presentacion sobre los polimeros, como se conforman
Gestion de seguridad y salud ocupacional.pptx
Copia de Presentación Propuesta de Marketing Corporativo Blanco y Negro.pdf
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
Oficio SEC 293416 Comision Investigadora
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
Curso Corto de PLANTA CONCENTRADORA FREEPORT
GEOLOGIA, principios , fundamentos y conceptos
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
Pensamiento Politico Siglo XXI Peru y Mundo.pdf
Curso Introductorio de Cristales Liquidos
Software para la educación instituciones superiores
TESTAMENTO DE DESCRIPTIVA ..............
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...

CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO

  • 1. Ing. Fernando Marcos Marcos 1 CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO Marcos Marcos Fernando fmarcos@uabc.edu.mx RESUMEN: El proyecto consiste en un contador binario Ascendente – Descendente de 14 bits, el sentido del conteo es controlado mediante un selector, el cual puede ser modificado en cualquier momento respetando el número que se está mostrando en el contador al momento del cambio. 1 INTRODUCCIÓN El desarrollo de sistemas automáticos se ha tornado aún más sencillo con el uso de microcontroladores ya que la cantidad de funciones y aplicaciones que se les puede dar son en verdad extensas,se puede simplemente jugar con un led (Blink) hasta hacer sistemas más complejos como una mano robótica,un carrito, un cuadricoptero pero de hecho esto también se vuelve más sencillo con el uso de complementos que se adaptan de manera sencilla al microcontrolador, se puede decir que los limites en los usos y/o aplicaciones de los micros están en nuestra imaginación. Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo físico a través de tu ordenador personal. Es una plataforma de desarrollo de computación física (physical computing) de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa. Arduino puede ser utilizado para crear objetos interactivos, leyendo datos de una gran variedad de interruptores y sensores y controlar multitud de tipos de luces,motores y otros actuadores físicos. Los proyectos de Arduino pueden ser autónomos o comunicarse con un programa (software) que se ejecute en tu ordenador (ej. Flash, Processing, MaxMSP).La placa puedes montarla tu mismo o comprarla ya lista para usar, y el software de desarrollo es abierto y lo puedes descargar gratis. El lenguaje de programación de Arduino es una implementación de Wiring, una plataforma de computación física parecida, que a su vez se basa en Processing, un entorno de programación multimedia. 2 TEORIA Contadores Todos los sistemas digitales complejos contienen varios contadores. Las misiones de un contador son, además de la obvia de contar sucesos o periodos de tiempo o poner en orden secuencial acontecimientos, otras no tan obvias como dividir una frecuencia, direccionar y servir como unidades de memoria. Existen muchos microcontroladores y plataformas con microcontroladores disponibles para la computación física. Parallax Basic Stamp, BX-24 de Netmedia, Phidgets, Handyboard del MIT, y muchos otros ofrecen funcionalidades similares. Todas estas herramientas organizan el complicado trabajo de programar un microcontrolador en paquetes fáciles de usar. Arduino, además de simplificar el proceso de trabajar con microcontroladores, ofrece algunas ventajas respecto a otros sistemas a profesores, estudiantes y amateurs. Las placas Arduino son más accesibles comparadas con otras plataformas de microcontroladores. Multi-Plataforma El software de Arduino funciona en los sistemas operativos Windows, Macintosh OSX y Linux. La mayoría de los entornos para microcontroladores están limitados a Windows. Entorno de programación simple y directo El entorno de programación de Arduino es fácil de usar para principiantes ylo suficientemente flexible para los usuarios avanzados. Pensando en los profesores, Arduino está basado en el entorno de programación de Procesing con lo que el estudiante que aprenda a programar en este entorno se sentirá familiarizado con el entorno de desarrollo Arduino. Software ampliable y de código abierto El software Arduino esta publicado bajo una licencia libre y preparado para ser ampliado por programadores experimentados. El lenguaje puede ampliarse a través de librerías de C++, y si se está interesado en profundizar en los detalles técnicos, se puede dar el salto a la programación en el lenguaje AVR C en el que está basado.De igual modo se puede añadir directamente código en AVR C en tus programas si así lo deseas. Hardware ampliable y de Código abierto Arduino está basado en los microcontroladores ATMEGA168, ATMEGA328y ATMEGA1280. Los planos de los módulos están publicados bajo licencia Creative Commons, por lo que diseñadores de circuitos con experiencia pueden hacer su propia versión del módulo, ampliándolo u optimizándolo. Incluso usuarios relativamente inexpertos pueden construir la versión para placa de desarrollo para entender cómo funciona y ahorrar algo de dinero. 3 DESARROLLO Lo materiales y/o equipo necesarios para el proyecto son: - 2 Potenciómetros (No importa el valor de este componente) - 14 Leds - 14 Resistencias de 220kΩ - Computadora - Plataforma de desarrollo - Arduinino μc ATmega328P - Protoboard - Cable y pinzas peladoras - Cable USB Arduino - Fuente de Voltaje - 2 pares de cable banana – caimán
  • 2. Ing. Fernando Marcos Marcos 2 El circuito armado se muestra en la figura 1. Figura 1. Circuito Las conexiones realizadas en la figura 1 son muy sencillas, cada puerto digital va conectada a una resistencia de 220 Ohms, las cuales a su vez van conectadas al cátodo de los leds,los ánodos de los leds están conectadas directamente a tierra. Para el caso de ambos potenciómetros, un extremo está conectado a tierra (GND) y el otro a Vcc (5 V), no importa el orden, y las terminales centrales variables están conectadas a las entradas analógicas A0 (Potenciómetro “P1”) y A1 (Potenciómetro “P2”). Función de cada uno de los puertos: E/S Digitales del 0 al 13: Estos puertos se encargaran de activar o desactivar los leds de acuerdo al contador. E/S Analógica A0: Se encargara de regular la velocidad de conteo, para el caso de esta práctica, los tiempos asignados en el proyecto están dentro del rango de 0 a 1000 milisegundo los cuales se obtienes mediante el mapeo de los valores analógicos medidos. E/S Analógica A1: Se encargara de controlar el sentido del contador,ya sea ascendente o descendente. Las lecturas analógicas de 0 a 5V siempre arrojan un valor por default que va de 0 a 1023, por lo tanto para la selección del sentido del contador se tomaron dos rangos diferentes, para lecturas del 0 al 510 es para seleccionar el contador ascendente, y para el caso de lecturas del 511 al 1023 es para seleccionar el contador descendente. El contador binario consta de 14 bits, por lo tanto el número máximo a contar es 11 1111 1111 1111 y el mínimo es 00 0000 0000 0000, lo que es decimal se refiere a contar a un máximo de 16,383 y un mínimo de cero. Las E/S Digitales están divididas en dos grupos de registros diferente, lo cual limita a cada registro a un contador de 8 bits para el caso del PortD y un contador de 6 bits para el caso del PortB, pero mediante una conexión en cascada de ambos registros es posible tener un registro resultante de 14 E/S. Para fines prácticos del proyecto teóricamente hay un solo registro, es cual es resultante de la conexión en cascada de los dos registros (PortD y PortB), por lo tanto el puerto digital 0 corresponde al bit de menor nivel y el puerto digital 13 corresponde al bit de mayor nivel. Para el desarrollo de la práctica todos los puertos digitales se utilizaran como salidas y los dos puertos analógicos como entradas. La programación desarrollada es la siguiente: int contador1, contador2; void setup(){ DDRD=B11111111; /*Configurando como salida los puertos D del arduino (pines 0 – 7)*/ DDRB=B111111; /*Configurando como salida los puertos D del arduino (pines 8-13)*/ if(analogRead(A1)<511){ contador1=0; contador2=0; }else{ contador1=255; contador2=63;}} void loop(){ PORTD=byte(contador1); PORTB=byte(contador2); delay(map(analogRead(A0),0,1023,0,1000)); if(analogRead(A1)<511){ if(contador1==255){ contador1=-1; contador2=contador2+1; if(contador2==64){ contador2=0;}} contador1=contador1+1; }else{ if(contador1==0){ contador1=256; contador2=contador2-1; if(contador2==-1){ contador2=63;}} contador1=contador1-1;} } En el diagrama 1 se pueden observar dos contadores, Contador1 y Contador2 los cuales representan a los contadores de los Registros PortD y PortB respectivamente, el contador del Registro PortD controlara el contador del registro PortB, para ello se han conectado en cascada. De manera general la lógica utilizada para la programación se muestra en el diagrama 1.
  • 3. Ing. Fernando Marcos Marcos 3 Diagrama 1. Lógica del contador. 4 ANALISIS DE RESULTADOS 4.1 Discusión de la precisión y exactitud de los resultados. El resultado obtenido fue lo que se esperaba. 4.2 Análisis de los posibles errores en los resultados. Sin error alguno. 4.3 Descripción de cualquier resultado anormal. Ningún resultado anormal en el desarrollo del proyecto. 5 CONCLUSION El programa está limitado a tarjetas arduino con ATmega328P o para aquellas tarjetas que manejen un microcontrolador con una estructura similar al ATmega328P, ya que los registros cambian de un microcontrolador a otro (en algunos casos), para lo cual el usuario tendrá que conocer la estructura de su tarjeta y sus componentes de hardware para realizar los cambios pertinentes en el programa, de lo contrario la programación no será funcional. El uso de funciones y de registros permite un ahorro de memoria, tiempo de procesamiento y recursos, además de agilizar la programación y su asimilación. El uso de registros hace posible facilitar el manejo de las E/S digitales y analógicas, y el dividir los puertos en tres grupos diferentes de registros afecta de alguna manera en la complejidad del programa de la práctica, pero con conocimientos básicos de electrónica digital el ajuste llega a ser sencillo. 6 BIBLIOGRAFIA http://arduino.cc http://platea.pntic.mec.es/~lmarti2/arduino/introardu /index.htm