L¿p trình Arduino cho cÁm bi¿n DS18B20:

Một phần của tài liệu L¾P TRÌNH ĐIÀU KHIÂN ARDUINO CHO NG£äI MâI BÀT ĐÄU V2 (Trang 40 - 46)

TrƠóc khi bÁt tay vào l¿p trình ta cÅn phÁi tÁi hai thƠ viịn sau v add vo thƠ vißn cho arduino IDE:

ThƠ viịn th 1: OneWire.h

http://www.mediafire.com/file/a9s0ww0l10dl25s/2689_123450-1468426301-0- onewire.zip

ThƠ viịn th 2: DallasTemperature.h

http://www.mediafire.com/file/4r9ksj6z455d55j/2664_882450-1468426343-0- arduino-temperature-control-library-master.zip

Ta bắt tay vào lập trình sau khi add xong 2 th° vián trên:

//Include thÔ vin

#include <OneWire.h>

#include <DallasTemperature.h> // Chân nối vßi Arduino

#define ONE_WIRE_BUS 2 //Thit t thƠ vin onewire

OneWire oneWire(ONE_WIRE_BUS);

//Mỡnh dựng thÔ viện DallasTemperature để đác cho nhanh

DallasTemperature sensors(&oneWire); void setup(void) { Serial.begin(9600); sensors.begin(); } void loop(void)

{

sensors.requestTemperatures(); Serial.print("Nhiet do");

Serial.println(sensors.getTempCByIndex(0)); // vì 1 ic nên dùng 0 //chá 1 s rồi đác để b¿n kiệp thÃy sự thay đổi

delay(1000); }

V¿y là ta l¿p trình xong các b¿n m cãng Serial port xem k¿t quÁ nhé.

12.CÀM BI¾N CHUYÂN ĐàNG PIR.

PIR là chữ viÁt tắt cÿa Passive InfraRed sensor (PIR sensor), tāc là bá cÁm biÁn thụ đáng dùng nguồn kích thích là tia hồng ngo¿i. Tia hồng ngo¿i (IR) chính là các tia nhiát phát ra từ các vật thá nóng. Trong các c¡ thá sáng, trong chúng ta ln có thân nhiát (thơng th°ßng là á 37 đá C), và từ c¡ thá chúng ta s¿ ln phát ra các tia nhiát, hay cịn gọi là các tia hồng ngo¿i, ng°ßi ta s¿ dùng mát tÁ bào đián

đá chuyán đổi tia nhiát ra d¿ng tín hiáu đián và nhß đó mà có thá làm ra cÁm biÁn phát hián các vật thá nóng đang chun đáng. CÁm biÁn này gọi là thụđáng vì nó khơng dùng nguồn nhiát tự phát (làm nguồn tích cực, hay chÿ đáng) mà chỉ phụ

thuác vào các nguồn tha nhiát, đó là thân nhiát cÿa các thực thá khác, nh° con ng°ßi, con vật…

Trên đây là đ¿u dò PIR, lo¿i bên trong gắn 2 cÁm biÁn tia nhiát, nó có 3 chân ra, mát chân nái masse, mát chân nái với nguồn volt DC, māc áp làm viác có thá từ3 đÁn 15V.

Góc dị lớn. Đá tăng đá nhậy cho đ¿u dị, B¿n dùng kính Fresnel, nó đ°ợc thiÁt kÁ cho lo¿i đ¿u có 2 cÁm biÁn, góc dị lớn, có tác dụng ngăn tia tử ngo¿i.

Nguyên lý lm viịc ca loi u dũ PIR nhƠ hỡnh sau:

Các nguồn nhiát (với ng°ßi và con vật là nguồn thân nhiát) đßu phát ra tia hồng ngo¿i,

qua kính Fresnel, qua kích lọc lÃy tia hồng ngo¿i, nó đ°ợc cho tiêu tụ trên 2 cÁm biÁn

hồng ngo¿i gắn trong đ¿u dò, và t¿o ra đián áp đ°ợc khuÁch đ¿i với transistor FET. Khi có mát vật nóng đi ngang qua, từ 2 cÁm biÁn này s¿ cho xuÃt hián 2 tín hiáu và tín hiáu

này s¿ đ°ợc khuÁch đ¿i đá có biên đá đÿ cao và đ°a vào m¿ch so áp đá tác đáng vào mát thiÁt bị đißu khián hay báo đáng.

 GND –kÁt nái vớimặt đÃt

 OUT –kÁt náiđÁn mát chân digital cÿa Arduino

 5V –kÁt náivới 5V

Linh kißn thí nghißm:

 1x PIR Motion Sensor

 1x Arduino UNO (hoặc bÃt kỳ)

 1x LED bÃt kỳ hoặc loa.

L¿p trình điÁukhiÃn:

int ledPin = 13; // chán chân 13 báo hiệu LED int inputPin = 2; // chán ngõ tín hiệu vào cho PIR int pirState = LOW; // Bắt đ¿u vßi khơng có báo đáng int val = 0;

int pinSpeaker = 10; //chán chân cho chng khi có đát nhập void setup() { pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); pinMode(pinSpeaker, OUTPUT); Serial.begin(9600); } void loop() {

if (val == HIGH) // nÁu giá trß ở mÿc cao.(1) {

digitalWrite(ledPin, HIGH); // LED On

playTone(300, 160); // thái gian chuông kêu delay(150); if (pirState == LOW) { Serial.println("Motion detected!"); pirState = HIGH; } } else { digitalWrite(ledPin, LOW); playTone(0, 0); delay(300); if (pirState == HIGH) { Serial.println("Motion ended!"); pirState = LOW; } } }

void playTone(long duration, int freq) {

duration *= 1000;

int period = (1.0 / freq) * 1000000; long elapsed_time = 0;

while (elapsed_time < duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }

13.CÀM BI¾N KHỒNG CÁCH ( SRF05). PHÄN NÀY Bâ XUNG

Đái với robot, khi á chÁ đá tự đáng, nó phÁi lÃy thơng tin cÿa mơi tr°ßng xung quanh nh°: khoÁng cách, nhiát đá, ánh sáng ... Và tiÁn hành phân tích các dữ liáu đó, ci cùng ra qut định phù hợp. Ví dụ nh° robot tự tìm đ°ßng đi thì nó phÁi tính đ°ợc xem phía tr°ớc có vật cÁn hay khơng, và tiÁn hành đi tới hay r¿ sang mát h°ớng khác. Bài viÁt này s¿ h°ớng dẫn b¿n đọc hiáu và sử dụng đ°ợc mát trong những cÁm biÁn khoÁng cách phổ biÁn - SRF05.

Một phần của tài liệu L¾P TRÌNH ĐIÀU KHIÂN ARDUINO CHO NG£äI MâI BÀT ĐÄU V2 (Trang 40 - 46)

Tải bản đầy đủ (PDF)

(56 trang)