Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
/********* 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: "CO Sensor" - Source Code NOT compiled for: Arduino Pro Mini 5V - Source Code created on: 2024-06-09 12:54:51 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* if button is pressed, so read CO data from sensor */ /* and print on serial. */ /****** END SYSTEM REQUIREMENTS *****/ /****** DEFINITION OF LIBRARIES *****/ #include
//https://github.com/evert-arias/EasyButton #include
//https://github.com/miguel5612/MQSensorsLib /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); void onPressed(); // Prototype for the button press callback function /***** DEFINITION OF DIGITAL INPUT PINS *****/ const uint8_t button_PushButton_PIN_D2 = 2; const uint8_t CO_Sensor_MQ7_DOUT_PIN_D3 = 3; /***** DEFINITION OF ANALOG INPUT PINS *****/ const uint8_t CO_Sensor_MQ7_AOUT_PIN_A0 = A0; /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/ EasyButton button(button_PushButton_PIN_D2); // Instantiate EasyButton object // Hardware Related Macros #define Board "Arduino Pro Mini" #define Pin A0 // Analog input pin for the sensor #define PreheatPin5 3 // Preheat pin for 5V #define PreheatPin14 4 // Preheat pin for 1.4V // Software Related Macros #define Type "MQ-7" #define Voltage_Resolution 5 #define ADC_Bit_Resolution 10 #define RatioMQ7CleanAir 27.5 // Declare Sensor MQUnifiedsensor MQ7(Board, Voltage_Resolution, ADC_Bit_Resolution, Pin, Type); void onPressed() { Serial.println("Button pressed"); // Read CO data from the sensor MQ7.update(); float CO_concentration = MQ7.readSensor(); // Print CO concentration on serial Serial.print("CO Concentration: "); Serial.print(CO_concentration); Serial.println(" ppm"); } void setup(void) { // put your setup code here, to run once: Serial.begin(115200); Serial.println(); Serial.println(">>> EasyButton pressed example <<<"); pinMode(button_PushButton_PIN_D2, INPUT_PULLUP); pinMode(CO_Sensor_MQ7_DOUT_PIN_D3, INPUT_PULLUP); pinMode(CO_Sensor_MQ7_AOUT_PIN_A0, INPUT); button.begin(); // Initialize the button button.onPressed(onPressed); // Attach the callback function to the button press event pinMode(PreheatPin5, OUTPUT); pinMode(PreheatPin14, OUTPUT); // Set regression method and constants for CO concentration MQ7.setRegressionMethod(1); MQ7.setA(99.042); MQ7.setB(-1.518); // Initialize the sensor MQ7.init(); // Preheat cycle Serial.println("Preheating, please wait 2.5 minutes"); digitalWrite(PreheatPin5, HIGH); digitalWrite(PreheatPin14, LOW); delay(60000); digitalWrite(PreheatPin5, LOW); digitalWrite(PreheatPin14, HIGH); delay(90000); digitalWrite(PreheatPin5, HIGH); digitalWrite(PreheatPin14, LOW); delay(60000); digitalWrite(PreheatPin5, LOW); digitalWrite(PreheatPin14, HIGH); delay(90000); digitalWrite(PreheatPin5, HIGH); digitalWrite(PreheatPin14, LOW); // Calibration Serial.print("Calibrating, please wait."); float calcR0 = 0; for (int i = 1; i <= 10; i++) { MQ7.update(); calcR0 += MQ7.calibrate(RatioMQ7CleanAir); Serial.print("."); } MQ7.setR0(calcR0 / 10); Serial.println(" done!"); if (isinf(calcR0)) { Serial.println("Warning: Connection issue, R0 is infinite. Please check wiring and supply."); while (1); } if (calcR0 == 0) { Serial.println("Warning: Connection issue, R0 is zero. Please check wiring and supply."); while (1); } MQ7.serialDebug(true); } void loop(void) { // put your main code here, to run repeatedly: button.read(); // Continuously read the status of the button digitalWrite(PreheatPin5, LOW); digitalWrite(PreheatPin14, HIGH); delay(90000); digitalWrite(PreheatPin5, HIGH); digitalWrite(PreheatPin14, LOW); MQ7.update(); MQ7.readSensor(); MQ7.serialDebug(); } /* END CODE */
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)