Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Hei, așa că recent am explorat cum să implementez diferite tipuri de cod într-un circuit. Am descoperit că realizarea unui calculator ar fi o modalitate excelentă de a implementa „caz” și alte forme de cod pe care le-am găsit interesante. În trecut am făcut calculatoare direct din cod, dar crearea unui circuit pentru acesta mi-a dat interes. Mai ales în această perioadă de carantină, unde sunt pe computer aproape toată ziua. Proiectul este de a implementa operații matematice pe un ecran LCD.
Pasul 1: Materiale
Pentru circuit:
- LCD 16 x 2
- Arduino Uno R3
- Tastatură 4x4
- Mică panou
- Potențiometru (250 kΩ)
- Rezistor (1kΩ)
- x26 fire de jumper
Pasul 2: Conectarea tastaturii 4x4
Conectați cei 4 pini de rând de pe tastatura 4x4 la pinii Arduino 4-7 și conectați cei 4 pini de coloană la pinii Arduino 0-3.
Pasul 3: furnizați alimentare panoului și conectați ecranul LCD
Am folosit o tensiune de alimentare de 5 pentru panou. Am conectat alimentarea și împământarea la panou. Ecranul LCD este așezat pe panou și așezat astfel încât toți pinii să fie conectați la panou.
Pasul 4: Conectați alimentarea și împământarea la ecranul LCD
Pentru conectarea la LCD vor fi necesari 3 pini de masă. Unul va fi conectat la pământ de sine-ul său LCD, altul va fi conectat la LED-ul LCD, iar ultimul va fi conectat la RW. VCC-ul LCD și led-ul vor necesita conectarea la alimentare. Cu toate acestea, puterea pentru LED va necesita un rezistor conectat în acest caz, am folosit un rezistor de 1kΩ.
Pasul 5: Conectarea potențiometrului
Conectați potențiometrul la panoul cu 3 coloane libere. Va avea 3 pini, coloana care conține terminalul 1 pini va avea nevoie de pământ. Coloana care conține pinul 2 al terminalului va avea nevoie de energie. Apoi ștergătorul va avea un cablu jumper în coloana sa, care se conectează la VO al ecranului LCD.
Pasul 6: Conectarea Arduino la LCD
Pinii 8-13 de pe Arduino vor fi conectați la LCD. Pinii 8-11 de pe Arduino se vor conecta la D8 (7-4), respectiv. Apoi pinul 12 al Arduino se va conecta cu Enable of the LCD, iar pinul 13 de pe Arduino se va conecta la registrul LCD-ului.
Pasul 7: Implementați codul
Va fi necesar cod pentru a utiliza operații matematice cu tastatura și LCD. Următorul va fi codul pe care l-am folosit, totuși mai multe modificări pot fi implementate pentru a-l face mai curat și mai bun. Așadar, nu ezitați să vă jucați puțin cu el.
#include #include
LiquidCrystal lcd (13, 12, 11, 10, 9, 8);
lung primul = 0;
secunda lunga = 0;
total dublu = 0;
int pozitiv = 0;
char customKey;
octet const ROWS = 4;
octet const COLS = 4;
chei de caractere [ROWS] [COLS] = {
{'1', '2', '3', '/'}, {'4', '5', '6', '*'}, {'7', '8', '9', '-'}, {'C', '0', '=', '+'}};
byte rowPins [ROWS] = {7, 6, 5, 4};
octet colPins [COLS] = {3, 2, 1, 0};
Tastatură customKeypad = Tastatură (makeKeymap (taste), rowPins, colPins, ROWS, COLS);
configurare nulă () {
lcd.inceput (16, 2);
lcd.setCursor (5, 0);
lcd.clear (); }
bucla nulă () {
customKey = customKeypad.getKey ();
switch (customKey) {
cazul „0”… „9”:
lcd.setCursor (0, 0);
first = first * 10 + (customKey - '0');
lcd.print (primul);
pozitiv ++;
pauză;
cazul '+':
first = (total! = 0? total: first);
lcd.setCursor (pozitiv, 0);
lcd.print ("+");
pozitiv ++;
al doilea = Numărul al doilea ();
total = primul + al doilea;
lcd.setCursor (1, 1);
lcd.print (total);
primul = 0, al doilea = 0;
pozitiv = 0;
pauză;
caz '-':
first = (total! = 0? total: first);
lcd.setCursor (pozitiv, 0);
lcd.print ("-");
pozitiv ++;
al doilea = Numărul al doilea ();
total = primul - al doilea;
lcd.setCursor (1, 1);
lcd.print (total);
primul = 0, al doilea = 0;
pozitiv = 0;
pauză;
cazul '*':
first = (total! = 0? total: first);
lcd.setCursor (pozitiv, 0);
lcd.print ("*");
pozitiv ++;
al doilea = Numărul al doilea ();
total = primul * al doilea;
lcd.setCursor (1, 1);
lcd.print (total);
primul = 0, al doilea = 0;
pozitiv = 0;
pauză;
caz '/':
first = (total! = 0? total: first);
lcd.setCursor (pozitiv, 0);
lcd.print ("/");
pozitiv ++;
al doilea = Numărul al doilea (); lcd.setCursor (1, 1);
al doilea == 0? lcd.print ("Eroare"): total = (float) primul / (float) al doilea;
lcd.print (total);
primul = 0, al doilea = 0;
pozitiv = 0;
pauză;
cazul „C”:
total = 0;
primul = 0;
al doilea = 0;
pozitiv = 0;
lcd.clear ();
pauză; }
}
lung al doilea număr () {
în timp ce (1) {
customKey = customKeypad.getKey ();
if (customKey> = '0' && customKey <= '9') {
second = second * 10 + (customKey - '0');
lcd.setCursor (pozitiv, 0);
lcd.print (al doilea); }
if (customKey == 'C') {
total = 0;
primul = 0;
al doilea = 0;
pozitiv = 0;
lcd.clear ();
pauză; }
if (customKey == '=') {
lcd.setCursor (0, 1);
lcd.print ("=");
pozit = total;
lcd.clear ();
lcd.setCursor (0, 1);
lcd.print ("=");
pauză; }
}
întoarce-te al doilea;}
Pasul 8: Rezultat
Sper că v-ați bucurat cu toții de acest instructabil. Mulțumesc că ai citit!
Saim.