KHAI BÁO KHAI XUẤT CỔNG

Một phần của tài liệu Đề tài: Nghiên cứu thiết kế hệ thống tưới tự động trong nhà trồng thông minh (Trang 34 - 37)

KHAI XUẤT CỔNG RA VÒNG LẶP CHÍNH CÀI ĐẶT PIN 2 PIN 1

Nếu nút được nhấn, động cơ đảo chiều quay, nếu không nó sẽ chạy theo hướng ngược lại.Việcđảo chiều động cơ nàyđược thực hiện bằng chân pin switch. Vì vậy, nếu các nút không được nhấn, đây sẽ quay theo chiều thuận, nếu không nó sẽ quay theo chiều nghich

Tốc độ của động cơ và chức năng đảo chiều sẽ được chuyển tới một chức năng gọi là 'setMotor' rằng sẽ thiết lập các chân thích hợp trên chip điều khiển để điều khiển động cơ.

void setMotor(int speed, boolean reverse) {

analogWrite(enablePin, speed); digitalWrite(in1Pin, ! reverse); digitalWrite(in2Pin, reverse); }

void setMotor2(int speed2,boolean reverse) {

analogWrite(enablePin2, speed2); digitalWrite(in3Pin,! reverse); digitalWrite(in4Pin, reverse); }

Đâu tiên, tốc độ được dùng một thiết lập bằng cách sử dụnganalogWrite cho phép pinđược chọn làm việc. Việc cho phép pin của L293D có thểđiều chỉnh hoặc tắt bất kể các chân in1, in2, in3 và in4 của L293Dkhi được thiết lập để.

Để điều khiển hướng của động cơ, các chân in1 và in2,in3 và in4 phải được thiết lập các giá trị trái ngược nhau

Ví dụ.

Nếu in1 ở mức cao và in2 ở mức th ấp, động cơ sẽ quay theo m ột chiều , nếu trên in1 ở mức thấp và in2 ở mức cao thì sau đó động cơ sẽ quay theo hướng ngược lại.

Các '!' lệnh có nghĩa là 'không'. Vì vậy, các lệnh digitalWrite đầu tiên cho in1 đặt nó giá vào bất cứ điều gì ngược lại với các trị của 'đảo ngược', do đó, nếu ngược lại là HIGH nó đặt nó để LOW và ngược lại.

DigitalWrite tiếp theo. Điều này có nghĩa rằng nó sẽ luôn luôn là đối lập với các mức giá trị ở in1.

3.3.2 Lập trình đặt ngưỡng cảnh báo và điều chỉnh động cơ theo hướng cảnh báo

Ở đây nhóm thiết kế và sử dụng 3 đèn led mầu

+ Nếu ở nhiệt độ thấp thì led mầu trắng sáng và đồng thời cho một động cơ quay + Nếu ở nhiệt độ thấp thì led mầu trắng và xanh sáng và đồng thời cho hai động cơ quay

+ Nếu ở nhiệt độ thấp thì cả 3 đèn led sáng và đồng thời cho ba động cơ quay =>động cơ quay sẽ tượng trưng cho tưới việc

Giá trị nhiệt độđượcđọcở thang đo độ .C sẽđược lấy và đặt ngưỡng cảnh báo và giám sát cho hệthống .

if (temperatureC < 21) lightLED(whitePin);

if (temperatureC >= 21 && temperatureC <= 24) lightLED(greenPin); if (temperatureC > 24) lightLED(redPin);

void lightLED(byte whatLED){

digitalWrite(whitePin, LOW); //white led is off digitalWrite(redPin, LOW); //red led is off digitalWrite(greenPin, LOW); //green led is off

Ởđây nhiệt độ sẽđược phân chia thành các mức khác nhau theo nhu cầu của người sữ dụng để bật các led tương ứng với các đặc trưng phù hợp

3.4 Lập trình sử dụng modul Arduino datalogger và truyền ra cổng Serial

3.4.1 Lập trình sử dụng đồng hồ đếm thời gian thực DS1307 trên shieul datalogger datalogger

Các RTC (read time clock) sẽ được sử dụng là DS1307 . Đây là IC có chi phí thấp và nó cóthểsử dụng trong một khoảng thời gian dài nhờ một quả Pin nhỏ

Hình 3.4 Lưu đồ thuật toán cho DS1307

Vòng lặp chính

Trong vòng lặpnày ,có các phần chính như sau

Một phần của tài liệu Đề tài: Nghiên cứu thiết kế hệ thống tưới tự động trong nhà trồng thông minh (Trang 34 - 37)