Beruflich Dokumente
Kultur Dokumente
Sistemas Electrnicos
Ingeniera Mecatrnica
Practica N 6
Manejo de micro controladores
Laboratorio de sistemas electrnicos
Cochabamba - Bolivia
28 de abril de 2015
1. Objetivos.
- Aplicar los conocimientos sobre manejo y programacin de la plataforma arduino
con lenguaje C.
- Manejar diversos puertos tales como analgicos o digitales en el empleo de
pulsadores como entradas.
- Aplicar los conocimientos sobre el uso de una pantalla LCD con arduino.
2. Marco terico.
Arduino
Arduino es
una
plataforma
de hardware
libre,
basada
en
una placa con
un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la
electrnica en proyectos multidisciplinares.2 3
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos
de entrada/salida.4 Los
microcontroladores
ms
usados
son
el Atmega168, Atmega328, Atmega1280, y Atmega8 por su sencillez y bajo coste que
permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno
de desarrollo que implementa el lenguaje de programacinProcessing/Wiring y el cargador
de arranque que es ejecutado en la placa.4
Desde octubre de 2012, Arduino se usa tambin con microcontroladoras CortexM3 de ARM
de 32 bits,5 que coexistirn con las ms limitadas, pero tambin econmicas AVR de 8 bits.
ARM y AVR no son plataformas compatibles a nivel binario, pero se pueden programar con el
mismo IDE de Arduino y hacerse programas que compilen sin cambios en las dos
plataformas. Eso s, las microcontroladoras CortexM3 usan 3,3V, a diferencia de la mayora
de las placas con AVR, que generalmente usan 5V. Sin embargo, ya anteriormente se
lanzaron placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen compatibles de
Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje.
Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser
conectado a software tal como Adobe Flash, Processing, Max/MSP, Pure Data. Las placas
se pueden montar a mano o adquirirse. El entorno de desarrollo integradolibre se puede
descargar gratuitamente.
Arduino puede tomar informacin del entorno a travs de sus entradas analgicas y digitales,
puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino
LM016L
3. Diseo.
#include <LiquidCrystal.h>
int estado=0;
int start=A0;
int select=A1;
int pause=A2;
LiquidCrystal lcd(5, 4, 3, 2, 1, 0);
void setup()
{
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
lcd.begin(16, 2);
}
void secuencia1()
{
int a=1;
for(int i=6; i<14; i=i+a)
{
digitalWrite(i,HIGH);
delay(100);
digitalWrite(i,LOW);
if(i==13)
{
a=-1;
}
if(i==6)
{
a=1;
}
}
}
void secuencia2()
{
int a,b=10,c=1;
for(a=9;a>5;a=a-c)
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
delay(100);
digitalWrite(a,LOW);
digitalWrite(b,LOW);
b=b+c;
if(a==6)
{
a=10;
b=10;
}
}
}
void secuencia3()
{
for(int i=6;i<14;i++)
{
digitalWrite(i,HIGH);
delay(100);
if(i==13)
{
for(int j=13;j>=6;j=j-2)
{
digitalWrite(j,LOW);
delay(100);
}
for(int j=12;j>=6;j=j-2)
{
digitalWrite(j,LOW);
delay(100);
}
i=5;
}
}
}
void secuencia4()
{
int a=13;
for(int i=6;i<14;i++)
{
digitalWrite(i,HIGH);
delay(100);
if(a==6)
{
for(int h=6;h<14;h++)
{
digitalWrite(h,HIGH);
}
delay(200);
for(int h=6;h<14;h++)
{
digitalWrite(h,LOW);
}
delay(200);
for(int h=6;h<14;h++)
{
digitalWrite(h,HIGH);
}
delay(200);
for(int h=6;h<14;h++)
{
digitalWrite(h,LOW);
}
for(int h=6;h<14;h++)
{
digitalWrite(h,HIGH);
}
delay(200);
for(int h=6;h<14;h++)
{
digitalWrite(h,LOW);
}
delay(200);
for(int h=6;h<14;h++)
{
digitalWrite(h,HIGH);
}
delay(200);
for(int h=6;h<14;h++)
{
digitalWrite(h,LOW);
}
}
delay(100);
if(i==a)
{
i=5;
a--;
}
digitalWrite(i,LOW);
}
}
void loop()
{
/*lcd.setCursor(0,0);
lcd.println("Bienvenidos");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.println("Auto fantastico");
if(analogRead(A0)>0)
{
secuencia1();
}
else if(analogRead(A1)>0)
{
lcd.setCursor(0,0);
lcd.println("Zumidora");
if(analogRead(A0)>0)
{
secuencia2();
}
if(analogRead(select)>0)
{
lcd.setCursor(0,0);
lcd.println("Todos los leds");
if(analogRead(A0)>0)
{
secuencia3();
}
if(analogRead(A1)>0)
{
lcd.setCursor(0,0);
lcd.println("Lluvia");
if(analogRead(A0)>0)
{
secuencia4();
}
}
}
}*/
if(analogRead(A0)>0)
{
lcd.print("Bienvenidos");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Lluvia");
secuencia4();
}
4. Conclusiones:
La plataforma arduino es un microcontrolador muy prctico de uso muy flexible
que la mayor parte de sus funcionalidades son ejecutadas llamando libreras
ya predefinidas.
Esta herramienta es codificada en lenguaje C de programacin con algunas
variaciones caractersticas del hardware, muy fciles de usar.
La cantidad de pines son una enorme limitacin, perjudicando asi su
desarrollo.