#define rgb1R 2 #define rgb1B 3 #define rgb1G 4 #define rgb2R 5 #define rgb2B 6 #define rgb2G 7 #define buzzer 8 #define tempAmbiente1 A0 #define tempAmbiente2 A1 char sit_Ambiente1; char sit_Ambiente2; #define limiteMaxTemp 40 #define sensorGas1 A3 #define sensorGas2 A4 #define limiteMaxGas 600 void setup(){ pinMode(rgb1R, OUTPUT); pinMode(rgb1G, OUTPUT); pinMode(rgb1B, OUTPUT); pinMode(rgb2R, OUTPUT); pinMode(rgb2G, OUTPUT); pinMode(rgb2B, OUTPUT); pinMode(buzzer, OUTPUT); //inicializar ligado verde ambiente 1 digitalWrite(rgb1R, LOW); digitalWrite(rgb1G, HIGH); digitalWrite(rgb1B, LOW); //inicializar ligado verde ambiente 2 digitalWrite(rgb2R, LOW); digitalWrite(rgb2G, HIGH); digitalWrite(rgb2B, LOW); Serial.begin(9600); } void loop(){ sit_Ambiente1 = 'N'; sit_Ambiente2 = 'N'; // para o sensor 1 int sensorTemp1 = analogRead(tempAmbiente1); // converter o valor lido float valorTemp1 = sensorTemp1 * 5; valorTemp1 /=1024; // em graus Celsius float Temp1CEL = (valorTemp1 - 0.5) * 100; // fim do sensor 1 // para o sensor 2 int sensorTemp2 = analogRead(tempAmbiente2); // converter o valor lido float valorTemp2 = (sensorTemp2 * 5); valorTemp2 /=1024; // em graus Celsius float Temp2CEL = (valorTemp2 - 0.5) * 100; // fim do sensor 2 int valorGas1 = analogRead(sensorGas1); int valorGas2 = analogRead(sensorGas2); Serial.println(valorGas1); // = n - normal / p - perigo if (Temp1CEL > limiteMaxTemp || valorGas1>limiteMaxGas) { sit_Ambiente1 = 'P'; } if (Temp2CEL > limiteMaxTemp|| valorGas2>limiteMaxGas) { sit_Ambiente2 = 'P'; } if (sit_Ambiente1 != 'N' || sit_Ambiente2 != 'N') { digitalWrite(buzzer, HIGH); } else { digitalWrite(buzzer, LOW); } controle(sit_Ambiente1,sit_Ambiente2 ); } void controle(char situacao1, char situacao2 ) { if (situacao1 == 'N') { // verde digitalWrite(rgb1R, LOW); digitalWrite(rgb1G, HIGH); digitalWrite(rgb1B, LOW); } else { // vermelho digitalWrite(rgb1R, HIGH); digitalWrite(rgb1G, LOW); digitalWrite(rgb1B, LOW); delay(150); digitalWrite(rgb1R, LOW); digitalWrite(rgb1G, LOW); digitalWrite(rgb1B, LOW); delay(150); } if (situacao2 == 'N') { // verde digitalWrite(rgb2R, LOW); digitalWrite(rgb2G, HIGH); digitalWrite(rgb2B, LOW); } else { // vermelho digitalWrite(rgb2R, HIGH); digitalWrite(rgb2G, LOW); digitalWrite(rgb2B, LOW); delay(150); digitalWrite(rgb2R, LOW); digitalWrite(rgb2G, LOW); digitalWrite(rgb2B, LOW); delay(150); } }