Proyecto Arduino 15

 

IMG_3983Por fin, ya está en marcha mi proyecto tecnológico de este año: el proyecto Arduino 15. El plan es el siguiente:

Fase 0. Planificación. 
Fase 1. Kit iniciacion oficial. 15 proyectos. 
Fase 2. Otros proyectos. Tutorial Funduino. Tutoriales youtube.
Fase 3. Robot (cybor-duino). 
 
Una vez completada la fase 0 y adquirido el material, me adentro en la fase 1. 

El primer proyecto, control de tres diodos led de colores, superado con éxito. Modifico el programa para que funcione como un semáforo y preparo un esqueleto de programación que me sirva para los ejemplos venideros.
IMG_3989
El código provisional de mi semáforo es éste:
/* +----------------------------------------------------------+
 ! ** A R D U I N O ** !
 ! PROGRAMA : Semaforo !
 ! AUTOR : David Santaolalla !
 ! FECHA : 13/04/2015 !
 ! DESCRIPCION : !
 ! Tres leds: rojo, ambar y verde en pines 3, 4 y 5 y un !
 ! pulsador en pin 2. El semaforo esta en rojo hasta que se !
 ! pulsa el boton. Entonces pasa a verde, luego a ambar y !
 ! vuelve a rojo. Si se mantiene pulsado se queda en verde. !
 ! !
 ! CIRCUITO : !
 ! El correspondiente al Arduino Starter Kit ! 
 ! Project 2 - Spaceship Interface !
 ! http://farm9.staticflickr.com/8467/8100201203_5e816025b7_b.jpg !
 ! !
 +----------------------------------------------------------+
*/
// Constantes
const int Pulsador = 2;
const int Rojo = 3;
const int Ambar = 4;
const int Verde = 5;
const int Tverde = 2000; // duracion del verde
const int Tambar = 1000; // duracion del ambar
// Variables globales
int switchstate = 0;

void setup() {
 // initialize serial communication at 9600 bits per second:
 Serial.begin(9600);
 // Declaracion de pines entrada
 pinMode(Pulsador, INPUT);
 // Declaracion de pines de salida
 pinMode(Rojo, OUTPUT);
 pinMode(Ambar, OUTPUT);
 pinMode(Verde, OUTPUT);
 

}
// PROGRAMA PRINCIPAL -----------------------------
void loop() {
 // main code
 // read the value of the switch
 // digitalRead() checks to see if there is voltage
 // on the pin or not
 switchstate = digitalRead(Pulsador);

 // if the button is not pressed
 // turn on the ROJO LED and off the OTROS LEDs 
 if (switchstate == LOW) {
 digitalWrite(Rojo, HIGH); // turn the ROJO LED on pin 3 on
 digitalWrite(Ambar, LOW); // turn the AMBAR LED on pin 4 off
 digitalWrite(Verde, LOW); // turn the VERDE LED on pin 5 off
 Serial.println("Rojo");
 }
 // this else is part of the above if() statement.
 // if the switch is not LOW (the button is pressed)
 // turn off the ROJO LED and ENCIENDE EL VERDE LEDs 
 else {
 digitalWrite(Rojo, LOW); // turn the ROJO LED on pin 3 off
 digitalWrite(Ambar, LOW); // turn the AMBAR LED on pin 4 off
 digitalWrite(Verde, HIGH); // turn the VERDE LED on pin 5 on
 Serial.println("Verde");
 switchstate = digitalRead(Pulsador);
 if (switchstate == LOW) {
 // wait for DOS second before changing the light
 delay(Tverde);
 digitalWrite(Ambar, HIGH); // turn the AMBAR LED on pin 4 on
 digitalWrite(Verde, LOW); // turn the VERDE LED on pin 5 off
 Serial.println("Ambar");
 // wait for UN second before changing the light
 delay(Tambar);
 }
 }
}

// DEFINICION DE FUNCIONES-------------------------

// FIN DEL PROGRAMA -------------------------------
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s