viernes, 7 de mayo de 2010

Los acelerómetros


En clase hemos dado el temario de los acelerómetros y hemos aprendido que con con un circuito integrado se puede controlar objetos que esten conectados al acelerómetro.
Por ejemplo el mando de la wii tiene un acelerómetro incluido para detectar los movimientos y queda chachi piruli
Lo hemos actualizado gabriela y yo, yo soy guillermo.

martes, 4 de mayo de 2010

Alarma por presencia

En la clase de hoy, hemos montado una alarma que se activa por movimiento. Cuando detecta una variación en la intensidad de la luz, suena una sirena durante 60 segundos.

Este es el código fuente:



int pot_R = 0;
int pot_G = 1;
int pot_B = 2;
int spkr = 3;

unsigned int value_R = 1000;
unsigned int value_G = 3000;
unsigned int value_B = 1;
int umbral;

void setup()
{
Serial.begin(9600);
pinMode(spkr, OUTPUT);
}

void loop()
{
sirena();
}

void potRead()
{
value_R = analogRead(pot_R);
value_G = analogRead(pot_G);
value_B = analogRead(pot_B);
}
void sirena()
{
potRead();
for(int sube = 500 + value_R; sube < baja =" 2000"> 500 + value_G; baja -= 1 + value_B)
{
tone(spkr, baja);
potRead();
serialOut();
}
}

void serialOut()
{
Serial.print("Pot 1: ");
Serial.print(value_R, DEC);
Serial.print(" Pot 2: ");
Serial.print(value_G, DEC);
Serial.print(" Pot 3: ");
Serial.println(value_B);
}

viernes, 23 de abril de 2010

Semáforo Arduino





Hoy hemos terminado la programación de un montaje que simula un semáforo, con luces de paso para tráfico rodado, peatones, un pulsador para preferencia de paso para los peatones e incluso señal acústica para peatones invidentes.



El circuito electrónico es el ejemplo de semáforo de los tutoriales de fritzing, al cual hemos añadido un altavoz piezoeléctrico para el modo de aviso acústico.
El código controla el estado de los semáforos para tráfico rodado y peatones, el pulsador para prioridad de paso de los peatones, el avisador acústico para paso de peatones invidentes, e informa por puerto serie el estado del semáforo en tiempo real.

Este es el código fuente:

#include "pitches.h"

int Tr_rojo=12;
int Tr_amarillo=11;
int Tr_verde=10;

int P_rojo=9;
int P_verde=8;

int P_boton=2;

int Tr_tiempo;

int P_tiempo;
int Estado_boton;
int Bandera;

void setup()
{
pinMode(Tr_rojo, OUTPUT);
pinMode(Tr_amarillo, OUTPUT);
pinMode(Tr_verde, OUTPUT);
pinMode(P_rojo, OUTPUT);
pinMode(P_verde, OUTPUT);
pinMode(P_boton, INPUT);

P_tiempo=10000;

Serial.begin(9600);
}

void loop()
{

Estado_boton = digitalRead(P_boton);
Serial.println(P_tiempo);
Serial.println(Bandera);

if(Estado_boton == HIGH)
{
P_tiempo=5000;
Bandera=1;
}
// Bloque 1
Serial.println("Bloque 1");
digitalWrite(Tr_verde, HIGH);
digitalWrite(P_rojo, HIGH);
delay(P_tiempo);
if(Bandera==1)
{
P_tiempo=10000;
Bandera=0;
}
// Bloque 2
Serial.println("Bloque 2");
digitalWrite(Tr_verde, LOW);
for(Tr_tiempo=0; Tr_tiempo<10;>
{
Serial.println("Bloque 2 - Encendido");
Serial.println(Tr_tiempo);
digitalWrite(Tr_amarillo, HIGH);
digitalWrite(P_rojo, HIGH);
delay(250);
Serial.println("Bloque 2 - Apagado");
digitalWrite(Tr_amarillo, LOW);
digitalWrite(P_rojo, LOW);
delay(250);
}

// Bloque 3
Serial.println("Bloque 3");

for(Tr_tiempo=0; Tr_tiempo<5;>
{
digitalWrite(Tr_rojo, HIGH);
digitalWrite(P_verde, HIGH);
tone(6, NOTE_G3,8);
tone(6, NOTE_G3,8);
delay(1000);
}
// Bloque 4
Serial.println("Bloque 4");
digitalWrite(Tr_rojo, LOW);
for(Tr_tiempo=0; Tr_tiempo<5;>
{
Serial.println("Bloque 4 - Encendido");
Serial.println(Tr_tiempo);
digitalWrite(Tr_amarillo, HIGH);
digitalWrite(P_verde, HIGH);
delay(250);
tone(6, NOTE_G3,4);
tone(6, NOTE_G3,4);
Serial.println("Bloque 4 - Apagado");
digitalWrite(Tr_amarillo, LOW);
digitalWrite(P_verde, LOW);
delay(250);
}

}