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ả

Công cụ vẽ đồ thị trên arduino IDE - Serial Plotter

Bắt đầu từ bản cập nhật arduino IDE 1.6.6, Arduino IDE đã giới thiệu một tính năng mới tuyệt vời. Nó được gọi là Serial Plotter, gọi nôm na là vẽ nối tiếp và bạn có thể tìm thấy nó trong Arduino IDE của bạn dưới menu Tools. Bài viết này mình sẽ giới thiệu với các bạn công cụ Plotter này

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

Nghiên cứu về tín hiệu hồng ngoại của Remote điều hòa, ứng dụng trong các dự án nhà thông minh <Phần 2>

Ở bài viết trước mình đã hướng dẫn các bạn cách cấu hình lại thư viện để nhận được tín hiệu điều khiển hồng ngoại có độ dài lớn hơn 100 rawbuff. Tuy nhiên thực tế các biến trong thư viện đang sử dụng dạng 8bit cho rawbuff, điều đó đồng nghĩa với giá trị rawbuff chúng ta có thể tăng tối đa là 255. Mình đã nghiên cứu rất nhiều các bài viết, các câu trả lời trên các diễn đàn quốc tế chuyên về arduino tuy nhiên chưa tìm được câu trả lời thỏa đáng cho các vấn đề mình gặp phải. Việc giải mã tín hiệu là vô cùng khó khăn và phức tạp. Thậm chí mình đã phải bỏ ra 10$ để thanh toán cho 1 phần mềm để phân tích, giải mã tín hiệu hồng ngoại.Đây chính là rào cản lớn đối với các bạn muốn nghiên cứu về tín hiệu hồng ngoại của điều hòa. Bài viết này mình sẽ hướng dẫn các bạn cách nhận giá trị điều khiển hồng ngoại có kích thước tín hiệu lớn. Và đưa ra các vấn đề mà các bạn thường mắc phải khi nghiên cứu tín hiệu hồng ngoại.

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