Mục lục:

Cuộc thi Máy tính TinkerCad: 8 bước
Cuộc thi Máy tính TinkerCad: 8 bước

Video: Cuộc thi Máy tính TinkerCad: 8 bước

Video: Cuộc thi Máy tính TinkerCad: 8 bước
Video: Hướng dẫn sử dụng Tinkercad Circuit 2024, Tháng mười một
Anonim
Cuộc thi Máy tính TinkerCad
Cuộc thi Máy tính TinkerCad

Này, gần đây tôi đã khám phá cách triển khai các loại mã khác nhau vào một mạch. Tôi thấy rằng việc tạo ra một máy tính sẽ là một cách tuyệt vời để thực hiện "trường hợp" và các dạng mã khác mà tôi thấy thú vị. Trước đây tôi đã từng làm máy tính trực tiếp từ mã, nhưng việc tạo mạch cho nó khiến tôi hứng thú. Đặc biệt là trong thời gian cách ly này, nơi tôi ở trên máy tính của mình gần như cả ngày. Dự án là thực hiện các phép toán trên màn hình LCD.

Bước 1: Vật liệu

Đối với mạch:

  • LCD 16 x 2
  • Arduino Uno R3
  • Bàn phím 4x4
  • Breadboard nhỏ
  • Chiết áp (250 kΩ)
  • Điện trở (1kΩ)
  • x26 dây nhảy

Bước 2: Kết nối bàn phím 4x4

Kết nối bàn phím 4x4
Kết nối bàn phím 4x4

Kết nối 4 chân hàng trên bàn phím 4x4 với chân Arduino 4-7 và kết nối 4 chân cột với chân Arduino 0-3.

Bước 3: Cung cấp nguồn cho Breadboard và kết nối LCD

Cung cấp nguồn cho Breadboard và kết nối LCD
Cung cấp nguồn cho Breadboard và kết nối LCD

Tôi đã sử dụng điện áp nguồn là 5 cho breadboard. Tôi đã kết nối nguồn và nối đất với breadboard. Màn hình LCD được đặt vào breadboard và được đặt để tất cả các chân của nó được kết nối với breadboard.

Bước 4: Kết nối Nguồn và Nối đất với màn hình LCD

Kết nối Nguồn và Nối đất với màn hình LCD
Kết nối Nguồn và Nối đất với màn hình LCD

Sẽ có 3 chân nối đất cần thiết để kết nối với LCD. Một cái sẽ được nối đất với chính nó của màn hình LCD, cái khác sẽ được kết nối với đèn LED của màn hình LCD, và cái cuối cùng sẽ được kết nối với RW. VCC của LCD và led sẽ yêu cầu nguồn được kết nối. Tuy nhiên, nguồn cho đèn LED sẽ yêu cầu một điện trở được kết nối trong trường hợp này, tôi đã sử dụng điện trở 1kΩ.

Bước 5: Kết nối chiết áp

Kết nối chiết áp
Kết nối chiết áp

Kết nối chiết áp với breadboard có 3 cột trống. Nó sẽ có 3 chân, cột chứa đầu cuối 1 chân sẽ cần được nối đất cho nó. Cột có chứa chân đầu cuối 2 sẽ cần được cấp nguồn cho nó. Sau đó, cần gạt nước sẽ có một dây nhảy trong cột của nó kết nối với VO của màn hình LCD.

Bước 6: Kết nối Arduino với màn hình LCD

Kết nối Arduino với LCD
Kết nối Arduino với LCD

Các chân 8-13 trên Arduino sẽ được kết nối với màn hình LCD. Các chân 8-11 trên Arduino sẽ kết nối với D8 (7-4) tương ứng. Sau đó, chân 12 của Arduino sẽ kết nối với Kích hoạt của màn hình LCD và chân 13 trên Arduino sẽ kết nối với thanh ghi của màn hình LCD.

Bước 7: Triển khai mã

Mã sẽ cần thiết để sử dụng các phép toán với bàn phím và màn hình LCD. Sau đây sẽ là đoạn mã tôi đã sử dụng, tuy nhiên tôi vẫn có thể thực hiện nhiều thay đổi để làm cho nó sạch hơn và tốt hơn. Vì vậy, hãy thoải mái chơi với nó một chút.

#include #include

Màn hình LCD LiquidCrystal (13, 12, 11, 10, 9, 8);

dài đầu tiên = 0;

giây dài = 0;

tổng gấp đôi = 0;

int posit = 0;

char customKey;

const byte ROWS = 4;

const byte COLS = 4;

các phím ký tự [ROWS] [COLS] = {

{'1', '2', '3', '/'}, {'4', '5', '6', '*'}, {'7', '8', '9', '-'}, {'C', '0', '=', '+'}};

byte rowPins [ROWS] = {7, 6, 5, 4};

byte colPins [COLS] = {3, 2, 1, 0};

Keypad customKeypad = Bàn phím (makeKeymap (phím), rowPins, colPins, ROWS, COLS);

void setup () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {

customKey = customKeypad.getKey ();

chuyển đổi (customKey) {

trường hợp '0'… '9':

lcd.setCursor (0, 0);

đầu tiên = đầu tiên * 10 + (customKey - '0');

lcd.print (đầu tiên);

posit ++;

nghỉ;

trường hợp '+':

đầu tiên = (tổng! = 0? tổng: đầu tiên);

lcd.setCursor (posit, 0);

lcd.print ("+");

posit ++;

giây = SecondNumber ();

tổng = thứ nhất + thứ hai;

lcd.setCursor (1, 1);

lcd.print (tổng số);

đầu tiên = 0, giây = 0;

posit = 0;

nghỉ;

trường hợp '-':

đầu tiên = (tổng! = 0? tổng: đầu tiên);

lcd.setCursor (posit, 0);

lcd.print ("-");

posit ++;

giây = SecondNumber ();

tổng = thứ nhất - thứ hai;

lcd.setCursor (1, 1);

lcd.print (tổng số);

đầu tiên = 0, giây = 0;

posit = 0;

nghỉ;

trường hợp '*':

đầu tiên = (tổng! = 0? tổng: đầu tiên);

lcd.setCursor (posit, 0);

lcd.print ("*");

posit ++;

giây = SecondNumber ();

tổng = thứ nhất * thứ hai;

lcd.setCursor (1, 1);

lcd.print (tổng số);

đầu tiên = 0, giây = 0;

posit = 0;

nghỉ;

trường hợp '/':

đầu tiên = (tổng! = 0? tổng: đầu tiên);

lcd.setCursor (posit, 0);

lcd.print ("/");

posit ++;

giây = SecondNumber (); lcd.setCursor (1, 1);

thứ hai == 0? lcd.print ("Lỗi"): total = (float) first / (float) second;

lcd.print (tổng số);

đầu tiên = 0, giây = 0;

posit = 0;

nghỉ;

trường hợp 'C':

tổng = 0;

đầu tiên = 0;

giây = 0;

posit = 0;

lcd.clear ();

nghỉ; }

}

dài SecondNumber () {

trong khi (1) {

customKey = customKeypad.getKey ();

if (customKey> = '0' && customKey <= '9') {

second = second * 10 + (customKey - '0');

lcd.setCursor (posit, 0);

lcd.print (giây); }

if (customKey == 'C') {

tổng = 0;

đầu tiên = 0;

giây = 0;

posit = 0;

lcd.clear ();

nghỉ; }

if (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

posit = tổng số;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

nghỉ; }

}

trở lại thứ hai;}

Bước 8: Kết quả

Kết quả
Kết quả
Kết quả
Kết quả

Tôi hy vọng tất cả các bạn thích hướng dẫn này. Cảm ơn bạn đã đọc!

Saim.

Đề xuất: