Obsah:

Kalkulačka TinkerCad Soutěž: 8 kroků
Kalkulačka TinkerCad Soutěž: 8 kroků

Video: Kalkulačka TinkerCad Soutěž: 8 kroků

Video: Kalkulačka TinkerCad Soutěž: 8 kroků
Video: "PROJEKT X" (soutěž) #2 [displej, menu, senzor] 2024, Listopad
Anonim
Kalkulačka TinkerCad Contest
Kalkulačka TinkerCad Contest

Hej, tak nedávno jsem zkoumal, jak implementovat různé typy kódu do obvodu. Zjistil jsem, že vytvoření kalkulačky by byl skvělý způsob, jak implementovat „case“a další formy kódu, které mě zaujaly. V minulosti jsem vytvořil kalkulačky přímo z kódu, ale vytvoření obvodu pro mě mě zaujalo. Zvláště v této době karantény, kde jsem téměř celý den na počítači. Projekt má implementovat matematické operace na LCD obrazovce.

Krok 1: Materiály

Pro obvod:

  • LCD 16 x 2
  • Arduino Uno R3
  • Klávesnice 4x4
  • Malé prkénko
  • Potenciometr (250 kΩ)
  • Rezistor (1kΩ)
  • x26 Propojovací vodiče

Krok 2: Připojení klávesnice 4x4

Připojení klávesnice 4x4
Připojení klávesnice 4x4

Připojte 4řadé piny na klávesnici 4x4 k vývodům Arduino 4-7 a připojte 4pinové vývody k vývodům Arduino 0-3.

Krok 3: Zajistěte napájení Breadboardu a připojte LCD

Zajistěte napájení Breadboardu a připojte LCD
Zajistěte napájení Breadboardu a připojte LCD

Pro prkénko jsem použil napájecí napětí 5. Připojil jsem napájení a zem k prkénku. LCD je umístěn na prkénko a umístěno tak, aby se všechny jeho piny připojily k prkénku.

Krok 4: Připojte napájení a uzemnění k LCD

Připojte napájení a uzemnění k LCD
Připojte napájení a uzemnění k LCD

K připojení LCD budou potřeba 3 piny země. Jeden bude připojen k zemi, jeho vlastní LCD, další bude připojen k LED na LCD a poslední bude připojen k RW. VCC LCD a LED bude vyžadovat připojení. Napájení LED však bude vyžadovat odpor připojený. V tomto případě jsem použil odpor 1 kΩ.

Krok 5: Připojení potenciometru

Připojení potenciometru
Připojení potenciometru

Připojte potenciometr k prkénku pomocí 3 volných sloupců. Bude mít 3 piny, sloupec, který obsahuje 1 pin terminálu, bude potřebovat uzemnění. Sloupec, který obsahuje pin 2 terminálu, bude potřebovat napájení. Poté bude mít stěrač ve svém sloupku propojovací vodič, který se připojí k VO LCD.

Krok 6: Připojení Arduina k LCD

Připojení Arduina k LCD
Připojení Arduina k LCD

Piny 8-13 na Arduinu budou připojeny k LCD. Piny 8-11 na Arduinu se připojí k D8 (7-4). Poté se pin 12 Arduina spojí s aktivací LCD a pin 13 na Arduinu se připojí k registru LCD.

Krok 7: Implementujte kód

K použití matematických operací s klávesnicí a displejem LCD bude zapotřebí kód. Kód, který jsem použil, bude následující, ale stále mohu implementovat několik změn, aby byl čistší a lepší. Tak si s tím klidně trochu pohrajte.

#include #include

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

dlouhý první = 0;

dlouhá sekunda = 0;

dvojnásobek celkem = 0;

int posit = 0;

char customKey;

konstantní bajty Řádky = 4;

konstantní bajt COLS = 4;

znaky [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 = Klávesnice (makeKeymap (klíče), rowPins, colPins, ROWS, COLS);

neplatné nastavení () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

prázdná smyčka () {

customKey = customKeypad.getKey ();

switch (customKey) {

případ '0' … '9':

lcd.setCursor (0, 0);

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

lcd.print (první);

posit ++;

přestávka;

případ '+':

první = (celkem! = 0? celkem: první);

lcd.setCursor (pozit, 0);

lcd.print ("+");

posit ++;

second = SecondNumber ();

celkem = první + sekunda;

lcd.setCursor (1, 1);

lcd.print (celkem);

první = 0, sekunda = 0;

posit = 0;

přestávka;

případ '-':

první = (celkem! = 0? celkem: první);

lcd.setCursor (pozit, 0);

lcd.print ("-");

posit ++;

second = SecondNumber ();

celkem = první - druhý;

lcd.setCursor (1, 1);

lcd.print (celkem);

první = 0, sekunda = 0;

posit = 0;

přestávka;

případ '*':

první = (celkem! = 0? celkem: první);

lcd.setCursor (pozit, 0);

lcd.print ("*");

posit ++;

second = SecondNumber ();

celkem = první * sekunda;

lcd.setCursor (1, 1);

lcd.print (celkem);

první = 0, sekunda = 0;

posit = 0;

přestávka;

případ '/':

první = (celkem! = 0? celkem: první);

lcd.setCursor (pozit, 0);

lcd.print ("/");

posit ++;

second = SecondNumber (); lcd.setCursor (1, 1);

druhý == 0? lcd.print ("Chyba"): celkem = (float) první / (float) sekunda;

lcd.print (celkem);

první = 0, sekunda = 0;

posit = 0;

přestávka;

případ 'C':

celkem = 0;

první = 0;

sekunda = 0;

posit = 0;

lcd.clear ();

přestávka; }

}

dlouhé druhé číslo () {

zatímco (1) {

customKey = customKeypad.getKey ();

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

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

lcd.setCursor (pozit, 0);

lcd.print (druhý); }

if (customKey == 'C') {

celkem = 0;

první = 0;

sekunda = 0;

posit = 0;

lcd.clear ();

přestávka; }

if (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

posit = celkem;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

přestávka; }

}

vrátit se druhý;}

Krok 8: Výsledek

Výsledek
Výsledek
Výsledek
Výsledek

Doufám, že se vám všem tento návod líbil. Děkuji za přečtení!

Saim.

Doporučuje: