
Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04

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.
Recomandat:
Camera Gimbal imprimată 3D (concurs Tinkercad): 6 pași

Gimbal pentru cameră imprimată 3D (concurs Tinkercad): Bună ziua, acesta este un cardan pentru cameră pe care l-am proiectat în Tinkercad. Gimbalul principal a fost realizat din acest mâner de borcan și un gimbal cu cinci inele / giroscop pe care parcă nu-l mai găsesc. Designul Tinkercad poate fi găsit aici. Acest lucru a fost conceput pentru a funcționa pe un Powers
Robot de desen cu Adafruit Shield (concurs Make It Move): 10 pași (cu imagini)

Robot de desen cu Adafruit Shield (concurs Make It Move): Bună ziua numele mele Jacob și locuim în Marea Britanie. În acest proiect voi construi un robot care să atragă pentru tine. * Sunt sigur că mulți dintre voi vor să o vadă, așa că, dacă doriți să știți, vă rugăm să treceți direct la al doilea până la ultimul pas, dar asigurați-vă că vă întoarceți aici pentru a vedea
DIY VR Treadmill- Basys3 FPGA-Concurs Digilent: 3 pași

DIY VR Treadmill- Basys3 FPGA-Digilent Concurs: Doriți să construiți o bandă de rulare VR pe care să vă puteți rula aplicațiile desktop și jocurile? Apoi ați ajuns la locul potrivit! În jocurile convenționale, utilizați mouse-ul și tastatura pentru a interacționa cu mediul. Prin urmare, trebuie să trimitem
Sertare de recoltă - Concurs NASA care crește dincolo de Pământ: 5 pași (cu imagini)

Sertare de recoltă - Concursul NASA Crește dincolo de Pământ: Rezumat: La bordul stației spațiale internaționale, astronauții nu au prea mult spațiu pentru cultivarea alimentelor. Această grădină hidroponică este proiectată să funcționeze eficient folosind cantitatea minimă de spațiu pentru recoltarea a 30 de plante într-un program rotativ într-un
Brațul robotului cu servomotor RC controlat de Fpga - Concurs Digilent: 3 pași

Brațul robotului cu servomotor RC controlat de Fpga - Concurs Digilent: brațul robotului cu servomotor controlat FPGA Scopul acestui proiect este de a crea un sistem programabil care poate efectua operațiuni de lipire pe placa de perfecționare. Sistemul se bazează pe placa de dezvoltare Digilent Basys3 și va fi capabil să lipească