domingo, 12 de abril de 2009

Apuntes de electrónica digital de E.E.C.




Arduino
En este enlace encontrarás una introducción a la plataforma de desarrollo arduino y en éste, un manual de programación en arduino.
El IDE de programación de arduino lo podéis descargar desde aquí y si usáis Windows necesitaréis el driver USB.
Para las prácticas de clase haremos un "escudo", que es como se denomina a la placa de periféricos que se puede conectar directamente a arduino, mediante una placa de circuito universal y una serie de componentes. A continuación podéis ver el esquema de la placa y una foto por el lado de los componentes y por el lado de las soldaduras:





Ejemplos
Aquí os dejo una serie de ejemplos básicos de programas de Arduino. En ellos se muestra el uso de variables, entradas y salidas digitales, condiciones con "if" y bucles "while". Si lo descomprimimos detro de "Mis Documentos", creará la carpeta Arduino y en ella una carpeta por cada uno de los ejercicios para poder abrirlos directamente desde el programa.

Ejemplo que rota el encendido de los leds mientras este pulsado el pulsador ---- Descargar

Ejemplos de envío y recepción de datos por el puerto serie ---- Descargar

Ejemplo de lectura de una entrada analógica y salida condicional a dicha entrada ---- Descargar

Este ejemplo lee una entrada analógica, y saca una salida analógica (PWM), además de mostrar el uso de condiciones con operadores lógicos AND y OR. ---- Descargar

Ejemplo que muestra el uso de la memoria EEPROM. El programa cuenta las veces que se pulsa el pulsador conectado a la entrada 10 de arduino, envía el valor por el puerto serie y lo almacena en la dirección cero de la memoria EEPROM. ---- Descargar

Ejemplo de programa que lee la entrada analogica y saca su valor equivalente por la salida analogica. Si el valor es mayor que 600 enciende el LED 12 y si es menor que 500 apaga el LED 12. Además el programa memorizará en EEPROM el último estado, encendido o apagado. El programa no empezará a actuar hasta que no pulsemos el pulsador conectado a la entrada 10. ---- Descargar
Este ejemplo enciende y apaga el led 11 progresivamente de manera analógica ( mediante PWM). ---- Descargar

El siguiente ejemplo enciende progresivamente el LED 11 cuando se está pulsando el pulsador conectado al puerto 10 de nuestra placa y lo apaga progresivamente cuando soltamos. El código es el siguiente:

/************************************************************************
Realiza un programa que vaya aumentando la iluminacion del LED 11 si esta
pulsado el pulsador y la disminuya si soltamos
*************************************************************************/

int valor =0; //En esta variable se almacenará el valor que se sacará
//como salida analógica PWM por el pin 11

void setup()
{
pinMode(11,OUTPUT); // Configuramos el pin 11 como salida
pinMode(10,INPUT); // Configuramos el pin 10 como entrada
}

void loop()
{

while (digitalRead (10)==1) //Mientras el pulsador estè pulsado
{
valor ++; //Incrementamos el valor de la variable valor

/* Si la variable valor es más de 255 que se quede ahí, porque esa es
la máxima cantidad que podemos sacar como valor analógico por las salidas PWM */
if (valor>255)
{
valor=255;
}
analogWrite(11,valor); // Sacamos valor por la salida analógica 11
delay (100); //Retarde de 100 milisegundos para que se vea el encendido progresivo
}
while (digitalRead (10)==0) //Mientras el pulsador esté suelto
{
valor --; //Decrementamos la variable valor
if (valor<0)
{
valor=0;
}
analogWrite(11,valor);  // Sacamos valor por la salida analógica 11
delay (100); //Retarde de 100 milisegundos para que se vea el apagado progresivo
}
}