Arduino, Ứng Dụng Arduino

Thùng rác tự động hướng dẫn tự chế sử dụng Arduino

thung-rac-tu-dong

Ngày nay các loại thùng rác tự động ra đời càng nhiều, đặc biệt có các loại thùng rác thông minh của các hãng nổi tiếng như Xiaomi với các tính năng và mẫu mã vô cùng. Từ đó espitek cũng tự chế thùng rác tự động cho riêng mình, chỉ với chiếc thùng rác thông thường và một ít linh kiện chúng ta sẽ có ngay một chiếc thùng rác tự mở cho riêng mình.

thùng rác tự động
Bỏ qua các rắc rối với chiếc thùng rác

Bài viết bạn nên đọc:

Nguyên lý hoạt động của thùng rác tự đóng mở

Cấu tạo thùng rác
Chiếc thùng rác thông thường

Một chiếc thùng rác thông thường chúng ta hay sử dụng là sẽ có một bàn đạp dưới chân để mở nắp. Chúng ta sẽ sử dụng loại thùng rác này để cùng tự làm một chiếc thùng rác thông minh nhé.

Thay thế cho việc phải đạp chân lên thùng rác ta sẽ dùng một servo để thực hiện việc này, tận dụng việc servo có thể quay với các góc tùy chỉnh ta sẽ cho nó quay theo đúng góc mà có thể kéo bàn đạp của thùng rác xuống dưới. Liên kết từ đỉnh của servo đến bàn đạp ta sử dụng một sợi dây, sau khi cảm biến tiệm cận phát hiện thì sẽ kích servo quay 1 góc (bàn đạp được kéo xuống giúp nắp thùng rác tự mở ra), sau khoảng thời gian 5s thì sẽ quay servo về góc ban đầu (nắp luôn có xu hướng đóng nên khi được trả về trạng thái cũ thì lập tức nắp thùng rác sẽ tự động đóng lại).

 

Nguyên lý servo
Các góc quay của servo

Để kết nối giữa Arduino và Servo ta kết nối theo sơ đồ sau:

arduino kết nối servo
Kết nối giữa arduino và servo

Tiếp theo để tự động phát hiện ra có vật hay người đến gần thì ta sẽ sử dụng cảm biến tiệm cận SRF05.

Kết nối srf05 và arduino
Cách kết nối cảm biến tiệm cận và arduino

Linh kiện sử dụng tự chế thùng rác tự mở

  • Arduino nano
  • Servo
  • Srf05
  • Nguồn 5V (sử dụng cục sạc điện thoại)
  • Súng bắn keo để cố định các thành phần lên trên thùng rác sao cho gọn nhất

Lập trình cho thùng rác tự động

#include <Servo.h>
#define TRIG_PIN_SS 12
#define ECHO_PIN_SS 11
#define TIME_OUT 5000
#define Servo_SS 3

Servo myservoSS;       
float GetDistanceSS()
{
  long durationSS, distanceCmSS;
   
  digitalWrite(TRIG_PIN_SS, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN_SS, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN_SS, LOW);
  
  durationSS = pulseIn(ECHO_PIN_SS, HIGH, TIME_OUT);
 
  // convert to distance
  distanceCmSS = durationSS / 29.1 / 2;
  
  return distanceCmSS;
}

void setup() {  
  //Serial.begin(9600);
  myservoSS.attach(Servo_SS); 
  pinMode(TRIG_PIN_SS, OUTPUT);
  pinMode(ECHO_PIN_SS, INPUT);
  myservoSS.write(0);
}
 
void loop() {
  long distanceSS = GetDistanceSS();
  
  if (distanceSS >= 20)
  {
    myservoSS.write(90);
  }
  else
  {   
    myservoSS.write(0);
  }
  delay(5000);
}

Giải thích code

Cách chế tạo máy bay điều khiển từ xa

Ta khai báo các biến và include thư viện Servo như bình thường, tiếp theo sẽ viết một hàm có chức năng tính toán khoảng cách mà cảm biến tiệm cận trả về.

float GetDistanceSS()
{
  long durationSS, distanceCmSS;
   
  digitalWrite(TRIG_PIN_SS, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN_SS, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN_SS, LOW);
  
  durationSS = pulseIn(ECHO_PIN_SS, HIGH, TIME_OUT);
 
  // convert to distance
  distanceCmSS = durationSS / 29.1 / 2;
  
  return distanceCmSS;
}

Trong vòng lặp ta sẽ tiến hành nhận giá trị khoảng cách mà hàm trên trả về rồi sau đó tiến hành so sánh nếu < 20cm thì sẽ tiến hành cho servo quay 1 góc 90 độ (góc này các bạn có thể để sao cho phù hợp với ứng dụng của mình để servo có thể quay được góc mà làm cho bàn đạp của thùng rác có thể bị kéo xuống vừa đủ). Sau đó chờ 5s thì sẽ trả servo về góc 0 độ (góc này cũng có thể tùy chỉnh cho phù hợp để thùng rác tự đóng nắp lại).

void loop() {
  long distanceSS = GetDistanceSS();
  
  if (distanceSS >= 20)
  {
    myservoSS.write(90);
  }
  else
  {   
    myservoSS.write(0);
  }
  delay(5000);
}

Xem video hoạt động của thùng rác tự đóng mở

Chúc các bạn thành công!

 

 

 

Được gắn thẻ , ,

Để lại bình luận nào !

avatar
  Đăng ký  
Tắt thông báo