Sisällysluettelo:
- Vaihe 1: Tarvittavat asiat
- Vaihe 2: Piirikaavio
- Vaihe 3: Arduino -laskinohjelma
- Vaihe 4:
- Vaihe 5: Arduino -laskimen käyttö
- Vaihe 6: Koodi
Video: Arduino -laskin: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Ohjelmointi on aina hauskaa ja Arduino on loistava alusta, jos olet vasta aloittamassa sulautettua ohjelmointia. Tässä opetusohjelmassa rakennamme oman laskimemme Arduinolla. Arvot voidaan lähettää näppäimistön (4 × 4 näppäimistö) kautta ja tulosta voidaan tarkastella nestekidenäytöllä (16 × 2 pistematriisi). Tämä laskin voi suorittaa yksinkertaisia toimintoja, kuten yhteenlasku, vähennyslasku, kertolasku ja jako kokonaisluvuilla. Mutta kun ymmärrät konseptin, voit toteuttaa jopa tieteellisiä toimintoja Arduinon sisäänrakennettujen toimintojen avulla. Tämän projektin lopussa tiedät kuinka käyttää 16x2 LCD -näyttöä ja näppäimistöä Arduinon kanssa ja kuinka helppoa on ohjelmoida heille käytettävissä olevat kirjastot. Ymmärrät myös kuinka ohjelmoida Arduinosi tietyn tehtävän suorittamiseen.
Vaihe 1: Tarvittavat asiat
Arduino Uno (mikä tahansa versio toimii) 16 × 2 LCD -näyttö 4 × 4 Näppäimistö 9 V Akku Leipälevy ja liitäntäjohdot
Vaihe 2: Piirikaavio
Vaihe 3: Arduino -laskinohjelma
Tämän projektin täydellinen Arduino -ohjelma on tämän projektin lopussa. Koodi on jaettu pieniin merkityksellisiin paloihin ja selitetty alla, kuten aiemmin kerrottiin, aiomme liittää nestekidenäytön ja näppäimistön Arduinon kanssa kirjastojen avulla. Joten lisätään ne ensin Arduino IDE: hen. LCD -kirjasto sisältyy jo oletusarvoisesti Arduinoosi, joten meidän ei tarvitse huolehtia siitä. Napsauta näppäimistökirjastoa ladataksesi sen Githubista. Saat ZIP -tiedoston, lisää sitten tämä lib Arduinoon Sketch -> Sisällytä kirjasto -> Lisää. ZIP -tiedosto ja osoita sijainti tähän ladattuun tiedostoon. Kun olemme tehneet, olemme kaikki valmiita ohjelmoimaan. Muuttuja ROWS ja COLS kertoo, kuinka monta riviä ja saraketta näppäimistöllämme on, ja näppäimistö näyttää järjestyksen, jossa näppäimet ovat näppäimistöllä. Näppäimistö, jota käytän tässä projektissa, näyttää tältä alla näppäinkartalle. // Neljä riviriviä tavu COLS = 4; // Kolme saraketta // Määritä avainnumeronäppäimet [RIVIT] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}}; tavu rowPins [ROWS] = {0, 1, 2, 3}; // Liitä näppäimistö ROW0, ROW1, ROW2 ja ROW3 näihin Arduino -nastoihin. Tavua colPins [COLS] = {4, 5, 6, 7}; // Liitä näppäimistö COL0, COL1 ja COL2 näihin Arduino -nastoihin. Kun olemme maininneet, minkä tyyppistä näppäimistöä käytämme ja miten se on kytketty, voimme luoda näppäimistön käyttämällä näitä tietoja alla olevan rivin avulla Näppäimistö kpd = Näppäimistö (makeKeymap (näppäimet), rivitapit, colPins, RIVIT, COLS); // Luo näppäimistö Samoin meidän on myös kerrottava, mihin Arduinon nastoihin nestekidenäyttö on kytketty. Kytkentäkaavion mukaan määritelmät olisivat seuraavanlaisia: int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Nastat, joihin LCD on liitetty LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Luo nestekidenäyttö Asetustoiminnon sisällä näytämme vain projektin nimen ja siirrymme sitten silmukkaan, jossa pääprojekti sijaitsee. Periaatteessa meidän on tarkistettava, kirjoitetaanko jotain näppäimistöllä, jos kirjoitetaan, meidän on tunnistettava mitä kirjoitetaan ja muuntaa sen muuttujaksi, kun "=" painetaan, meidän on laskettava tulos ja näytettävä se lopulta nestekidenäytöllä. Juuri näin tehdään silmukkafunktion sisällä, kuten alla on esitetty avain = kpd.getKey (); // painetun näppäimen arvon tallentaminen charifiin (avain! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); Mitä kunkin toiminnon sisällä tapahtuu, selitetään kommenttiriveillä, käy läpi alla oleva koodi, piilota se ymmärtääksesi kuinka se todella toimii. Jos sinulla on epäilyksiä tietyllä rivillä, voit käyttää kommenttiosaa tai foorumeita.
Vaihe 4:
Vaihe 5: Arduino -laskimen käyttö
Tee liitännät piirikaavion mukaisesti ja lataa alla oleva koodi. Jos se näyttää virheen, varmista, että olet lisännyt kirjaston yllä olevien ohjeiden mukaisesti. Voit myös kokeilla simulaatiota tarkistaaksesi, onko ongelma laitteistossasi. Jos kaikki on tehty niin kuin sen pitäisi olla, laitteistosi näyttää seuraavanlaiselta, kun LCD -näyttö näyttää tämän. Arduino -laskin, jossa käytetään 4x4 -näppäimistöä lueteltu allaMerkki näppäimistöllä Oletetaan olevan "A" -lisäys (+) "B" -vähennys (-) "C" -kerroin (*) "D" -jako (/) "*" Kirkas (C) "#" Sama kuin (=) Voit Käytä merkkiä kirjoittaaksesi, mitä kukin painike todellisuudessa edustaa. Kun olet valmis, voit aloittaa laskimen käytön. Kirjoita numero ja ilmestyy toiselle riville paina operandia ja kirjoita toinen numero lopuksi painamalla#-näppäintä saadaksesi tuloksen. Voit myös yrittää rakentaa tämän kosketusnäyttöpohjaisen Arduino -laskimen.
Vaihe 6: Koodi
/ * * Arduino -näppäimistölaskinohjelma */#include // LCD -otsikkotiedosto osoitteesta https://www.arduino.cc/en/Reference/LiquidCrystal#include // Näppäimistön otsikkotiedosto osoitteesta https://github.com/ Chris-A/Näppäimistön tavu RIVIT = 4; // Neljä riviriviä tavu COLS = 4; // Kolme saraketta // Määritä avainnumeronäppäimet [RIVIT] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; tavu rowPins [ROWS] = {0, 1, 2, 3}; // Liitä näppäimistö ROW0, ROW1, ROW2 ja ROW3 näihin Arduino -nastoihin. Tavua colPins [COLS] = {4, 5, 6, 7}; // Kytke näppäimistö COL0, COL1 ja COL2 näihin Arduino -nastoihin. // Luo näppäimistökonst. Int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Nastat, joihin LCD on liitetty LiquidCrystal lcd (rs, en, d4, d5, d6, d7); pitkä Num1, Num2, Number; char -näppäin, toiminta; boolen tulos = false; void setup () {lcd.begin (16, 2); // Käytämme 16*2 LCD -näyttöä lcd.print ("DIY Calculator"); // Näytä intro -viesti lcd.setCursor (0, 1); // aseta kohdistin sarakkeeseen 0, rivi 1 lcd.print ("-CircuitDigest"); // Näytä intro -viestin viive (2000); // Odota, kunnes näytössä näkyy tiedot lcd.clear (); // Puhdista sitten} void loop () {key = kpd.getKey (); // painetun näppäimen arvon tallentaminen charifiin (avain! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); } mitätön DetectButtons () {lcd.clear (); // Puhdista se, jos (key == '*') // Jos peruutuspainiketta painetaan {Serial.println ("Button Cancel"); Luku = Num1 = Num2 = 0; result = false;} if (key == '1') // Jos painiketta 1 painetaan {Serial.println ("Button 1"); jos (luku == 0) luku = 1; else Luku = (luku*10) + 1; // Painamalla kahdesti} if (key == '4') // Jos painiketta 4 painetaan {Serial.println ("Button 4"); jos (luku == 0) luku = 4; else Luku = (luku*10) + 4; // Painamalla kahdesti} if (key == '7') // Jos painiketta 7 painetaan {Serial.println ("Button 7"); jos (luku == 0) luku = 7; else Luku = (luku*10) + 7; // Painamalla kahdesti} if (key == '0') {Serial.println ("Button 0"); // Painiketta 0 painetaan, jos (luku == 0) numero = 0; else Luku = (luku*10) + 0; // Painamalla kahdesti} if (key == '2') // Painike 2 on painettu {Serial.println ("Button 2"); jos (luku == 0) luku = 2; else Luku = (luku*10) + 2; // Painamalla kahdesti} if (key == '5') {Serial.println ("Button 5"); jos (luku == 0) luku = 5; muu Luku = (luku*10) + 5; // Painamalla kahdesti} if (key == '8') {Serial.println ("Button 8"); jos (luku == 0) luku = 8; muu Luku = (luku*10) + 8; // Painamalla kahdesti} if (key == '#') {Serial.println ("Button Equal"); Num2 = luku; tulos = totta; } if (key == '3') {Serial.println ("Button 3"); jos (luku == 0) luku = 3; else Luku = (luku*10) + 3; // Painamalla kahdesti} if (key == '6') {Serial.println ("Button 6"); jos (luku == 0) luku = 6; muu Luku = (luku*10) + 6; // Painamalla kahdesti} if (key == '9') {Serial.println ("Button 9"); jos (luku == 0) luku = 9; muu Luku = (luku*10) + 9; // Painamalla kahdesti} if (näppäin == 'A' || näppäin == 'B' || näppäin == 'C' || näppäin == 'D') // Tunnistuspainikkeet sarakkeessa 4 {Num1 = luku; Luku = 0; if (key == 'A') {Serial.println ("Lisäys"); action = '+';} if (key == 'B') {Serial.println ("Vähennys"); toiminta = '-'; } if (key == 'C') {Serial.println ("Kertolasku"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); action = '/';} viive (100); }} mitätön CalculateResult () {if (action == '+') Number = Num1+Num2; jos (toiminta == '-') Luku = Num1-Num2; if (toiminta == '*') Luku = Num1*Num2; jos (toiminta == '/') Luku = Num1/Num2; } mitätön DisplayResult () {lcd.setCursor (0, 0); // aseta kohdistin sarakkeeseen 0, rivi 1 lcd.print (Num1); lcd.print (toiminta); lcd.print (Num2); jos (tulos == tosi) {lcd.print ("="); lcd.print (luku);} // Näytä tulos lcd.setCursor (0, 1); // aseta kohdistin sarakkeeseen 0, rivi 1 lcd.print (Number); // Näytä tulos}
Suositeltava:
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen
Halvin Arduino -- Pienin Arduino -- Arduino Pro Mini -- Ohjelmointi -- Arduino Neno: 6 vaihetta (kuvilla)
Halvin Arduino || Pienin Arduino || Arduino Pro Mini || Ohjelmointi || Arduino Neno: …………………………. Tilaa YouTube -kanavani saadaksesi lisää videoita ……. Tässä projektissa keskitytään kaikkien aikojen pienimpään ja halvinan arduinoon. Pienin ja halvin arduino on arduino pro mini. Se muistuttaa arduinoa