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 giữa nhiều arduino với nhau

Đôi khi chúng ta muốn chia sẻ khối lượng công việc của một Arduino với 1 arduino khác. Hoặc có khi chúng ta muốn nhiều chân digital hoặc analog hơn để xử lý công việc.I2C là giải pháp tốt nhất. Bài viết này mình sẽ hướng dẫn các bạn cách giao tiếp giữa 2 boad arduino với nhau qua giao thức I2C.

lên
24 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
26 thành viên đã đánh giá bài viết này hữu ích.