Khóa học lập trình Arduino – Lấy tín hiệu số và tương tự từ cảm biến

Khóa học lập trình Arduino là khóa học trong dự án IoT thuộc chương trình của Hour Of Code Vietnam xây dựng dành cho học sinh trung học cơ sở và trung học phổ thông.

Mục đích của bài này là giúp các bạn hiểu cách lấy tín hiệu tương tự (Analog) và tín hiệu số (digital) từ cảm biến. Cảm biến được sử dụng trong ví dụ này là cảm biến đo độ ẩm đất.

1. Dụng cụ thực hành:

Dụng cụ thực hành bao gồm

  • 1 cảm biến độ ẩm đất,
  • 1 board Arduino Uno
  • 1 đèn led

2. Cảm biến đo độ ẩm đất:

Loại cảm biến này được sử dụng để đo độ ẩm đất, được dùng trong việc tưới tiêu cho nông nghiệp, cây cảnh,…. Cảm biến có 4 chân, gồm 2 chân cấp nguồn VCC và GND, 2 chân AO và DO. Chân VCC của cảm biến đo độ ẩm đất được nối với chân 5V trên board Arduino Uno. Chân AO là viết tắt của Analog Output và chân DO là viết tắt của Digital Output.

Khóa học Arduino - hourofcode vietnam
Cảm biến đo độ ẩm đất

3. Nối dây:

Chân VCC nối nguồn 5V, chân GND nối chân GND trên board Arduino, chân AO nối chân, chân DO nối chân số 4, led nối chân 12.

4. Lập trình

Để lấy được tín hiệu digital, trong phần set up () người lập trình cần khai báo pinMode cho chân là INPUT, chân Analog không cần khai báo, phần mềm sẽ tự hiểu.

5. Phân tích mã code

Sau đây là mã code của chương trình:

// Khóa học Arduino – Chương trình đo độ ẩm đất với loại cảm biến đo độ ẩm đất được bán thông dụng ở Việt Nam

// Hướng dẫn: Hour Of Code Việt Nam

// Cách nối chân:

// AO nối với A1, DO nối với chân 4, GND nối nguồn âm, VCC nối nguồn dương.

#define Analog 1 // dùng chân A1 trên board Arduino để đọc tín hiệu Analog

#define Digital 4 //Dùng chân digital số 4 để đọc tín hiệu digital

#define Led 12 //chân 12 làm chân điều khiển led

int giatriAnalog, giatriDigital; //Kiểu biến của giatriAnalog và giatriDigital là kiểu int (số nguyên)

void setup()

{

Serial.begin(9600); // thiết lập tốc độ truyền dữ liệu

pinMode(Digital,INPUT); //xác định kiều chân 4 là chân vào (INPUT)

pinMode(Led,OUTPUT); //Xác định kiểu chân led (chân 12) là chân ra (OUTPUT)

}

void loop()

{

giatriAnalog=analogRead(Analog); //Lấy giá trị chân Analog (chân A1) bằng hàm analogRead()

giatriDigital=digitalRead(Digital); //Lấy giá trị chân digital bằng hàm digitalRead()

Serial.print(“Gia tri Analog: “); //In ra màn hình máy tính hàng chữ: Gia tri Analog

Serial.println(giatriAnalog); //In ra màn hình giá trị của biến giatriAnalog sau đó xuống dòng

Serial.print(“Gia tri digital: “); //In ra màn hình máy tính dòng chữ: Gia tri digital

Serial.println(giatriDigital); // In ra màn hình giá trị của biến giatriDigital sau đó xuống dòng

delay(1000); //chờ trong 1s

if (giatriAnalog>500) //nếu giá trị đọc được của biến giatriAnalog lớn hơn 500

{

digitalWrite(Led,HIGH); //Ra lệnh cho led sáng

delay(1000); //chờ 1s

}

else if(giatriAnalog<=500) // nếu giá trị đọc được của biến giatriAnalog nhỏ hơn hoặc bằng 500

{

digitalWrite(Led,LOW);//Ra lệnh cho led tắt

delay(1000); //Chờ 1 giây

}

}

Trên đây là bài hướng dẫn cách lấy tín hiệu tương tự và tín hiệu số từ cảm biến trong chuối bài thực hành của Khóa học Arduino cơ bản dành cho người mới bắt đầu. Chúc các bạn sẽ có một sản phẩm như ý

Hour Of Code Việt Nam

Dành cho bạn