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
31 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ả

Module âm thanh WTV020 - Module âm thanh kết hợp với thẻ nhớ micro SD - Một giải pháp thông minh cho túi tiền của bạn

Bài viết này mình xin giới thiệu tới các bạn 1 loại module âm thanh khá dễ sử dụng tuy nhiên lại ít phổ biến trong cộng đồng Arduino VN. Đó là Module WTV-020. Bạn đã từng xem những con robot có thể phát ra tiếng nói và thậm chí xử lý được các tình huống và phát ra tiếng nói theo từng trường hợp. Ngoài việc xử dụng modul Micro SD Card ra, Module WTV-020 là 1 sự lựa chọn đáng để các bạn quan tâm khi các bạn có ý định khởi động 1 dự án có liên quan đến âm thanh.

P/S: mình đã hoàn thành được 1 dự án có sử dụng module này và khá hài lòng về kết quả mà nó mang lại cho mình (kể cả về kinh tế) heart

Đây là loại module có thể sử dụng trong các hệ thống định vị GPS, hệ thống nhà thông minh, các thiết bị y tế, thiết bị gia dụng (bếp, nồi cơm điện, lò vi sóng), máy chơi game, các thiết bị học tập và các công cụ như "sách nói", các dạng phương tiện giao thông thông minh (trạm thu phí, bãi đậu xe), thiết bị thông tin liên lạc (điện thoại), công nghiệp kiểm soát (thang máy), đồ chơi có phát ra âm thanh..v..v..

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

LCD Graphic 128x64 dòng KS0108 VÀ ST7920 - Viết, vẽ và làm mọi thứ với LCD

Graphic LCD (gọi tắt là GLCD) loại chấm không màu là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ, số hoặc hình ảnh. Khác với Text LCD, GLCD không được chia thành các ô để hiển thị các mã ASCII vì GLCD không có bộ nhớ CGRAM (Character Generation RAM). GLCD 128x64 có 128 cột và 64 hàng tương ứng có 128x64=8192 chấm (dot). Mỗi chấm tương ứng với 1 bit dữ liệu, và như thế cần 8192 bits hay 1024 bytes RAM để chứa dữ liệu hiển thị đầy mỗi 128x64 GLCD. Tùy theo loại chip điều khiển, nguyên lý hoạt động của GLCD có thể khác nhau, trong bài này tôi giới thiệu loại GLCD được điều khiển bởi chip KS0108 của Samsung, có thể nói GLCD với KS0108 là phổ biến nhất trong các loại GLCD loại này (chấm, không màu). Hình 1 là hình ảnh thật của 1 GLCD 128x64 điều khiển bởi KS0108.

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