Тәжірибелік жұмыс №9. Arduino-ға PIR қозғалыс тетігін қосу
Пироэлектрлік қозғалыс тетігін оқу үшін бағдарламаны жазамыз.
Микроконтроллерге PIR тетігін қосу қарапайым. Тетік сандық дабылды береді,
Arduino пинынан HIGH (қозғалыс анықталған) немесе LOW (қозғалыс жоқ)
мәндерін оқу.
Сонымен қатар, Н позициясына коннекторды орнатамыз.
Тетікке 5 вольтті қуат, жер GND қосылады. Содан кейін Arduino сандық
пинімен тетіктің дабылдық пины қосылады. Осы мысалда пин 2
пайдаланылған.
36
Сур.15. Arduino-ға PIR қозғалыс тетігін қосу сызбасы
Бағдарлама қарапайым. Ол 2 пинның күйін қадағалайды. Атап айтқанда:
ондағы дабылды: LOW немесе HIGH. Сонымен қатар, пиннің күйі ауысқан
кезде, хабарлама пайда болады: қозғалыс бар немесе қозғалыс жоқ.
Скетч:
int ledPin = 13; // жарық диоды үшін пинді жүктейміз
int inputPin = 2; // пироэлектрлік қозғалыс тетігінен дабылды алу үшін пинді
жүктейміз
int pirState = LOW; // қозғалыстың жоқтығын болжай отырып, бағдарламаның
жұмысын бастаймыз
int val = 0; // пиннің күйін оқитын айнымалы
void setup() {
pinMode(ledPin, OUTPUT); // жарық диодын OUTPUT ретінде хабарлаймыз
pinMode(inputPin, INPUT); // тетікті INPUT түрінде хабарлаймыз
Serial.begin(9600);
}
void loop(){
val = digitalRead(inputPin); // тетіктен мәнді оқимыз
if (val == HIGH) { // есептелген мәннің HIGH сәйкес келетіндігін тексереміз
digitalWrite(ledPin, HIGH); // жарық диодын қосамыз
if (pirState == LOW) {
// жарық диоды қосылды
Serial.println("Motion detected!");
// сериялық мониторға күйі емес, жасалған ӛзгерістің мәні шығады
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // жарық диодын ӛшіреміз
if (pirState == HIGH){
// жарық диоды ӛшті
Serial.println("Motion ended!");
// сериялық мониторға күйі емес, жасалған ӛзгерістің мәні шығады
pirState = LOW;
}
}
}
37
Ескерту.Пироэлектр тетігімен жұмыс жасау үшін микроконтроллерінің
әрқашан қажет емес екендігін ұмытпаңыз. Кейде істі қарапайым релемен
бітіруге болады.
Өз бетінше орындауға арналған тапсырмалар:
1. PIR қозғалыс тетігін пайдаланып қозғалыс анықталғанда LCD-
дисплейге хабарлама шығаратын скетч құрыңыздар.
Қашықтықты ӛлшеудің ультрадыбыстық тетігі (HC-SR04)
Сур.16. Қашықтықты өлшеудің ультрадыбыстық тетігі
Ерекшеліктері
Қуаттың кернеуі: 5V DC
Тыныштықтағы тоғы: <2мА
Тиімді бұрыш: <15°
Қашықтықты ӛлшеу ауқымы: 2–400 см
Кеңейтілімдігі: 0,3 см
Сенсор жалғағышында 4 қарапайым пин бар, бұл оны дәнекерлемейтін
платаға жай ғана суға салуға, макет платасына дәнекерлеуге немесе қосу үшін
қарапайым пиндерді (ана типті) пайдалануға мүмкіндік береді.
Сур.17. Қашықтықты өлшеудің ультрадыбыстық тетігін Arduino-ға жалғау
сызбасы
Тетікті дәнекерсіз макетті платаға Arduino контроллерінен +5В және GND
және контроллердің сандық пиндерінің шығарушыларына қосуға болады.
Аrduino-ның тетікпен жұмысы үшін Ultrasonic дайын кітапхансын
пайдаланамыз. Кітапхана пайдалануға жеңіл және Arduino-лық фреймворк
қызметтерін қолдана отырып жазылған.
38
Тәжірибелік жұмыс №10. Объектіге дейінгі қашықтықты (сантиметрмен)
монитор портына шығару
- Ultrasonic2serial:
#include "Ultrasonic.h"
// sensor connected to:
// Trig - 12, Echo - 13
Ultrasonic ultrasonic(12, 13);
void setup()
{
Serial.begin(9600); // com-портының 9600 айналымының жылдамдығын орнатамыз
}
void loop()
{
float dist_cm = ultrasonic.Ranging(CM); // арақашықтықты анықтау
Serial.println(dist_cm); // Консольға арақашықтықты шығару
delay(100); // кідіріс уақыты
}
Ескерту. Мониторға шығару үлгісі:
17.00
19.00
20.00
20.00
20.00
20.00
20.00
20.00
18.00
21.00
2599.00
2599.00
2599.00
2599.00
2599.00
2599.00
- бұл мысалда сенсор алдында қол жүргізілді.
Соңғы мәндері сенсордың объектіге дейінгі қашықтықты анықтау
қабілетсіздігін кӛрсетеді.
Өз бетінше орындауға арналған тапсырмалар:
1. Қашықтықты анықтау тетігін Arduino-ға қосып, қашықтық туралы ақпарат
компьютердің портына жӛнелтіп отыратын және объект кемінде 30 см
қашықтықта болғанда 13 пинге қосылған жарықдиодты жағатын скетчті
құрыңыздар.
2.Арақашықтық анықтау тетігі анықтаған мән сервожетектің бұрылу бұрышына
айналатын скетчті құрыңыздар.
39
Түс тетігі (TCS3200)
Осы тетікпен кӛрінетін түсті барлық диапазонында анықтауға және
ӛлшеуге болады. Тетік RGB TCS3200 сенсорынан және 4 ақ жарықдиодынан
тұратын түс детекторы болып табылады.
Сур.18. Түс тетігі
TCS3200 тетігінде фотодетекторларының массиві бар, олардың
әрқайсысының қызыл, жасыл, кӛк сүзгісі бар немесе мүлдем сүзгісіз (мӛлдір).
Әр түстің сүзгісі түстердің араласып кетуін болдырмау үшін барлық массив
бойынша біркелкі бӛлінген. Ішінде генератор бар, ол тікбұрышты шығу
сигналын шығарады, оның жиілігі таңдалған түстің қарқындылығына
мӛлшерлес келеді.
Сипаттамасы:
•
Жоғары кеңейтілімі бар жарық қарқынының жиілікке түрленуі
•
Негізгі Чип: TCS3200D
•
Шығу жиілік диапазоны 10 кГц ~ 12 кГц сіңіргіштігі 50%
•
Жұмыс кернеуі: + 3 В ~ + 5 В
•
Жұмыс тоғы: 1.4 мА
•
Анықтаудың ең дұрыс қашықтығы: 1 см
•
Интерфейс: цифрлық TTL
•
Мӛлшері (ҰхЕхБ): 28,4 x 28,4 x 8 мм
•
Салмағы: 3 гр
Сур.19. Түс тетігінің Arduino-ға қосылу сызбасы
Қосу жӛніндегі нұсқаулық
VCC — 5V
GND — GND
S0 — D3
S1 — D4
S2 — D5
S3 — D6
OUT — D2
40
Ескерту:
1. Тестілеу үдерісінде тұрақты жарық кӛзін сақтаңыз. Жарық кӛзін
ауыстыруға немесе ӛзгертуге болмайды. Жабық бӛлмеде нәтиже жақсы болады.
Жарық кӛзін әрбір ӛзгерту кезінде ақ түстің балансына түзету жүргізу керек.
Модуль қоршаған ортаның әсерінен және жарық айқындығының ӛзгеруінен
түсті теріс немесе қате анықтауы мүмкін
Достарыңызбен бөлісу: |