Thiết bị khóa đơn giản và rẻ tiền với Arduino

I. Chuẩn bị

II. KẾT NỐI

Chắc hẳn các bạn đã biết về hàm analogRead. Đó chính là hàm đọc giá trị điện thế và chuyển nó thành các mức dữ liệu từ 0 => 1023 (tượng chưng cho 0V và 5V). Như vậy ta sẽ dùng điện trở để đo giá trị điện áp đi qua điện trở đó, mỗi điện trở có 1 trị số khác nhau vì thế giá trị mà hàm analogread đọc được cũng sẽ khác nhau

Theo sơ đồ mình mô phỏng các bạn có thể thấy 2 led xanh và đỏ là 2 led báo trạng thái của thiết bị (các bạn có thể xem thêm ở phần code bên dưới), usb hỏng ta sẽ tận dụng tháo ra, hàn 1 con điện trở vào giữa 2 chân. Tương tự như vậy ở giắc usb cái các bạn đấu dây tương ứng 1 về +5V, 1 về A0 của arduino. Mục đích là để đọc tín hiệu analog của điện trở mà ta hàn vào usb.

III. CODE

int USBpin = A0;  // Chân A0 sẽ được kết nối tới điện trở gắn trên usb
void setup(){
    pinMode(2, OUTPUT); //led đỏ
    pinMode(3, OUTPUT); //led xanh
    Serial.begin(9600);
}
void loop(){
    Serial.println(analogRead(USBpin));
//Đèn xanh sáng
    if(analogRead(USBpin) == 1023 ){   //giá trị analog của điện trở
        digitalWrite(2, HIGH);
         }
         else
        {
        digitalWrite(2, LOW);
        }

//đèn đỏ sáng
    if(analogRead(USBpin) == 0 ){    
        digitalWrite(3, HIGH);
        }   
        else
        {
        digitalWrite(3, LOW);
   
 delay(5000); //giữ chậm 5 giây để tránh bị bẻ khóa bằng biến trở
} 

 

Đoạn code rất đơn giản, bạn chỉ cần test trước xem giá trị analog mà nó đọc được từ điện trở của bạn là bao nhiêu rồi thay vào vị trí số 1023 trên đoan code trên là xong.

Như vậy mỗi khi bạn cắm usb của mình vào, thực chất là cắm điện trở của mình vào chân A0, arduino sẽ đọc tín hiệu Analog tại đó, nếu trùng thì sẽ cho đèn xanh bật, đèn đỏ tắt. Các bạn có thể dựa vào đó để làm thiết bị đóng mở cửa đơn giản và cực kỳ khó hack. Nhiều bạn nghĩ rằng, nếu tôi đặt 1 biến trở vào vị trí đó và xoay đến đúng giá trị thì sẽ mở được cửa. Nhưng chúng ta hãy cùng làm 1 bài toán. cứ 5 giây arduino xác nhận 1 giá trị => 5x1023 =5115 giây / 3600 = 1 giờ 40 phút. Có ai kiên nhẫn ngồi xoay cái biến trở 5 giây 1 lần trong suốt 1 giờ 40 phút không? Ngoài ra các bạn có thể thấy cổng usb có tận 4 chân, chúng ta có thể tăng thêm thành 2 biến trở, đọc ở 2 chân Analog khác nhau. và việc bẻ khóa nó gần như là quá nản laugh.

Tất nhiên là các bạn cũng nên chọn điện trở loại tốt, để tránh sai số trong mỗi lần đọc tín hiệu nhé

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

lên
33 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Giao tiếp I2C với nhiều module

Nhiều bạn khi mới tiếp cận với thế giới điện tử và bắt đầu làm quen với arduino không khỏi bỡ ngỡ khi nhận thấy trên Arduino Uno chỉ có 2 chân A4,A5 để giao tiếp I2C. Rồi chợt đặt câu hỏi. Có mỗi 1 cổng I2C thế kia thì làm sao có thể giao tiếp với nhiều thiết bị cũng sử dụng giao tiếp I2C? Bài viết này mình sẽ hướng dẫn các bạn cách giao tiếp I2C với nhiều thiết bị.

lên
34 thành viên đã đánh giá bài viết này hữu ích.

Giao tiếp giữa 2 boad Arduino ở cự li xa 1000m bằng chuẩn giao tiếp RS-485

Mình đã có 1 bài viết hướng dẫn về cách giao tiếp giữa 2 arduino bằng i2c, 1 câu hỏi đặt ra "Đối với trường hợp 2 arduino cách xa nhau 50-100m thì sẽ thế nào?", Tất nhiên đối với cự ly như vậy, giao tiếp i2c vẫn có thể thực hiện được nhưng với yêu cầu sử dụng cáp kết nối và nhiều vấn đề phức tạp khác để đối phó với vấn đề sụt giảm điện áp trên đường truyền tải tín hiệu.

Bài viết này mình xin đề cập đến chuẩn giao tiếp RS-485,giúp giao tiếp 2 boad arduino ở cự ly 1000m thậm chí có thể lên tới 1200m (4000feet)

lên
23 thành viên đã đánh giá bài viết này hữu ích.