viernes, 23 de noviembre de 2007

códigos: en lo que van

aquí voy a ir dejando algunos códigos a medida que vayan siendo creados.
Les servirán a todos, además me he dado la lata de comentarlos apra que los puedan modificar como quieran.

para leer la vibración :
/*código para el proyecto creado por fernando, carol, silvana,
lionel y josé. Funciona en base a lecturas de sensores de vibración.
código, raimundo hamilton, rhamilton@utalca.cl
copien y peguen en el software arduino*/

//variables
int valor =0; //el valor de la lectura
int pin = 0; //el pin de entrada analogica
int pinmusica = 11; //el pin donde se conecta el parlante (después será un relé)

void setup(){
Serial.begin(9600); //abre el puerto serial a 9600 baudios
}
void loop(){
valor = analogRead(pin); //le asigna la lectura del pin del sensor a la variable valor
Serial.println (valor); //envia el valor al pc para poder verlo

if(valor<1000){>
Serial.println("persona"); //envia la palabra persona
analogWrite(pinmusica,3200); //tira un sonido al parlante de frecuencia 3200
delay(50); //espera 50 milisegs para que el sonido se escuche
}
if(valor>1000){ //si el valor es menor a 1000,
analogWrite(pinmusica,0); //apaga el parlante
}
}

Asientos que prenden agua

/*codigo para el proyecto fuentes de agua accionadas por asiento.
proyecto creado por marlies grave, jose antonio lillo, rodrigo gonzalez y nelson rodriguez
en el taller de physical computing de la escuela de diseño de la universidad de talca.
codigo, raimundo hamilton, rhamilton@utalca.cl
versión 0.1*/

//variables
int asiento1 = 0; //el estado de los asientos
int asiento2 = 0;

//pines
int pinAsiento1 = 10;
int pinAsiento2 = 11;
int rele1=2;
int rele2=3;
int rele3=4;
int rele4=5;
int rele5=6;
int rele6=7;
int releFuente1=8;
int releFuente2=9;

void setup(){
pinMode (pinAsiento1, INPUT);
pinMode (pinAsiento2, INPUT);
pinMode (rele1, OUTPUT);
pinMode (rele2, OUTPUT);
pinMode (rele3, OUTPUT);
pinMode (rele4, OUTPUT);
pinMode (rele5, OUTPUT);
pinMode (rele6, OUTPUT);
pinMode (releFuente1, OUTPUT);
pinMode (releFuente2, OUTPUT);
Serial.begin(9600);
}

void loop(){
//lee el estado de los asientos
asiento1 = digitalRead(pinAsiento1);
asiento2 = digitalRead(pinAsiento2);

//si el asiento 1 está ocupado, prende y apaga en orden los chorros de agua (seccion 1)
if(asiento1 == HIGH){
digitalWrite(rele1,HIGH);
delay(3000);
digitalWrite(rele2,HIGH);
digitalWrite(rele1, LOW);
delay(3000);
digitalWrite(rele3, HIGH);
digitalWrite(rele2,LOW);
delay(3000);
digitalWrite(rele3, LOW);
}

//si el asiento 2 esta ocupado, prende y apaga en orden los chorros de agua (sección 2)
if(asiento2 == HIGH){
digitalWrite(rele4,HIGH);
delay(3000);
digitalWrite(rele5,HIGH);
digitalWrite(rele4, LOW);
delay(3000);
digitalWrite(rele6, HIGH);
digitalWrite(rele5,LOW);
delay(3000);
digitalWrite(rele6, LOW);
}

//si los dos asientos están ocupados, prende seccion 1, después sección 2 (más rápido) y la fuente de al medio.
//la fuente del medio se prende y apaga 5 veces y después se apaga todo.
if ((asiento1==HIGH)&&(asiento2==HIGH)){
digitalWrite(rele1,HIGH);
delay(1500);
digitalWrite(rele2,HIGH);
delay(1500);
digitalWrite(rele3, HIGH);
delay(1500);
digitalWrite(rele4,HIGH);
delay(1500);
digitalWrite(rele5,HIGH);
delay(1500);
digitalWrite(rele6, HIGH);
delay(1500);
for(int i=0;i>=5;i++){ //este loop se repetirá 5 veces y después el código seguirá
digitalWrite(releFuente1, HIGH);
digitalWrite(releFuente2, HIGH);
delay (4000);
digitalWrite(releFuente1, LOW);
digitalWrite(releFuente2, LOW);
delay(2000);
}
digitalWrite(rele1,LOW);
digitalWrite(rele2,LOW);
digitalWrite(rele3,LOW);
digitalWrite(rele4,LOW);
digitalWrite(rele5,LOW);
digitalWrite(rele6,LOW);
}
}