Hi, this is my first time posting, I'm having a weird problem I can't seem to resolve with a breathalyzer I'm putting together.
I just assembled an arduino with an MQ3 ethanol sensor, the serial monitor seems to get the first 2 readings ok and then it just jumps to the number 769 and gets stuck, this obviously breaks everything as the thing relies on this value for everything else.
I'm currently clueless as to what is going on, it was working ok earlier today.
I already know my setup is clumbsy and stupid but this is the first time I'm trying anything with arduino and with electronics in general.
The MQ3 sensor is connected as following:
AO -> A0
DO -> 8
GND -> GND on arduino board
VCC -> 3.3V on arduino board
CODE:
int mq3_analogPin = A0; // connected to the output pin of MQ3
int ledg = 4;
int ledr= 3;
const int buzzer = 7;
void setup(){
Serial.begin(9600); // open serial at 9600 bps
pinMode(ledg, OUTPUT);
pinMode(ledr, OUTPUT);
digitalWrite(ledg, LOW);
digitalWrite(ledr, LOW);
pinMode(buzzer, OUTPUT);
}
void loop()
{
delay(1000);// give ample warmup time for readings to stabilize
int mq3_value = analogRead(mq3_analogPin);
Serial.println(mq3_value);
delay(500); //Just here to slow down the output.
Serial.println(mq3_value);
mq3_value = analogRead;
tone(buzzer, 1000);
digitalWrite(ledg, LOW);
digitalWrite(ledr, HIGH);
delay(500);
noTone(buzzer);
digitalWrite(ledg, LOW);
digitalWrite(ledr, LOW);
delay(500);
Serial.println(mq3_value);
mq3_value = analogRead;
tone(buzzer, 1000);
digitalWrite(ledg, LOW);
digitalWrite(ledr, HIGH);
delay(500);
noTone(buzzer);
digitalWrite(ledg, LOW);
digitalWrite(ledr, LOW);
delay(500);
Serial.println(mq3_value);
mq3_value = analogRead;
tone(buzzer, 1000);
digitalWrite(ledg, LOW);
digitalWrite(ledr, HIGH);
delay(500);
noTone(buzzer);
digitalWrite(ledg, LOW);
digitalWrite(ledr, LOW);
delay(500);
Serial.println(mq3_value);
mq3_value = analogRead;
tone(buzzer, 1000);
digitalWrite(ledg, LOW);
digitalWrite(ledr, HIGH);
delay(500);
noTone(buzzer);
digitalWrite(ledg, LOW);
digitalWrite(ledr, LOW);
delay(500);
Serial.println(mq3_value);
mq3_value = analogRead;
tone(buzzer, 1000);
digitalWrite(ledg, LOW);
digitalWrite(ledr, HIGH);
delay(500);
noTone(buzzer);
digitalWrite(ledg, LOW);
digitalWrite(ledr, LOW);
delay(500);
Serial.println(mq3_value);
mq3_value = analogRead;
tone(buzzer, 1000);
digitalWrite(ledg, LOW);
digitalWrite(ledr, HIGH);
delay(500);
noTone(buzzer);
digitalWrite(ledg, LOW);
digitalWrite(ledr, LOW);
delay(500);
Serial.println(mq3_value);
mq3_value = analogRead;
tone(buzzer, 1000);
digitalWrite(ledg, LOW);
digitalWrite(ledr, HIGH);
delay(500);
noTone(buzzer);
digitalWrite(ledg, LOW);
digitalWrite(ledr, LOW);
delay(500);
Serial.println(mq3_value);
mq3_value = analogRead;
tone(buzzer, 1000);
digitalWrite(ledg, LOW);
digitalWrite(ledr, HIGH);
delay(500);
noTone(buzzer);
digitalWrite(ledg, LOW);
digitalWrite(ledr, LOW);
delay(2000);
if (analogRead < 170)
{
digitalWrite(ledg, HIGH);
digitalWrite(ledr, LOW);
tone(buzzer, 1000);
delay(3000);
}
else if (analogRead > 220)
{
tone(buzzer, 200);
digitalWrite(ledg, LOW);
digitalWrite(ledr, HIGH);
delay(3000);
}
else
{
digitalWrite(ledr, LOW);
digitalWrite(ledg, LOW);
delay(3000);
}
}
Please let me know if you need any other information.
THanks! really.