//currently 8 leds controllable #define LED1 A0 #define LED2 A1 #define LED3 A2 #define LED4 A3 #define LED5 A4 #define LED6 A5 #define LED7 7 //A6, and A7 are ADC only. No GPIO. #define LED8 8 #define Sensor A6 #define SPKR 5 uint16_t gasVAL; void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); pinMode(LED6, OUTPUT); pinMode(LED7, OUTPUT); pinMode(LED8, OUTPUT); pinMode(SPKR, OUTPUT); Startup(); } void loop() { // put your main code here, to run repeatedly: gasVAL = analogRead(Sensor); Serial.println(gasVAL); lightLED(gasVAL); delay(30); } void Startup (void){ Serial.println("Flammable Gas Sensor"); Serial.println("Begin"); int yy = 0; for(yy=200;yy<1200;yy+=150){ tone(SPKR,yy,100); delay(100); } /* for(yy=2000;yy>100;yy-=100){ tone(SPKR,yy,100); delay(50); }*/ digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); delay(500); digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); digitalWrite(LED7,HIGH); digitalWrite(LED8,HIGH); delay(500); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); } void lightLED( uint16_t reading){ if (reading >= 750){ digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); digitalWrite(LED7,HIGH); digitalWrite(LED8,HIGH); tone(SPKR,750,100); } else if (reading >= 700){ digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); digitalWrite(LED7,HIGH); digitalWrite(LED8,LOW); tone(SPKR,700,100); } else if (reading >= 650){ digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); tone(SPKR,650,100); } else if (reading >= 600){ digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); tone(SPKR,600,100); } else if (reading >= 550){ digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); tone(SPKR,550,100); } else if (reading >= 500){ digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); tone(SPKR,500,100); } else if (reading >= 410){ digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); tone(SPKR,410,100); } else if (reading >= 300){ digitalWrite(LED1,HIGH); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); } else if (reading >= 0){ digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); } /*else { digitalWrite(LED1,HIGH); digitalWrite(LED2,LOW); digitalWrite(LED3,HIGH); digitalWrite(LED4,LOW); digitalWrite(LED5,HIGH); digitalWrite(LED6,LOW); digitalWrite(LED7,HIGH); digitalWrite(LED8,LOW); }*/ }