Lab_interaccio/2009/firmware_lalalab/firmware_lalalab.pde

109 lines
2.1 KiB
Plaintext
Raw Normal View History

2025-02-25 21:21:58 +01:00
int lowbat = 13; // Pin de bateria baja
int nivel = 3; //Sensor de nivel de bateria
int xbee = 4; //Pin de activacion del xbee
int buzzer = 9;
int val = 0; // variable to store the value coming from the sensor
int i=0;
int rfid_ok=0;
int id=0;
int ini=20;
int env=3;
void setup()
{
Serial.begin(9600);
pinMode(lowbat, OUTPUT);
pinMode(xbee, OUTPUT);
pinMode(buzzer, OUTPUT);
for (i = 5; i < 9; i++) pinMode(i, INPUT);
for (i = 5; i < 9; i++)
{
if (digitalRead(i))
{
if (i==5) val=1;
else if (i==6) val=2;
else if (i==7) val=4;
else if (i==8) val=8;
id=id+val;
}
}
digitalWrite(xbee, HIGH); //Habilito XBEE
delay(ini);
Serial.print("Soy el");
delay(env);
Serial.print(" ");
delay(env);
Serial.print("Hybrid");
delay(env);
Serial.print(" ");
delay(env);
Serial.println(id);
delay(env);
digitalWrite(lowbat, HIGH);
digitalWrite(xbee, LOW); //deshabilito XBEE
digitalWrite(buzzer, HIGH);
delay(300);
digitalWrite(buzzer, LOW);
}
void loop()
{
if (rfid_ok==1)
{
Serial.print(id,BYTE);
delay(env);
}
while (Serial.available()>0)
{
if (rfid_ok==0)
{
delay(ini);
Serial.print(id,BYTE);
delay(env);
}
rfid_ok=1;
val=Serial.read();
digitalWrite(xbee, HIGH); //Habilito XBEE
Serial.print(val,BYTE);
delay(env);
}
if (rfid_ok==1)
{
for (i = 0; i < 3; i++)
{
val=analogRead(i);
/*Serial.print(":");
delay(env);*/
Serial.print(map(val, 0, 675, 0, 255),BYTE);
delay(env);
}
}
if (rfid_ok==1)
{
val=analogRead(4);
/*Serial.print(":");
delay(env);*/
Serial.print(map(val, 0, 675, 0, 255),BYTE);
delay(env);
}
val=analogRead(nivel);
if (val<=614) digitalWrite(lowbat, LOW); //Umbral de bateria baja 3v, que equivale a 614
else digitalWrite(lowbat, HIGH);
if (rfid_ok==1)
{
/*Serial.print(":");
delay(env);*/
Serial.print(map(val, 0, 860, 0, 255),BYTE); //El maximo de tension de la bateria son 4'2v, que equivale a 860
delay(env);
Serial.println();
delay(env);
}
}