Sisällysluettelo:

Laskin TinkerCad -kilpailu: 8 vaihetta
Laskin TinkerCad -kilpailu: 8 vaihetta

Video: Laskin TinkerCad -kilpailu: 8 vaihetta

Video: Laskin TinkerCad -kilpailu: 8 vaihetta
Video: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, Marraskuu
Anonim
Laskin TinkerCad -kilpailu
Laskin TinkerCad -kilpailu

Hei, niin viime aikoina olen tutkinut, kuinka toteuttaa erityyppisiä koodeja piiriin. Huomasin, että laskimen tekeminen olisi loistava tapa toteuttaa "tapaus" ja muut mielenkiintoiset koodit. Olen aikaisemmin tehnyt laskimia suoraan koodista, mutta piirin tekeminen sille antoi minulle kiinnostusta. Varsinkin tänä karanteeniaikana, jolloin olen tietokoneella lähes koko päivän. Projektin tarkoituksena on toteuttaa matemaattisia toimintoja nestekidenäytöllä.

Vaihe 1: Materiaalit

Piiri:

  • LCD 16 x 2
  • Arduino Uno R3
  • Näppäimistö 4x4
  • Pieni leipälauta
  • Potentiometri (250 kΩ)
  • Vastus (1 kΩ)
  • x26 Hyppyjohdot

Vaihe 2: 4x4 -näppäimistön liittäminen

4x4 -näppäimistön liittäminen
4x4 -näppäimistön liittäminen

Liitä 4x4-näppäimistön 4 rivinappia Arduino-nastoihin 4-7 ja 4 sarakkeen nastaa Arduino-nastoihin 0-3.

Vaihe 3: Kytke virta leipätauluun ja liitä nestekidenäyttö

Kytke virta leipätauluun ja liitä LCD -näyttö
Kytke virta leipätauluun ja liitä LCD -näyttö

Käytin verkkojännitettä 5 leipälevylle. Liitin virran ja maan leipälautaan. Nestekidenäyttö asetetaan leipälevylle ja asetetaan siten, että kaikki sen nastat yhdistetään leipälautaan.

Vaihe 4: Liitä virta ja maadoitus nestekidenäyttöön

Kytke virta ja maadoitus nestekidenäyttöön
Kytke virta ja maadoitus nestekidenäyttöön

LCD -näyttöön on liitettävä 3 nastaista maadoitusta. Yksi liitetään LCD -näytön maahan, toinen LCD -näytön LED -valoon ja viimeinen RW -laitteeseen. Nestekidenäytön VCC ja LED vaativat virran kytkemistä. Kuitenkin LED -valon teho vaatii kytketyn vastuksen, tässä tapauksessa käytin 1 kΩ: n vastusta.

Vaihe 5: Potentiometrin liittäminen

Potentiometrin liittäminen
Potentiometrin liittäminen

Liitä potentiometri leipälevyyn kolmella vapaalla sarakkeella. Siinä on 3 nastaa, ja sarake, joka sisältää liittimen 1 tapin, tarvitsee sille maadoituksen. Liitin 2 -nastainen sarake tarvitsee sille annettua virtaa. Sitten pyyhkimen sarakkeessa on hyppyjohdin, joka yhdistää nestekidenäytön VO: hon.

Vaihe 6: Arduinon liittäminen nestekidenäyttöön

Arduinon liittäminen nestekidenäyttöön
Arduinon liittäminen nestekidenäyttöön

Arduinon nastat 8-13 liitetään nestekidenäyttöön. Arduinon nastat 8-11 muodostavat yhteyden D8: een (7-4). Sitten Arduinon nasta 12 muodostaa yhteyden LCD -näytön käyttöönottoon ja Arduinon nasta 13 muodostaa yhteyden LCD -rekisteriin.

Vaihe 7: Toteuta koodi

Koodia tarvitaan matemaattisten toimintojen käyttämiseen näppäimistön ja nestekidenäytön kanssa. Seuraavassa on käyttämäni koodi, mutta useita muutoksia voidaan silti tehdä, jotta se olisi puhtaampaa ja parempaa. Joten vapaasti leikkiä sen kanssa.

#Sisällytä #Sisällytä

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

pitkä ensin = 0;

pitkä sekunti = 0;

tupla yhteensä = 0;

int posit = 0;

char customKey;

const tavu RIVIT = 4;

const tavu COLS = 4;

char -näppäimet [ROWS] [COLS] = {

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

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

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

Näppäimistö customKeypad = Näppäimistö (makeKeymap (näppäimet), rowPins, colPins, ROWS, COLS);

void setup () {

lcd. alku (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {

customKey = customKeypad.getKey ();

kytkin (customKey) {

tapaus '0' … '9':

lcd.setCursor (0, 0);

ensimmäinen = ensimmäinen * 10 + (customKey - '0');

lcd.print (ensimmäinen);

positiivinen ++;

tauko;

kirjain "+":

ensimmäinen = (yhteensä! = 0? yhteensä: ensimmäinen);

lcd.setCursor (posit, 0);

lcd.print ("+");

positiivinen ++;

toinen = toinen numero ();

yhteensä = ensimmäinen + toinen;

lcd.setCursor (1, 1);

lcd.print (yhteensä);

ensimmäinen = 0, toinen = 0;

positiivinen = 0;

tauko;

tapaus '-':

ensimmäinen = (yhteensä! = 0? yhteensä: ensimmäinen);

lcd.setCursor (posit, 0);

lcd.print ("-");

positiivinen ++;

toinen = toinen numero ();

yhteensä = ensimmäinen - toinen;

lcd.setCursor (1, 1);

lcd.print (yhteensä);

ensimmäinen = 0, toinen = 0;

positiivinen = 0;

tauko;

tapaus '*':

ensimmäinen = (yhteensä! = 0? yhteensä: ensimmäinen);

lcd.setCursor (positiivinen, 0);

lcd.print ("*");

positiivinen ++;

toinen = toinen numero ();

yhteensä = ensimmäinen * toinen;

lcd.setCursor (1, 1);

lcd.print (yhteensä);

ensimmäinen = 0, toinen = 0;

positiivinen = 0;

tauko;

tapaus '/':

ensimmäinen = (yhteensä! = 0? yhteensä: ensimmäinen);

lcd.setCursor (posit, 0);

lcd.print ("/");

positiivinen ++;

toinen = toinen numero (); lcd.setCursor (1, 1);

toinen == 0? lcd.print ("Virhe"): yhteensä = (kelluva) ensimmäinen / (kelluva) toinen;

lcd.print (yhteensä);

ensimmäinen = 0, toinen = 0;

positiivinen = 0;

tauko;

tapaus 'C':

yhteensä = 0;

ensimmäinen = 0;

toinen = 0;

positiivinen = 0;

lcd.clear ();

tauko; }

}

pitkä toinen numero () {

samalla (1) {

customKey = customKeypad.getKey ();

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

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

lcd.setCursor (posit, 0);

lcd.print (toinen); }

jos (customKey == 'C') {

yhteensä = 0;

ensimmäinen = 0;

toinen = 0;

positiivinen = 0;

lcd.clear ();

tauko; }

jos (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

posit = yhteensä;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

tauko; }

}

palaa toiseksi;}

Vaihe 8: Tulos

Tulos
Tulos
Tulos
Tulos

Toivottavasti kaikki nauttivat tästä opettavaisesta. Kiitos, että luit!

Saim.

Suositeltava: