Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
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
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ö
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
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
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 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
Toivottavasti kaikki nauttivat tästä opettavaisesta. Kiitos, että luit!
Saim.