Mục lục:
- Bước 1: Những điều cần thiết
- Bước 2: Sơ đồ mạch
- Bước 3: Chương trình Máy tính Arduino
- Bước 4:
- Bước 5: Làm việc với Máy tính Arduino
- Bước 6: Mã
Video: Máy tính Arduino: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
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 đến thông qua một 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 (16 × 2 Dot-matrix). 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 và cũng dễ dàng lập trình cho chúng 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ể.
Bước 1: Những điều cần thiết
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 9VBreadboard và dây kết nối
Bước 2: Sơ đồ mạch
Bước 3: Chương trình Máy tính Arduino
Chương trình Arduino hoàn chỉnh cho dự án này được đưa ra ở phần 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 tôi. 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, tất cả chúng ta đã sẵn sàng để lập trình. Mặc dù chúng ta đã sử dụng thư viện để sử dụng bàn phím, chúng ta 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 như thế này dưới đây đối với bản đồ bàn phím cũng thể hiện tương tự. // Bốn hàng biểu tượng byte COLS = 4; // Ba cột // Xác định các khóa Keymapchar [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}}; byte rowPins [ROWS] = {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 [COLS] = {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 ta đã đề cập đến loại bàn phím chúng ta đang sử dụng và cách kết nối nó, chúng ta 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ướiKeypad kpd = Keypad (makeKeymap (các phím), rowPins, colPins, ROWS, COLS); // Tạo bàn phím Tương tự, chúng ta cũng phải biết các chân của Arduino mà LCD được kết nối với. Theo sơ đồ mạch của chúng tôi, các định nghĩa sẽ giống như dưới đây: int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Các chân mà LCD được kết nốiLiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Tạo LCD Bên trong hàm setup, chúng ta 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. những gì đang được nhập và sau đó chuyển đổi 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ị nó 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 đâykey = kpd.getKey (); // lưu trữ giá trị của phím được nhấn trong một charif (key! = NO_KEY) DetectButtons (); if (result == true) CalculResult (); 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 nó để hiểu nó thực sự hoạt động như thế nào. 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.
Bước 4:
Bước 5: Làm việc với 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ư thế này bên dưới với màn hình LCD hiển thị điều này được liệt kê bên dưới Ký tự trên bàn phím Được coi là “A” Phép cộng (+) “B” Phép trừ (-) “C” Phép nhân (*) “D” Phép chia (/) “*” Xóa (C) “#” Bằng (=) Bạn có thể sử dụng một điểm đá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.
Bước 6: Mã
/ * * Chương trình máy tính bàn phím Arduino * / # bao gồm // Tệp tiêu đề cho màn hình LCD từ https://www.arduino.cc/en/Reference/LiquidCrystal#include // Tệp tiêu đề cho Bàn phím từ https://github.com/ Chris - A / Keypadconst byte ROWS = 4; // Bốn hàng biểu tượng byte COLS = 4; // Ba cột // Xác định các khóa Keymapchar [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {' * ',' 0 ',' # ',' A '}}; byte rowPins [ROWS] = {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 [COLS] = {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. Keypad kpd = Keypad (makeKeymap (phím), rowPins, colPins, ROWS, COLS); // Tạo Keypadconst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Các chân mà LCD được kết nốiLiquidCrystal lcd (rs, en, d4, d5, d6, d7); dài Num1, Num2, Number; phím char, hành động; boolean result = false; void setup () {lcd.begin (16, 2); // Chúng tôi đang sử dụng màn hình LCD 16 * 2 lcd.print ("Máy tính tự làm"); // Hiển thị thông báo giới thiệu lcd.setCursor (0, 1); // đặt con trỏ ở cột 0, dòng 1 lcd.print ("- CircuitDigest"); // Hiển thị độ trễ tin nhắn giới thiệu (2000); // Chờ màn hình hiển thị thông tin lcd.clear (); // Sau đó làm sạch nó} void loop () {key = kpd.getKey (); // lưu trữ giá trị của phím được nhấn trong một charif (key! = NO_KEY) DetectButtons (); if (result == true) CalculResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Sau đó làm sạch nó if (key == '*') // Nếu nút hủy được nhấn {Serial.println ("Nút Hủy"); Số = Num1 = Num2 = 0; result = false;} if (key == '1') // Nếu Nút 1 được nhấn {Serial.println ("Nút 1"); if (Số == 0) Số = 1; else Số = (Số * 10) + 1; // Được nhấn 2 lần} if (key == '4') // Nếu Nút 4 được nhấn {Serial.println ("Nút 4"); if (Số == 0) Số = 4; else Số = (Số * 10) + 4; // Được nhấn 2 lần} if (key == '7') // Nếu Nút 7 được nhấn {Serial.println ("Nút 7"); if (Số == 0) Số = 7; else Số = (Số * 10) + 7; // Được nhấn hai lần} if (key == '0') {Serial.println ("Nút 0"); // Nút 0 được nhấn if (Number == 0) Number = 0; else Số = (Số * 10) + 0; // Được nhấn 2 lần} if (key == '2') // Nút 2 được nhấn {Serial.println ("Nút 2"); if (Số == 0) Số = 2; else Số = (Số * 10) + 2; // Được nhấn hai lần} if (key == '5') {Serial.println ("Nút 5"); if (Số == 0) Số = 5; else Số = (Số * 10) + 5; // Được nhấn hai lần} if (key == '8') {Serial.println ("Nút 8"); if (Số == 0) Số = 8; else Số = (Số * 10) + 8; // Được nhấn hai lần} if (key == '#') {Serial.println ("Nút bằng"); Num2 = Số; kết quả = true; } if (key == '3') {Serial.println ("Nút 3"); if (Số == 0) Số = 3; else Số = (Số * 10) + 3; // Được nhấn hai lần} if (key == '6') {Serial.println ("Nút 6"); if (Số == 0) Số = 6; else Số = (Số * 10) + 6; // Được nhấn hai lần} if (key == '9') {Serial.println ("Nút 9"); if (Số == 0) Số = 9; else Số = (Số * 10) + 9; // Được nhấn hai lần} if (key == 'A' || key == 'B' || key == 'C' || key == 'D') // Phát hiện các nút trên cột 4 {Num1 = Number; Số = 0; if (key == 'A') {Serial.println ("Phép cộng"); action = '+';} if (key == 'B') {Serial.println ("Phép trừ"); hành động = '-'; } if (key == 'C') {Serial.println ("Phép nhân"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); action = '/';} delay (100); }} void InformResult () {if (action == '+') Number = Num1 + Num2; if (action == '-') Number = Num1-Num2; if (action == '*') Number = Num1 * Num2; if (action == '/') Number = Num1 / Num2; } void DisplayResult () {lcd.setCursor (0, 0); // đặt con trỏ ở cột 0, dòng 1 lcd.print (Num1); lcd.print (hành động); lcd.print (Num2); if (kết quả == true) {lcd.print ("="); lcd.print (Number);} // Hiển thị kết quả lcd.setCursor (0, 1); // đặt con trỏ đến cột 0, dòng 1 lcd.print (Number); // Hiển thị kết quả}
Đề xuất:
Thiết lập Raspberry Pi 4 thông qua máy tính xách tay / máy tính bằng cáp Ethernet (Không có màn hình, Không có Wi-Fi): 8 bước
Thiết lập Raspberry Pi 4 thông qua máy tính xách tay / máy tính bằng cáp Ethernet (Không có màn hình, không có Wi-Fi): Trong phần này, chúng tôi sẽ làm việc với Raspberry Pi 4 Model-B RAM 1Gb để thiết lập. Raspberry-Pi là một máy tính bảng đơn được sử dụng cho mục đích giáo dục và các dự án tự làm với chi phí hợp lý, yêu cầu nguồn điện 5V 3A
Cách xây dựng máy tính chơi game hoặc máy tính cơ bản (Tất cả các thành phần): 13 bước
Làm thế nào để xây dựng một máy tính chơi game hoặc cơ bản (Tất cả các thành phần): Vì vậy, bạn muốn biết làm thế nào để xây dựng một máy tính? Trong Tài liệu hướng dẫn này, tôi sẽ dạy bạn cách xây dựng một máy tính để bàn cơ bản. Dưới đây là các bộ phận bắt buộc phải có: Bo mạch chủ Vỏ máy tính (Đảm bảo rằng đó là PGA nếu AMD và LGA nếu Intel) Quạt tản nhiệt cho Vỏ máy tính CPU Pow
Cách biến một chiếc máy tính xách tay hoặc máy tính xách tay cũ / hỏng thành một hộp đựng phương tiện: 9 bước
Làm thế nào để biến một chiếc máy tính xách tay hoặc máy tính xách tay cũ / hư hỏng thành một hộp phương tiện: Trong một thế giới mà công nghệ đang phát triển nhanh nhất so với chúng ta, các thiết bị điện tử yêu quý của chúng ta đều nhanh chóng trở nên lỗi thời. Có lẽ những con mèo yêu thương của bạn đã làm rơi máy tính xách tay của bạn trên bàn và màn hình bị vỡ. Hoặc có thể bạn muốn một hộp media cho TV thông minh
Cách gửi tệp lớn từ máy tính sang máy tính: 6 bước
Cách gửi tệp lớn từ máy tính sang máy tính: Kích thước tệp tiếp tục tăng kích thước khi công nghệ tiến bộ. Nếu bạn đang làm công việc sáng tạo, chẳng hạn như thiết kế hoặc mô hình hóa, hoặc chỉ là một người có sở thích, việc chuyển các tệp lớn có thể là một rắc rối. Hầu hết các dịch vụ email đều giới hạn kích thước tệp đính kèm tối đa trong khoảng 25
Giá đỡ máy tính xách tay không đắt tiền / Máy tính xách tay sang Bộ chuyển đổi máy tính để bàn: 3 bước
Giá đỡ máy tính xách tay / Máy tính xách tay sang Bộ chuyển đổi máy tính để bàn không đắt tiền: Tôi thấy mình đã sử dụng máy tính xách tay của mình trong thời gian dài. Nó sẽ khó chịu sau một thời gian. Bàn phím và màn hình lý tưởng nên tách biệt để giảm mỏi cổ khi sử dụng lâu. Nếu bạn là người dùng máy tính xách tay toàn thời gian, tôi khuyên bạn nên xây dựng