Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Hei, så nylig har jeg undersøkt hvordan jeg kan implementere forskjellige typer kode i en krets. Jeg fant ut at det å lage en kalkulator ville være en fin måte å implementere "case" og andre former for kode jeg hadde funnet interessant. Jeg har tidligere laget kalkulatorer rett fra kode, men å lage en krets for det ga meg interesse. Spesielt i denne tiden av karantene hvor jeg er på datamaskinen min nesten hele dagen. Prosjektet er å implementere matematiske operasjoner på en LCD -skjerm.
Trinn 1: Materialer
For krets:
- LCD 16 x 2
- Arduino Uno R3
- Tastatur 4x4
- Lite brødbrett
- Potensiometer (250 kΩ)
- Motstand (1kΩ)
- x26 Jumper ledninger
Trinn 2: Koble til 4x4 -tastaturet
Koble de fire radpinnene på 4x4-tastaturet til Arduino-pinnene 4-7, og koble de 4 kolonnpinnene til Arduino-pinnene 0-3.
Trinn 3: Gi strøm til brødbrettet og koble til LCD -skjermen
Jeg brukte en spenning på 5 til brødbrettet. Jeg koblet strømmen og bakken til brødbrettet. LCD -skjermen er plassert på brødbrettet og plassert slik at alle pinnene blir koblet til brødbrettet.
Trinn 4: Koble strøm og jord til LCD -skjermen
Det vil være 3 pins med jord som må kobles til LCD -skjermen. En vil bli koblet til bakken selv av LCD -en, en annen vil bli koblet til LED -en på LCD -en, og den siste vil bli koblet til RW. VCC på LCD og LED vil kreve strøm for å være tilkoblet. Strømmen til LED vil imidlertid kreve en motstand som er tilkoblet i dette tilfellet brukte jeg en 1kΩ motstand.
Trinn 5: Koble til potensiometeret
Koble potensiometeret til brødbrettet med 3 ledige kolonner. Den vil ha 3 pinner, kolonnen som inneholder terminal 1 -pinnen trenger bakken gitt til den. Kolonnen som inneholder terminal 2 -pinne trenger strøm gitt til den. Da vil viskeren ha en startkabel i kolonnen som kobles til VO på LCD -skjermen.
Trinn 6: Koble Arduino til LCD
Pins 8-13 på Arduino blir koblet til LCD-skjermen. Pins 8-11 på Arduino vil koble til henholdsvis D8 (7-4). Deretter vil pin 12 på Arduino koble til Enable of LCD, og pin 13 på Arduino vil koble til registeret på LCD -skjermen.
Trinn 7: Implementere kode
Kode vil være nødvendig for å bruke matematiske operasjoner med tastaturet og LCD -skjermen. Følgende vil være koden jeg brukte, men flere endringer kan fortsatt implementeres for å gjøre den renere og bedre. Så spill gjerne med det litt.
#include #include
LiquidCrystal lcd (13, 12, 11, 10, 9, 8);
lang først = 0;
lang sekund = 0;
dobbel totalt = 0;
int posit = 0;
char customKey;
const byte RADER = 4;
const byte COLS = 4;
forkulletaster [RADER] [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};
Tastatur tilpasset tastatur = Tastatur (makeKeymap (nøkler), rowPins, colPins, ROWS, COLS);
ugyldig oppsett () {
lcd.begin (16, 2);
lcd.setCursor (5, 0);
lcd.clear (); }
void loop () {
customKey = customKeypad.getKey ();
switch (customKey) {
sak '0' … '9':
lcd.setCursor (0, 0);
first = first * 10 + (customKey - '0');
lcd.print (første);
posit ++;
gå i stykker;
tilfelle '+':
først = (totalt! = 0? totalt: først);
lcd.setCursor (posit, 0);
lcd.print ("+");
posit ++;
second = SecondNumber ();
total = første + andre;
lcd.setCursor (1, 1);
lcd.print (totalt);
først = 0, andre = 0;
posit = 0;
gå i stykker;
sak '-':
først = (totalt! = 0? totalt: først);
lcd.setCursor (posit, 0);
lcd.print ("-");
posit ++;
second = SecondNumber ();
total = første - andre;
lcd.setCursor (1, 1);
lcd.print (totalt);
først = 0, andre = 0;
posit = 0;
gå i stykker;
tilfelle '*':
første = (totalt! = 0? totalt: første);
lcd.setCursor (posit, 0);
lcd.print ("*");
posit ++;
second = SecondNumber ();
total = første * andre;
lcd.setCursor (1, 1);
lcd.print (totalt);
først = 0, andre = 0;
posit = 0;
gå i stykker;
sak '/':
først = (totalt! = 0? totalt: først);
lcd.setCursor (posit, 0);
lcd.print ("/");
posit ++;
second = SecondNumber (); lcd.setCursor (1, 1);
andre == 0? lcd.print ("Feil"): total = (float) første / (float) andre;
lcd.print (totalt);
først = 0, andre = 0;
posit = 0;
gå i stykker;
sak 'C':
totalt = 0;
første = 0;
andre = 0;
posit = 0;
lcd.clear ();
gå i stykker; }
}
long SecondNumber () {
mens (1) {
customKey = customKeypad.getKey ();
if (customKey> = '0' && customKey <= '9') {
second = second * 10 + (customKey - '0');
lcd.setCursor (posit, 0);
lcd.print (andre); }
hvis (customKey == 'C') {
totalt = 0;
første = 0;
andre = 0;
posit = 0;
lcd.clear ();
gå i stykker; }
if (customKey == '=') {
lcd.setCursor (0, 1);
lcd.print ("=");
posit = totalt;
lcd.clear ();
lcd.setCursor (0, 1);
lcd.print ("=");
gå i stykker; }
}
returner andre;}
Trinn 8: Resultat
Jeg håper dere alle likte dette lærerikt. Takk for at du leser!
Saim.