📟 Micro:bit Project: MQ Or Gas sensor Alert
ដើម្បីធ្វើឱ្យកូដនេះដំណើរការ សូមអនុវត្តតាមតក្កវិជ្ជាភ្ជាប់ខ្សែភ្លើងនេះ៖
VCC៖ ភ្ជាប់ទៅ 3V ឬប្រភព 5V ខាងក្រៅ (ឧបករណ៍ចាប់សញ្ញា MQ ជាធម្មតាចូលចិត្ត 5V ដើម្បីកំដៅធាតុឱ្យបានត្រឹមត្រូវ ប៉ុន្តែត្រូវប្រយ័ត្នកុំឱ្យបញ្ជូន 5V ត្រឡប់ទៅម្ជុល micro:bit វិញ)។
GND: ភ្ជាប់ទៅ GND ។
AO (Analog Out): ភ្ជាប់ទៅ Pin 1 ។
LED/Buzzer: ភ្ជាប់ទៅ Pin 2 និង Pin 8 រៀងៗខ្លួន។
គន្លឹះសំខាន់ៗសម្រាប់ឧបករណ៍ចាប់សញ្ញាឧស្ម័ន
ដំណាក់កាល "កំដៅមុន"៖ ឧបករណ៍ចាប់សញ្ញា MQ មានឧបករណ៍កម្តៅដែលភ្ជាប់មកជាមួយ។ នៅពេលអ្នកបើកវាជាលើកដំបូង ការអាននឹងមាននៅគ្រប់ទីកន្លែង។ ទុកឱ្យឧបករណ៍ចាប់សញ្ញានៅដំណើរការប្រហែល 60 វិនាទី មុនពេលអ្នកទុកចិត្តទិន្នន័យ។
ការក្រិតតាមខ្នាត៖ ឧបករណ៍ចាប់សញ្ញា MQ នីមួយៗគឺខុសគ្នាបន្តិចបន្តួច។ ប្រសិនបើលេខកូដរបស់អ្នកកំពុងបង្កឱ្យមានសំឡេងរោទិ៍ងាយពេក (ឬមិនបង្កទាល់តែសោះ) សូមផ្លាស់ប្តូរ 400នៅក្នុង ifសេចក្តីថ្លែងការណ៍ទៅជាលេខខ្ពស់ជាង ឬទាបជាងដោយផ្អែកលើអ្វីដែលអ្នកឃើញនៅក្នុងកុងសូល។
ការប្រើប្រាស់ LCD៖ ប្រសិនបើអ្នកចង់ប្រើ LCD I2C ដូចនៅក្នុងកូដ Arduino ដើមរបស់អ្នក អ្នក ត្រូវតែ ចុចប៊ូតុង "ផ្នែកបន្ថែម" នៅក្នុង MakeCode ហើយស្វែងរក "LCD1602" ។ នេះនឹងបន្ថែមមុខងារថ្មីៗ (ដូចជា LCD1602.showString()) ទៅក្នុងបណ្ណាល័យ JavaScript របស់អ្នក។
ដំណាក់កាល "កំដៅមុន"៖ ឧបករណ៍ចាប់សញ្ញា MQ មានឧបករណ៍កម្តៅដែលភ្ជាប់មកជាមួយ។ នៅពេលអ្នកបើកវាជាលើកដំបូង ការអាននឹងមាននៅគ្រប់ទីកន្លែង។ ទុកឱ្យឧបករណ៍ចាប់សញ្ញានៅដំណើរការប្រហែល 60 វិនាទី មុនពេលអ្នកទុកចិត្តទិន្នន័យ។
ការក្រិតតាមខ្នាត៖ ឧបករណ៍ចាប់សញ្ញា MQ នីមួយៗគឺខុសគ្នាបន្តិចបន្តួច។ ប្រសិនបើលេខកូដរបស់អ្នកកំពុងបង្កឱ្យមានសំឡេងរោទិ៍ងាយពេក (ឬមិនបង្កទាល់តែសោះ) សូមផ្លាស់ប្តូរ 400នៅក្នុង ifសេចក្តីថ្លែងការណ៍ទៅជាលេខខ្ពស់ជាង ឬទាបជាងដោយផ្អែកលើអ្វីដែលអ្នកឃើញនៅក្នុងកុងសូល។
ការប្រើប្រាស់ LCD៖ ប្រសិនបើអ្នកចង់ប្រើ LCD I2C ដូចនៅក្នុងកូដ Arduino ដើមរបស់អ្នក អ្នក ត្រូវតែ ចុចប៊ូតុង "ផ្នែកបន្ថែម" នៅក្នុង MakeCode ហើយស្វែងរក "LCD1602" ។ នេះនឹងបន្ថែមមុខងារថ្មីៗ (ដូចជា LCD1602.showString()) ទៅក្នុងបណ្ណាល័យ JavaScript របស់អ្នក។
💻 JavaScript Code
let gasValue = 0
// Setup: LCD initialization usually depends on the specific extension you add
// For this example, we will use the serial monitor and the micro:bit screen
basic.forever(function () {
// Read the MQ2 sensor from Analog Pin 1
gasValue = pins.analogReadPin(AnalogPin.P1)
// Display the value on the micro:bit's LED matrix (optional)
// basic.showNumber(gasValue)
// Threshold check (400 is common, but you may need to calibrate)
if (gasValue > 400) {
// Show a warning icon
basic.showIcon(IconNames.No)
for (let index = 0; index <= 10; index++) {
// GAS DETECTED
// Turn on LED on Pin 2
pins.digitalWritePin(DigitalPin.P2, 1)
basic.pause(100)
// GAS DETECTED
// Turn on LED on Pin 2
pins.digitalWritePin(DigitalPin.P2, 0)
basic.pause(100)
// Turn on Buzzer on Pin 8
pins.digitalWritePin(DigitalPin.P8, 1)
basic.pause(100)
// Turn on Buzzer on Pin 8
pins.digitalWritePin(DigitalPin.P8, 0)
basic.pause(100)
}
} else {
// CLEAR
// Turn off LED
pins.digitalWritePin(DigitalPin.P2, 0)
// Turn off Buzzer
pins.digitalWritePin(DigitalPin.P8, 0)
// Show a happy face or clear screen
basic.showIcon(IconNames.Yes)
}
// A small pause to prevent the micro:bit from over-processing
basic.pause(500)
})
Post a Comment