Code điều khiển của Arduino NANO

Một phần của tài liệu Dây chuyền bảo quản và xuất gạo (sơ chế bảo quản sau khi thu hoạch) (Trang 107 - 110)

CHƯƠNG 5 : THI CƠNG THÍ NGHIỆM MƠ HÌNH

1. Code điều khiển

1.3. Code điều khiển của Arduino NANO

#include <Led4digit74HC595.h> #define cua_14_dong 5

#define cua_14_mo 4 #define cua_15_dong 3

#define cua_15_mo 2 //Khai báo các chân của Arduino #define bao_can_14 7

#define bao_can_15 8 int nut_mo_cua_xa_14 = 9; int nut_mo_cua_xa_15 = 10;

Led4digit74HC595 myLedDisplay(A3, A4, A5); // Khai báo thư viện LED 7 đoạn để hiể thị và các pin Pins:(SCLK, RCLK, DIO)

#include <HX711_ADC.h> //Khai báo thư viện của module đọc dữ liệu của loadcell

HX711_ADC LoadCell(A0, A1); //khai báo các chân của loadcell void setup() {

pinMode(bao_can_14, INPUT); //đặt các ngõ ra và ngõ vào của Arduino pinMode(cua_14_mo, OUTPUT); pinMode(cua_14_dong, OUTPUT); pinMode(cua_15_mo, OUTPUT); pinMode(cua_15_dong, OUTPUT); pinMode(nut_mo_cua_xa_14, INPUT_PULLUP); pinMode(nut_mo_cua_xa_15, INPUT_PULLUP);

LoadCell.begin(); //Chương trình chạy loadcell bắt đầu

LoadCell.start(2000); //thời gian để loadcell ổn định sau khi khởi động có thể thêm vào vài mili giây để hệ ổn định hơn

LoadCell.setCalFactor(999.0); //hệ số của việc cablib cân ban đầu chi tiết của code nằm trong thư viện loadcell của arduino

99 Serial.begin(9600);

myLedDisplay.setDecimalPoint(0); //khơi động hệ hexa để led hiện thị tín hiệu }

void loop() {

LoadCell.update();

int buttonStatus_14 = digitalRead(nut_mo_cua_xa_14); // đọc trạng thái các nút nhấn

int buttonStatus_15 = digitalRead(nut_mo_cua_xa_15); //đặt biến V để loadcell bắt đầu đọc dữ liệu từ cảm biến float V = LoadCell.getData();

Serial.println(V);

if (V>=500 && buttonStatus_14 == LOW) //Nếu mà khối lượng lớn hơn 500g và nút cửa 14 đang được nhấn thì

{

digitalWrite(cua_14_dong, HIGH); //Cửa 14 sẽ đóng lại digitalWrite(cua_14_mo,LOW);

}

else if (V<1 && buttonStatus_14 == LOW) //Nếu mà khối lượng nhỏ hơn 1g và nút cửa 14 đang được nhấn thì

{

delay(5000); //delay 5s để cửa xả 17 đóng lại digitalWrite(cua_14_dong, LOW); //cửa 14 sẽ mở ra

digitalWrite(cua_14_mo,HIGH); }

else if (digitalRead(bao_can_14)==0 && V<1)

//khi cảm biến báo cạn ở mức 0 và khối lượng nhỏ hơn 1 {

digitalWrite(cua_14_dong, HIGH); //cửa 14 đóng digitalWrite(cua_14_mo,LOW);

100 }

if (V>=500 && buttonStatus_15 == LOW) {

digitalWrite(cua_15_dong, HIGH); digitalWrite(cua_15_mo,LOW); }

else if (V<1 && buttonStatus_15 == LOW) { digitalWrite(cua_15_dong, LOW);

digitalWrite(cua_15_mo,HIGH); }

else if (digitalRead(bao_can_15)==0 && V<1) { digitalWrite(cua_15_dong, HIGH);

digitalWrite(cua_15_mo,LOW); }

myLedDisplay.loopShow(); //led sẽ liên tục cập nhật tín hiệu myLedDisplay.setNumber(V); //led sẽ hiện thị số của cân

101

Một phần của tài liệu Dây chuyền bảo quản và xuất gạo (sơ chế bảo quản sau khi thu hoạch) (Trang 107 - 110)

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

(121 trang)