- Vật liệu thiết yếu:
- Sơ đồ mạch:
- Chương trình Máy tính Arduino:
- Mô phỏng Máy tính Arduino:
- Hoạt động của Máy tính Arduino:
Lập trình luôn thú vị và Arduino là một nền tảng tuyệt vời nếu bạn mới bắt đầu với lập trình Nhúng. Trong hướng dẫn này, chúng tôi sẽ xây dựng máy tính của riêng mình với Arduino. Các giá trị có thể được gửi qua bàn phím (bàn phím 4 × 4) và kết quả có thể được xem trên màn hình LCD (ma trận điểm 16 × 2). Máy tính này có thể thực hiện các phép toán đơn giản như Cộng, Trừ, Nhân và Chia với các số nguyên. Nhưng một khi bạn hiểu khái niệm, bạn có thể thực hiện các chức năng khoa học thậm chí với các chức năng được tích hợp sẵn của Arduino.
Vào cuối dự án này, bạn sẽ biết cách sử dụng màn hình LCD 16x2 và Bàn phím với Arduino cũng như việc lập trình cho chúng dễ dàng như thế nào bằng cách sử dụng các thư viện có sẵn. Bạn cũng sẽ hiểu cách lập trình Arduino của mình để hoàn thành một nhiệm vụ cụ thể.
Vật liệu thiết yếu:
- Arduino Uno (Mọi phiên bản đều hoạt động)
- Màn hình LCD 16 × 2
- Bàn phím 4 × 4
- Pin 9V
- Breadboard và kết nối dây
Sơ đồ mạch:
Sơ đồ mạch hoàn chỉnh của Dự án Máy tính Arduino này được đưa ra ở trên. + 5V và kết nối đất hiển thị trong sơ đồ mạch có thể được lấy từ chân 5V và chân nối đất của Arduino. Bản thân Arduino có thể được cấp nguồn từ máy tính xách tay của bạn hoặc thông qua giắc cắm DC bằng bộ chuyển đổi 12V hoặc pin 9V.
Chúng tôi đang vận hành màn hình LCD ở chế độ 4 bit với Arduino nên chỉ bốn bit dữ liệu cuối cùng của màn hình LCD được kết nối với Arduino. Bàn phím sẽ có 8 chân đầu ra phải được kết nối từ chân 0 đến chân 7 như hình trên. Bạn có thể sử dụng bảng kết nối sau để xác minh kết nối của mình với Arduino, bạn cũng có thể kiểm tra giao diện Bàn phím 4x4 với Arduino.
Tên pin Arduino: |
Kết nối với: |
D0 |
1 st pin của bàn phím |
D1 |
2 nd pin của bàn phím |
D2 |
Chân thứ 3 của bàn phím |
D3 |
Chân thứ 4 của bàn phím |
D4 |
Chân thứ 5 của bàn phím |
D5 |
Chân thứ 6 của bàn phím |
D6 |
Chân thứ 7 của bàn phím |
D7 |
Chân thứ 8 của bàn phím |
D8 |
Đăng ký chọn pin của LCD (pin 4) |
D9 |
Kích hoạt pin của LCD (pin 6) |
D10 |
Chân dữ liệu 4 (chân 11) |
D11 |
Chân dữ liệu 4 (chân 11) |
D12 |
Chân dữ liệu 4 (chân 11) |
D13 |
Chân dữ liệu 4 (chân 11) |
+ 5V |
Đã kết nối với chân Vdd của LCD (chân 2) |
Đất |
Kết nối với chân Vss, Vee và RW của LCD (chân 1,3 và 5) |
Một số bảng Arduino có thể hiển thị lỗi khi tải lên chương trình nếu có bất kỳ thứ gì được kết nối với pin 0 và pin1, vì vậy nếu bạn gặp bất kỳ lỗi nào, chỉ cần xóa bàn phím trong khi tải lên chương trình.
Sau khi kết nối xong, phần cứng của bạn sẽ trông giống như sau
Chương trình Máy tính Arduino:
Các hoàn thành chương trình Arduino cho dự án này được đưa ra vào cuối của dự án này. Mã được chia thành các đoạn nhỏ có ý nghĩa và được giải thích bên dưới.
Như đã nói trước đó, chúng ta sẽ giao diện màn hình LCD và bàn phím với Arduino bằng cách sử dụng các thư viện. Vì vậy, trước tiên hãy thêm chúng vào Arduino IDE của chúng ta. Thư viện cho LCD đã được bao gồm trong Arduino của bạn theo mặc định, vì vậy chúng tôi không cần phải lo lắng về nó. Đối với thư viện Bàn phím bấm vào liên kết để tải xuống từ Github. Bạn sẽ nhận được một tệp ZIP, sau đó thêm lib này vào Arduino bằng Sketch -> Bao gồm Thư viện -> Thêm tệp.ZIP và trỏ vị trí đến tệp đã tải xuống này. Sau khi hoàn tất, chúng tôi đã sẵn sàng để lập trình.
Mặc dù chúng tôi đã sử dụng thư viện để sử dụng bàn phím, chúng tôi phải đề cập đến một số chi tiết (được hiển thị bên dưới) về bàn phím của Arduino. Biến ROWS và COLS sẽ cho biết bàn phím của chúng ta có bao nhiêu hàng và cột và sơ đồ bàn phím hiển thị thứ tự các phím hiện diện trên bàn phím. Bàn phím mà tôi đang sử dụng trong dự án này trông giống như thế này bên dưới bản đồ bàn phím cũng thể hiện như vậy.
Thêm dưới đây, chúng tôi đã đề cập đến mà chân Keypad được kết nối bằng cách sử dụng mảng biến rowPins và colPins .
const byte ROWS = 4; // Bốn hàng const byte COLS = 4; // Ba cột // Xác định các phím Biểu đồ ký tự = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, { '7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins = {0, 1, 2, 3}; // Kết nối bàn phím ROW0, ROW1, ROW2 và ROW3 với các chân Arduino này. byte colPins = {4, 5, 6, 7}; // Kết nối bàn phím COL0, COL1 và COL2 với các chân Arduino này.
Khi chúng tôi đã đề cập đến loại bàn phím chúng tôi đang sử dụng và cách nó được kết nối, chúng tôi có thể tạo bàn phím bằng các chi tiết đó bằng cách sử dụng dòng bên dưới
Keypad kpd = Bàn phím (makeKeymap (phím), rowPins, colPins, ROWS, COLS); // Tạo bàn phím
Tương tự, chúng ta cũng phải cho biết LCD được kết nối với chân nào của Arduino. Theo sơ đồ mạch của chúng tôi, các định nghĩa sẽ như dưới đây
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Các chân mà LCD được kết nối LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // tạo màn hình LCD
Bên trong chức năng thiết lập , chúng tôi chỉ hiển thị tên của dự án và sau đó tiếp tục vòng lặp while nơi dự án chính nằm.
Về cơ bản, chúng ta phải kiểm tra xem có thứ gì đang được nhập trên bàn phím hay không, nếu đã nhập chúng ta phải nhận ra những gì đang được nhập và sau đó chuyển nó thành một biến khi nhấn “=” chúng ta phải tính toán kết quả và cuối cùng hiển thị trên màn hình LCD. Đây chính xác là những gì được thực hiện bên trong hàm vòng lặp như hình dưới đây
key = kpd.getKey (); // lưu trữ giá trị phím đã nhấn trong một char if (key! = NO_KEY) DetectButtons (); if (kết quả == true) TínhResult (); DisplayResult ();
Điều gì xảy ra bên trong mỗi chức năng được giải thích bằng cách sử dụng các dòng bình luận, hãy xem qua đoạn mã hoàn chỉnh bên dưới, tìm hiểu kỹ về nó để hiểu cách nó thực sự hoạt động. Nếu bạn có bất kỳ nghi ngờ nào về một dòng cụ thể, hãy sử dụng phần bình luận hoặc diễn đàn.
Mô phỏng Máy tính Arduino:
Chúng ta cũng có thể thử mô phỏng dự án bằng phần mềm Proteus. Proteus không có thành phần Arduino riêng, nhưng có thể dễ dàng tải xuống và thêm vào thư viện của nó. Khi bạn đã có thành phần Arduino trên Proteus, chỉ cần thêm LCD chữ và số và Bàn phím để tạo kết nối như trong sơ đồ mạch.
Sau đó tải xuống tệp hex từ đây và thêm nó vào Arduino bằng cách nhấp đúp vào bảng trong Proteus và trỏ “tệp chương trình” đến tệp hex đã tải xuống này. Ảnh chụp nhanh của mô phỏng được hiển thị bên dưới, hoạt động hoàn chỉnh được hiển thị trong video bên dưới.
Lưu ý: Tệp hex được cung cấp không giống với tệp gốc của chương trình dưới đây. Nó đã được sửa đổi vì sơ đồ bàn phím của bàn phím mô phỏng và bàn phím phần cứng thực tế là khác nhau.
Hoạt động của Máy tính Arduino:
Thực hiện các kết nối theo sơ đồ mạch và tải lên mã bên dưới. Nếu nó hiển thị lỗi, hãy đảm bảo rằng bạn đã thêm thư viện theo hướng dẫn ở trên. Bạn cũng có thể thử mô phỏng để kiểm tra xem vấn đề có phải do phần cứng của bạn hay không. Nếu mọi thứ được thực hiện đúng như dự kiến, thì phần cứng của bạn sẽ trông giống như bên dưới với màn hình LCD hiển thị điều này
Vì bàn phím được sử dụng ở đây không có dấu thích hợp trên đó nên tôi đã giả định Bảng chữ cái là các toán tử như được liệt kê bên dưới
Ký tự trên bàn phím |
Giả định là |
"A" |
Phép cộng (+) |
"B" |
Phép trừ (-) |
“C” |
Phép nhân (*) |
“D” |
Bộ phận (/) |
“*” |
Rõ ràng (C) |
“#” |
Bằng (=) |
Bạn có thể sử dụng bút đánh dấu để viết lên những gì mà mỗi nút thực sự đại diện.
Sau khi hoàn thành, bạn có thể trực tiếp bắt đầu sử dụng máy tính. Nhập số và sẽ xuất hiện trên dòng thứ hai, nhấn toán hạng và nhập số thứ hai của bạn, cuối cùng nhấn phím “#” để nhận kết quả. Bạn cũng có thể thử xây dựng máy tính Arduino dựa trên Màn hình cảm ứng này.