Ардуино коды және бейне: Arduino үшін жалын сенсоры модулі
Бұл оқулықта біз Arduino-мен жалын сенсоры модулін қалай пайдалану керектігін қарастырамыз. Жалын сенсоры жалынның болуын анықтайды және оны анықтаған кезде дабыл немесе индикаторды іске қоса алады. Осы жобаның соңында сізде жалынды анықтауға дыбыстық ескерту және көрнекі кері байланыспен жауап беретін жұмыс істейтін жүйе болады.


Жалын сенсоры модулі жалынды анықтау үшін инфрақызыл жарықдиодты пайдаланып жұмыс істейді. Жалын анықталған кезде модуль басқа компоненттерді, мысалы, дыбыстық сигнал бергішті немесе жарықдиодты іске қосу үшін пайдаланылатын сигнал шығарады. Бұл жоба жалын сенсорын Arduino-ға қосу және кіріс пен шығысты өңдеу үшін қарапайым бағдарлама жазудан тұрады.
Код пен қосылымдарды нақтырақ түсіну үшін, ілеспе бейнені қарауды ұсынамын (бейнеде 00:00).
Аппараттық құралдар түсіндірмесі
Бұл жобадағы негізгі компоненттерге жалын сенсоры модулі, Arduino тақтасы және ескерту үшін дыбыстық сигнал бергіш немесе жарықдиод кіреді. Жалын сенсорында төрт түйреуіш бар: цифрлық шығыс түйреуіші (DO), аналогтық шығыс түйреуіші (AO), қуат түйреуіші (VCC) және жер түйреуіші (GND). Цифрлық шығыс түйреуіші жалын анықталған кезде HIGH сигналын жібереді, ал аналогтық шығыс жалынның қарқындылығына негізделген өзгермелі мәндерді қамтамасыз етеді.
Arduino жалынның бар-жоғын анықтау үшін цифрлық шығысты оқиды. Сенсор жалынды анықтаған кезде, Arduino шығыс түйреуішін пайдаланып дабылды немесе жарықты іске қоса алады. Жалынды анықтау сезімталдығын модульдегі кірістірілген потенциометрдің көмегімен реттеуге болады.
Деректер парағының мәліметтері
| Өндіруші | Generic |
|---|---|
| Бөлшек нөмірі | LM393 |
| Логика/IO кернеуі | 5 В |
| Қоректендіру кернеуі | 2–36 В |
| Шығыс тогы (арнаға) | 20 мА |
| Ең жоғары ток (арнаға) | 50 мА |
| ШИМ жиілігі бойынша нұсқау | Жоқ |
| Кіріс логикалық шектері | 0.8 В (төмен), 2.0 В (жоғары) |
| Кернеудің төмендеуі / RDS(on) / қанығу | 0.2 В |
| Жылулық шектер | 125 °C |
| Қаптама | TO-220 |
| Ескертулер / нұсқалар | Реттелетін сезімталдық |
- Модуль үшін 2-ден 36 В-қа дейінгі дұрыс қоректендіру кернеуін қамтамасыз етіңіз.
- Жалынды оңтайлы анықтау үшін сенсордың инфрақызыл жарықдиодын таза ұстаңыз.
- Модуль ең жоғары ток шектеріне жақын жұмыс істесе, жылу таратқышты пайдаланыңыз.
- Қысқа тұйықталуды немесе қате қосылымдарды болдырмау үшін сымдарды мұқият жалғаңыз.
- Әртүрлі қолданулар үшін платадағы потенциометрді пайдаланып сезімталдықты реттеңіз.
- Дабыл шығысы қосылған жүктемені (дыбыстық сигнал бергіш/жарықдиод) өңдей алатынын тексеріңіз.
Қосылым нұсқаулары


Жалын сенсоры модулін Arduino-ға қосу үшін, алдымен жалын сенсорының VCC түйреуішін Arduino-дағы 5V түйреуішіне жалғаңыз. Содан кейін сенсордың GND түйреуішін Arduino-дағы GND түйреуіштерінің біріне қосыңыз. Жалын сенсорының цифрлық шығыс түйреуіші (DO) Arduino-дағы цифрлық 2 түйреуішіне қосылуы керек, оны кодта FLAME деп атаймыз. Соңында, дыбыстық сигнал бергіш сияқты дабыл құрылғысын Arduino-дағы цифрлық 8 түйреуішіне қосыңыз, оны ALARM деп атаймыз.
Барлық қосылымдардың сенімді екеніне көз жеткізіңіз, себебі бос қосылымдар тұрақсыз жұмысқа әкелуі мүмкін. Аналогтық шығысты пайдаланғыңыз келсе, аналогтық шығыс түйреуішін (AO) Arduino-дағы аналогтық түйреуішке, мысалы A0-ге қосыңыз, бірақ бұл негізгі функционалдылық үшін міндетті емес. Бейнеде баламалы қосылым әдістері де талқыланады (бейнеде 02:30).
Код мысалдары және түсіндірме
Келесі код үзіндісі жалын сенсорын инициализациялайды және сериялық мониторды орнатады:
#define FLAME 2 // сенсордың DO түйреуішін осы түйреуішке қосыңыз
#define ALARM 8 // Дабыл үшін 8 түйреуіш
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT); // FLAME кіріс түйреуішін анықтау
pinMode(ALARM, OUTPUT); // ALARM шығыс түйреуішін анықтау
}
Мұнда біз жалын сенсоры мен дабыл үшін түйреуіштерді анықтаймыз және 9600 бод жылдамдығында сериялық байланысты инициализациялаймыз. Бұл қателерді жою үшін сериялық мониторға хабарламаларды басып шығаруға мүмкіндік береді.
Әрі қарай, негізгі циклде жалын сенсорын оқимыз:
void loop() {
int fire = digitalRead(FLAME); // FLAME сенсорын оқу
if(fire == HIGH) {
digitalWrite(ALARM, HIGH); // дыбыстық сигнал бергішті қосу
Serial.println("Fire! Fire!");
} else {
digitalWrite(ALARM, LOW); // дыбыстық сигнал бергішті өшіру
Serial.println("Peace");
}
delay(200);
}
Кодтың бұл бөлігі жалын сенсорының күйін тексереді. Егер ол жалынды анықтаса (HIGH), дабылды іске қосады және сериялық мониторға "Fire! Fire!" деп басып шығарады. Егер жалын болмаса (LOW), дабылды өшіреді және "Peace" деп басып шығарады. Цикл 200 миллисекундтық кідірісті қамтиды, оны анықтау сезімталдығын өзгерту үшін реттеуге болады.
Демонстрация / Не күтуге болады
Жүйе қосылған кезде, сериялық монитор "Robojax.com Fire Module Test" дегенді, содан кейін жалын анықталғанға дейін "Peace" дегенді көрсетеді. Жалын анықталғаннан кейін, дыбыстық сигнал бергіш дыбыс шығарады және жарықдиод жанып, өрт жағдайын көрсетеді. Сенсордың сезімталдығын модульдегі потенциометрді реттеу арқылы тексеруге болады. Қашықтан басқару пульттерінің инфрақызыл сигналдары сияқты жалған оң нәтижелерге абай болыңыз (бейнеде 04:15).
Бейне уақыт белгілері
- 00:00 - Жалын сенсоры модуліне кіріспе
- 02:30 - Қосылым нұсқаулары
- 04:15 - Жалынды анықтау демонстрациясы
/*
* This is code for a Flame Sensor module for Arduino.
* Watch the video https://youtu.be/OZkZIP3KlHQ
* Other Arduino libraries and videos https://robojax.com
* *
Flame Sensor module for Arduino
Written by Ahmad Shamshiri for Robojax.com
on January 18, 2018 at 22:21 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*
*/
/*
What does it do?
When the infrared diode sees the flame, it sends the digital output DO to
also, the level of flame is represented with the analog output.
*/
// 4 Infrared Obstacle code for Robojax.com
#define FLAME 2 // connect DO pin of sensor to this pin
#define ALARM 8 // pin 8 for Alarm
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT);//define FLAME input pin
pinMode(ALARM, OUTPUT);//define ALARM output pin
// Flame sensor code for Robojax.com
}
void loop() {
// Flame sensor code for Robojax.com
int fire = digitalRead(FLAME);// read FLAME sensor
if( fire == HIGH)
{
digitalWrite(ALARM,HIGH);// set the buzzer ON
Serial.println("Fire! Fire!");
}else{
digitalWrite(ALARM,LOW); // Set the buzzer OFF
Serial.println("Peace");
// Flame sensor code for Robojax.com
}
delay(200);
}
Ресурстар мен сілтемелер
-
СыртқыLM393 datasheet (PDF)ti.com
Файлдар📁
Файлдар жоқ.