109 lines
2.1 KiB
Plaintext
109 lines
2.1 KiB
Plaintext
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);
|
|
}
|
|
}
|