Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********* Pleasedontcode.com **********
- Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- - Terms and Conditions:
- You have a non-exclusive, revocable, worldwide, royalty-free license
- for personal and commercial use. Attribution is optional; modifications
- are allowed, but you're responsible for code maintenance. We're not
- liable for any loss or damage. For full terms,
- please visit pleasedontcode.com/termsandconditions.
- - Project: AlcoholDetector
- - Source Code compiled for: Arduino Pro Mini 5V
- - Source Code created on: 2023-12-26 09:22:47
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* If sensor detects an alcohol percentage over a */
- /* threshold2, so activate the buzzer and led, switch */
- /* off relay and print on lcd ""Eccessive alcohol". */
- /****** SYSTEM REQUIREMENT 2 *****/
- /* If sensor detects an alcohol concentrati on below */
- /* a threshold1 (that Is lower of threshold2), so */
- /* switch off the led and buzzer, maintain on the */
- /* relay and do not display anything on lcd. */
- /****** END SYSTEM REQUIREMENTS *****/
- /****** DEFINITION OF LIBRARIES *****/
- #include <Arduino.h>
- #include <Wire.h>
- #include <MQUnifiedsensor.h>
- #include <LiquidCrystal_I2C.h>
- /****** SYSTEM PARAMETERS *****/
- const int threshold1 = 100; // Threshold 1 for low alcohol concentration
- const int threshold2 = 200; // Threshold 2 for high alcohol concentration
- /****** FUNCTION PROTOTYPES *****/
- void setup(void);
- void loop(void);
- void handleAlcoholConcentration(int alcoholConcentration);
- /***** DEFINITION OF ANALOG INPUT PINS *****/
- const uint8_t Mq3_alcohol_value_PIN_A0 = A0;
- /***** DEFINITION OF DIGITAL OUTPUT PINS *****/
- const uint8_t Buzzer_ActiveBuzzer_output_PIN_D2 = 2;
- const uint8_t Led_LED_PIN_D3 = 3;
- const uint8_t Relay_powerSupplyDCMotor_PIN_D4 = 4;
- /***** DEFINITION OF I2C PINS *****/
- const uint8_t Lcd_LCD1602I2C_I2C_PIN_SDA_A4 = A4;
- const uint8_t Lcd_LCD1602I2C_I2C_PIN_SCL_A5 = A5;
- const uint8_t Lcd_LCD1602I2C_I2C_SLAVE_ADDRESS = 0x27;
- /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
- MQUnifiedsensor MQ3("Arduino Pro Mini 5V", 5, 10, Mq3_alcohol_value_PIN_A0, "MQ-3");
- LiquidCrystal_I2C lcd(Lcd_LCD1602I2C_I2C_SLAVE_ADDRESS, 16, 2); // Assuming you are using 16x2 LCD
- void setup(void)
- {
- // put your setup code here, to run once:
- pinMode(Mq3_alcohol_value_PIN_A0, INPUT);
- pinMode(Buzzer_ActiveBuzzer_output_PIN_D2, OUTPUT);
- pinMode(Led_LED_PIN_D3, OUTPUT);
- pinMode(Relay_powerSupplyDCMotor_PIN_D4, OUTPUT);
- lcd.begin(16, 2); // Initialize LCD with 16 columns and 2 rows
- lcd.backlight();
- }
- void loop(void)
- {
- // Read alcohol concentration from the MQ-3 sensor
- MQ3.update();
- int alcoholConcentration = MQ3.readSensor();
- // Handle the alcohol concentration based on the system requirements
- handleAlcoholConcentration(alcoholConcentration);
- // Display the alcohol concentration on the LCD
- lcd.setCursor(0, 0);
- lcd.print("Alcohol: ");
- lcd.print(alcoholConcentration);
- lcd.print(" ppm");
- delay(500);
- }
- void handleAlcoholConcentration(int alcoholConcentration)
- {
- // If alcohol concentration is above threshold2
- if (alcoholConcentration > threshold2)
- {
- digitalWrite(Buzzer_ActiveBuzzer_output_PIN_D2, HIGH);
- digitalWrite(Led_LED_PIN_D3, HIGH);
- digitalWrite(Relay_powerSupplyDCMotor_PIN_D4, LOW);
- lcd.setCursor(0, 1);
- lcd.print("Excessive alcohol");
- }
- // If alcohol concentration is below threshold1
- else if (alcoholConcentration < threshold1)
- {
- digitalWrite(Buzzer_ActiveBuzzer_output_PIN_D2, LOW);
- digitalWrite(Led_LED_PIN_D3, LOW);
- digitalWrite(Relay_powerSupplyDCMotor_PIN_D4, HIGH);
- lcd.setCursor(0, 1);
- lcd.print(" ");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement