Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Hej, pred kratkim sem raziskal, kako v vezje implementirati različne vrste kode. Ugotovil sem, da bi bila izdelava kalkulatorja odličen način za implementacijo "case" in drugih oblik kode, ki so se mi zdele zanimive. V preteklosti sem kalkulatorje izdeloval neposredno iz kode, toda izdelava vezja zanj me je zanimala. Še posebej v tem času karantene, kjer sem skoraj ves dan za računalnikom. Projekt je namenjen izvajanju matematičnih operacij na LCD zaslonu.
1. korak: Materiali
Za vezje:
- LCD 16 x 2
- Arduino Uno R3
- Tipkovnica 4x4
- Majhna deska
- Potenciometer (250 kΩ)
- Upor (1 kΩ)
- x26 Mostične žice
2. korak: Priključitev tipkovnice 4x4
4-vrstične nožice na tipkovnici 4x4 povežite z zatiči Arduino 4-7 in zatiči za 4 stolpce povežite z zatiči Arduino 0-3.
3. korak: Napajajte ploščico in priključite LCD
Za ploščo sem uporabil napetost 5. Napajanje in ozemljitev sem priključil na ploščo. LCD je nameščen na ploščo in postavljen tako, da se vsi njegovi zatiči povežejo s ploščo.
4. korak: Priključite napajanje in ozemljitev na LCD
Za priključitev na LCD -zaslon bodo potrebni 3 zatiči ozemljitve. Eden bo priključen na tla sam od sebe, drugi bo povezan z LED diodo LCD, zadnji pa bo povezan z RW. VCC LCD in LED bosta za priključitev napajanja potrebovala napajanje. Za napajanje LED bo potreben priključen upor, v tem primeru sem uporabil upor 1kΩ.
5. korak: Priključitev potenciometra
Potenciometer priključite na ploščo s 3 prostimi stolpci. Imel bo 3 zatiče, za stolpec, ki vsebuje priključek 1, pa je potrebno ozemljitev. Stolpec, ki vsebuje priključek 2, potrebuje napajanje. Potem bo brisalnik v svojem stolpcu imel mostično žico, ki se poveže z VO LCD -ja.
6. korak: Arduino priključite na LCD
Zatiči 8-13 na Arduinu bodo povezani z LCD. Zatiči 8-11 na Arduinu se bodo povezali z D8 (7-4). Nato se bo pin 12 na Arduinu povezal z omogočanjem LCD -ja, pin 13 na Arduinu pa se bo povezal z registrom LCD -ja.
7. korak: Izvedite kodo
Za uporabo matematičnih operacij s tipkovnico in LCD -jem bo potrebna koda. Spodaj bo koda, ki sem jo uporabil, vendar lahko še vedno izvedem več sprememb, da bo čistejša in boljša. Zato se z njim malo igrajte.
#include #include
LCD tekoči kristal (13, 12, 11, 10, 9, 8);
dolga prva = 0;
dolga sekunda = 0;
dvojno skupaj = 0;
int posit = 0;
char customKey;
const byte ROWS = 4;
const bajt COLS = 4;
ključi char [ROWS] [COLS] = {
{'1', '2', '3', '/'}, {'4', '5', '6', '*'}, {'7', '8', '9', '-'}, {'C', '0', '=', '+'}};
byte rowPins [ROWS] = {7, 6, 5, 4};
bajt colPins [COLS] = {3, 2, 1, 0};
Tipkovnica customKeypad = Tipkovnica (makeKeymap (tipke), rowPins, colPins, ROWS, COLS);
void setup () {
lcd.begin (16, 2);
lcd.setCursor (5, 0);
lcd.clear (); }
void loop () {
customKey = customKeypad.getKey ();
switch (customKey) {
primer '0' … '9':
lcd.setCursor (0, 0);
prvi = prvi * 10 + (customKey - '0');
lcd.print (prvi);
posit ++;
zlom;
primer '+':
prvi = (skupaj! = 0? skupaj: prvi);
lcd.setCursor (pozicija, 0);
lcd.print ("+");
posit ++;
second = SecondNumber ();
skupaj = prvi + drugi;
lcd.setCursor (1, 1);
lcd.print (skupaj);
prvi = 0, drugi = 0;
pozit = 0;
zlom;
Ovitek '-':
prvi = (skupaj! = 0? skupaj: prvi);
lcd.setCursor (pozicija, 0);
lcd.print ("-");
posit ++;
second = SecondNumber ();
skupaj = prvi - drugi;
lcd.setCursor (1, 1);
lcd.print (skupaj);
prvi = 0, drugi = 0;
pozit = 0;
zlom;
Ovitek '*':
prvi = (skupaj! = 0? skupaj: prvi);
lcd.setCursor (pozicija, 0);
lcd.print ("*");
posit ++;
second = SecondNumber ();
skupaj = prva * druga;
lcd.setCursor (1, 1);
lcd.print (skupaj);
prvi = 0, drugi = 0;
pozit = 0;
zlom;
Ovitek '/':
prvi = (skupaj! = 0? skupaj: prvi);
lcd.setCursor (pozicija, 0);
lcd.print ("/");
posit ++;
second = SecondNumber (); lcd.setCursor (1, 1);
drugi == 0? lcd.print ("Napaka"): skupaj = najprej (float) najprej / (float) sekunda;
lcd.print (skupaj);
prvi = 0, drugi = 0;
pozit = 0;
zlom;
primer 'C':
skupaj = 0;
prvi = 0;
drugi = 0;
pozit = 0;
lcd.clear ();
zlom; }
}
long SecondNumber () {
medtem ko (1) {
customKey = customKeypad.getKey ();
if (customKey> = '0' && customKey <= '9') {
drugo = drugo * 10 + (customKey - '0');
lcd.setCursor (pozicija, 0);
lcd.print (drugi); }
if (customKey == 'C') {
skupaj = 0;
prvi = 0;
drugi = 0;
pozit = 0;
lcd.clear ();
zlom; }
if (customKey == '=') {
lcd.setCursor (0, 1);
lcd.print ("=");
pozit = skupaj;
lcd.clear ();
lcd.setCursor (0, 1);
lcd.print ("=");
zlom; }
}
vrni se drugo;}
8. korak: Rezultat
Upam, da ste vsi uživali v tem navodilu. Hvala za branje!
Saim.