CO click carries the MQ-7 gas sensor with high sensitivity to carbon monoxide. The click is designed to run on a 5V power supply only. It communicates with the target microcontroller over the AN pin on the mikroBUS™ line.
The board also features a calibration potentiometer, a mikroBUS™ host socket, two jumpers and a power indicator LED.
The MQ-7 sensor has high sensitivity to carbon monoxide. The gas sensing layer on the sensor unit is made of Tin dioxide (SnO2), which has lower conductivity in clean air. The conductivity increases as the levels of Carbon monoxide rise. The detection range of the sensor is 20ppm-2000ppm of CO.
To calibrate the sensor for the environment you’ll be using it in, CO click has a small potentiometer that allows you to adjust the Load Resistance of the sensor circuit. For precise calibration, the sensor needs to preheat (once powered up, it takes 48h to reach the right temperature).
Carbon monoxide gas sensors are used to detect the presence of that gas and prevent carbon monoxide poisoning.
Since carbon monoxide has no smell or color, humans cannot detect it. In high concentrations, it can be lethal.
Specification
Type | Gas |
Applications | Measuring pollution, designing safety alarms, performing experiments |
On-board modules | MQ-7 sensor for Carbon monoxide |
Key Features | Gas sensing layer on the sensor unit is made of Tin dioxide (SnO2) |
Key Benefits | Potentiometer for calibration |
Interface | Analog |
Input Voltage | 3.3V or 5V |
Compatibility | mikroBUS |
Click board size | M (42.9 x 25.4 mm) |
This table shows how the pinout on CO click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Code examples for CO click, written for MikroElektronika hardware and compilers are available on Libstock.
The following code snippet shows how to initialize the click, and then read from it, showing the values on the display.
01 void main() { 02 03 LCD_Init(); // Initialize Lcd 04 Lcd_Cmd(_LCD_CLEAR); // Clear display 05 Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off 06 Lcd_Out(1,1,"CO click"); // Write text in first row 07 08 ANSELA = 0x04; // Set ADC on RA2 09 TRISA = 0x04; // Set RA2 as input 10 LATA = 0; // Set PORTA as 0 11 ADC_Init(); // Initialize ADC 12 delay_ms(100); // Pause of 100ms for ADC module stabilization 13 14 //Initial read ADC and display PPM value on LCD 15 readSensor(); // Read sensor 16 calculatePPM(); // Calculating PPM value 17 18 FloatToStr(ppm,&txt); // Conversion float ppm to string txt 19 LCD_Out(2,14,"ppm"); // Print text on LCD 20 LCD_Out(2,1,txt); // Print txt value on LCD 21 22 while(1) { 23 24 delay_ms(500); // Pause 500ms 25 readSensor(); // Read sensor 26 calculatePPM(); // Calculating PPM value 27 FloatToStr(ppm,&txt); // Conversion float ppm to string txt 28 LCD_Out(2,1,txt); // Print txt value on LCD 29 30 } 31 }