Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Hey, kaya kamakailan lamang ay pagtuklas ko kung paano ipatupad ang iba't ibang mga uri ng code sa isang circuit. Nalaman ko na ang paggawa ng isang calculator ay magiging isang mahusay na paraan upang ipatupad ang "kaso" at iba pang mga form ng code na nakita kong kawili-wili. Mayroon akong nakaraang mga calculator na diretso mula sa code, ngunit ang paggawa ng isang circuit para dito ay nagbigay sa akin ng interes. Lalo na sa oras na ito ng kuwarentenas kung nasaan ako sa aking computer halos buong araw. Ang proyekto ay upang ipatupad ang mga pagpapatakbo ng matematika sa isang LCD screen.
Hakbang 1: Mga Kagamitan
Para sa Circuit:
- LCD 16 x 2
- Arduino Uno R3
- Keypad 4x4
- Maliit na Breadboard
- Potensyomiter (250 kΩ)
- Resistor (1kΩ)
- x26 Mga wire ng Jumper
Hakbang 2: Pagkonekta sa 4x4 Keypad
Ikonekta ang 4 na mga row pin sa 4x4 keypad sa Arduino pin 4-7, at ikonekta ang 4 na mga pin ng haligi sa mga pin ng Arduino 0-3.
Hakbang 3: Magbigay ng Lakas sa Breadboard at Ikonekta ang LCD
Gumamit ako ng boltahe ng kuryente na 5 para sa breadboard. Ikinonekta ko ang lakas at lupa sa breadboard. Ang LCD ay nakalagay sa breadboard, at inilagay sa gayon ang lahat ng mga pin nito ay nakakakonekta sa breadboard.
Hakbang 4: Ikonekta ang Lakas at Ground sa LCD
Magkakaroon ng 3 mga pin ng lupa na kinakailangan upang maiugnay sa LCD. Ang isa ay makokonekta sa lupa sa sarili nitong LCD, ang isa pa ay makakonekta sa LED ng LCD, at ang huli ay makakonekta sa RW. Ang VCC ng LCD at nangunguna ay mangangailangan ng lakas upang maiugnay. Gayunpaman ang kapangyarihan para sa LED ay mangangailangan ng isang risistor na konektado sa kasong ito Gumamit ako ng isang 1kΩ risistor.
Hakbang 5: Pagkonekta sa Potentiometer
Ikonekta ang potensyomiter sa breadboard na may 3 mga libreng haligi. Magkakaroon ito ng 3 mga pin, ang haligi na naglalaman ng terminal na 1 pin ay mangangailangan ng lupa na ibinigay dito. Ang haligi na naglalaman ng terminal 2 pin ay mangangailangan ng lakas na ibinigay dito. Pagkatapos ang wiper ay magkakaroon ng jumper wire sa haligi nito na kumokonekta sa VO ng LCD.
Hakbang 6: Pagkonekta sa Arduino sa LCD
Ang mga pin na 8-13 sa Arduino ay makakonekta sa LCD. Ang mga pin na 8-11 sa Arduino ay kumokonekta sa D8 (7-4) ayon sa pagkakabanggit. Pagkatapos ang pin 12 ng Arduino ay makakonekta sa Paganahin ang LCD, at ang pin 13 sa Arduino ay kumokonekta sa rehistro ng LCD.
Hakbang 7: Ipatupad ang Code
Kakailanganin ang code upang magamit ang mga pagpapatakbo ng matematika gamit ang keypad at LCD. Ang sumusunod ay ang code na ginamit ko, subalit ang maramihang mga pagbabago ay maaari pa rin akong ipatupad upang gawing mas malinis at mas mahusay ito. Kaya huwag mag-atubiling maglaro dito nang kaunti.
# isama ang # isama
LiquidCrystal lcd (13, 12, 11, 10, 9, 8);
mahaba muna = 0;
mahabang segundo = 0;
doble na kabuuan = 0;
int posit = 0;
char pasadyaKey;
const byte ROWS = 4;
const byte COLS = 4;
char key [ROWS] [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};
Keypad customKeypad = Keypad (makeKeymap (key), rowPins, colPins, ROWS, COLS);
walang bisa ang pag-setup () {
lcd.begin (16, 2);
lcd.setCursor (5, 0);
lcd.clear (); }
void loop () {
pasadyaKey = pasadyaKeypad.getKey ();
lumipat (customKey) {
case '0'… '9':
lcd.setCursor (0, 0);
una = una * 10 + (customKey - '0');
lcd.print (una);
posit ++;
pahinga;
kaso '+':
una = (kabuuan! = 0? kabuuan: una);
lcd.setCursor (posit, 0);
lcd.print ("+");
posit ++;
pangalawa = PangalawaBilang ();
kabuuan = una + segundo;
lcd.setCursor (1, 1);
lcd.print (kabuuang);
una = 0, pangalawa = 0;
posit = 0;
pahinga;
kaso '-':
una = (kabuuan! = 0? kabuuan: una);
lcd.setCursor (posit, 0);
lcd.print ("-");
posit ++;
pangalawa = PangalawaBilang ();
kabuuan = una - pangalawa;
lcd.setCursor (1, 1);
lcd.print (kabuuang);
una = 0, pangalawa = 0;
posit = 0;
pahinga;
kaso '*':
una = (kabuuan! = 0? kabuuan: una);
lcd.setCursor (posit, 0);
lcd.print ("*");
posit ++;
pangalawa = PangalawaBilang ();
kabuuan = una * segundo;
lcd.setCursor (1, 1);
lcd.print (kabuuang);
una = 0, pangalawa = 0;
posit = 0;
pahinga;
kaso '/':
una = (kabuuan! = 0? kabuuan: una);
lcd.setCursor (posit, 0);
lcd.print ("/");
posit ++;
pangalawa = PangalawaBilang (); lcd.setCursor (1, 1);
pangalawa == 0? lcd.print ("Error"): total = (float) muna / (float) pangalawa;
lcd.print (kabuuang);
una = 0, pangalawa = 0;
posit = 0;
pahinga;
kaso 'C':
kabuuan = 0;
una = 0;
pangalawa = 0;
posit = 0;
lcd.clear ();
pahinga; }
}
mahabang SecondNumber () {
habang (1) {
pasadyaKey = pasadyaKeypad.getKey ();
kung (customKey> = '0' && customKey <= '9') {
pangalawa = pangalawa * 10 + (customKey - '0');
lcd.setCursor (posit, 0);
lcd.print (pangalawa); }
kung (customKey == 'C') {
kabuuan = 0;
una = 0;
pangalawa = 0;
posit = 0;
lcd.clear ();
pahinga; }
kung (customKey == '=') {
lcd.setCursor (0, 1);
lcd.print ("=");
posit = kabuuan;
lcd.clear ();
lcd.setCursor (0, 1);
lcd.print ("=");
pahinga; }
}
ibalik ang pangalawa;}
Hakbang 8: Resulta
Inaasahan kong nasiyahan kayong lahat sa pagtuturo na ito. Salamat sa pagbabasa!
Saim.