Proses manufaktur
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Di akhir proyek ini, Anda akan mengetahui cara menggunakan LCD dan Keypad 16x2 dengan Arduino dan juga betapa mudahnya memprogramnya menggunakan pustaka yang tersedia. Anda juga akan memahami cara memprogram Arduino Anda untuk menyelesaikan tugas tertentu.
Bahan yang Dibutuhkan:
H0
Pin pertama keyboard
H1
Pin ke-2 pada keyboard
D2
Pin ke-3 pada keyboard
D3
Pin keyboard ke-4
D4
Pin keyboard ke-5
D5
Pin keyboard ke-6
D6
Pin keyboard ke-7
D7
Pin keyboard ke-8
H8
Daftar pilih pin LCD (pin 4)
D9
Aktifkan pin LCD (pin 6)
H10
Pin data 4 (pin 11)
H11
Pin data 4 (pin 11)
H12
Pin data 4 (pin 11)
H13
Pin data 4 (pin 11)
+5V
Terhubung ke pin Vdd LCD (pin 2)
Tanah
Terhubung ke Vss, Vee dan RW pin LCD (pin 1, 3 dan 5)
Beberapa papan Arduino mungkin menunjukkan kesalahan saat mengunggah program jika ada yang terhubung ke pin 0 dan pin1, jadi jika Anda mengalaminya lepaskan saja tombol saat mengunggah program.
Setelah koneksi Anda selesai, perangkat keras Anda akan terlihat seperti di bawah ini
* * Program kalkulator Keypad Arduino */#include//File header untuk LCD dari https://www.arduino.cc/en/Reference/LiquidCrystal#include //Header file untuk Keypad dari https://github.com/Chris--A/Keypadconst byte ROWS =4; // Empat barisconst byte COLS =4; // Tiga kolom// Tentukan kunci Keymapchar[ROWS][COLS] ={ {'7','8','9','D'}, {'4','5','6',' C'}, {'1','2','3','B'}, {'*','0','#','A'}};byte rowPins[ROWS] ={ 0, 1, 2, 3 };// Hubungkan keypad ROW0, ROW1, ROW2 dan ROW3 ke pin Arduino ini.byte colPins[COLS] ={ 4, 5, 6, 7 }; // Hubungkan keypad COL0, COL1 dan COL2 ke pin Arduino ini. Keypad kpd =Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Buat Keypadconst int rs =8, en =9, d4 =10, d5 =11, d6 =12, d7 =13; //Menyematkan LCD yang terhubungLiquidCrystal lcd(rs, en, d4, d5, d6, d7); Nomor panjang1,Num2,Nomor; kunci karakter, tindakan; hasil boolean =salah; void setup() { lcd.begin(16, 2); //Kami menggunakan layar LCD 16*2 lcd.print("Kalkulator DIY"); //Menampilkan pesan intro lcd.setCursor(0, 1); // atur kursor ke kolom 0, baris 1 lcd.print("-CircuitDigest"); //Menampilkan penundaan pesan intro(2000); //Tunggu tampilan menampilkan info lcd.clear(); //Lalu bersihkan}void loop() { key =kpd.getKey(); //menyimpan nilai kunci yang ditekan dalam charif (key!=NO_KEY)DetectButtons();if (result==true)CalculateResult();DisplayResult(); }void DetectButtons(){ lcd.clear(); //Kemudian bersihkan if (key=='*') //Jika tombol cancel ditekan {Serial.println("Button Cancel"); Angka=Bilangan1=Bilangan2=0; result=false;} if (key =='1') //Jika Tombol 1 ditekan {Serial.println ("Tombol 1"); if (Angka==0) Angka=1; else Angka =(Nomor*10) + 1; //Ditekan dua kali } if (tombol =='4') //Jika Tombol 4 ditekan {Serial.println ("Tombol 4"); if (Angka==0) Angka=4; else Angka =(Nomor*10) + 4; //Ditekan dua kali } if (key =='7') //Jika Tombol 7 ditekan {Serial.println ("Button 7"); if (Angka==0) Angka=7; else Angka =(Nomor*10) + 7; //Tekan dua kali } if (kunci =='0') {Serial.println ("Tombol 0"); //Tombol 0 Ditekan jika (Angka==0) Angka=0; else Angka =(Nomor*10) + 0; //Tekan dua kali } if (tombol =='2') //Tombol 2 Ditekan {Serial.println ("Tombol 2"); if (Angka==0) Angka=2; else Angka =(Nomor*10) + 2; //Tekan dua kali } if (kunci =='5') {Serial.println ("Tombol 5"); if (Angka==0) Angka=5; else Angka =(Nomor*10) + 5; //Tekan dua kali } if (kunci =='8') {Serial.println ("Tombol 8"); if (Angka==0) Angka=8; else Angka =(Nomor*10) + 8; //Tekan dua kali } if (kunci =='#') {Serial.println ("Tombol Sama"); Angka2=Angka; hasil =benar; } if (kunci =='3') {Serial.println ("Tombol 3"); if (Angka==0) Angka=3; else Angka =(Nomor*10) + 3; //Tekan dua kali } if (kunci =='6') {Serial.println ("Tombol 6"); if (Angka==0) Angka=6; else Angka =(Nomor*10) + 6; //Tekan dua kali } if (kunci =='9') {Serial.println ("Tombol 9"); if (Angka==0) Angka=9; else Angka =(Nomor*10) + 9; //Tekan dua kali } if (key =='A' || key =='B' || key =='C' || key =='D') //Mendeteksi Tombol pada Kolom 4 { Num1 =Number; Nomor =0; if (kunci =='A') {Serial.println ("Penambahan"); aksi ='+';} if (kunci =='B') {Serial.println ("Pengurangan"); tindakan ='-'; } if (kunci =='C') {Serial.println ("Perkalian"); aksi ='*';} if (kunci =='D') {Serial.println ("Pengembangan"); tindakan ='/';} delay(100); } }void HitungResult(){ if (action=='+') Number =Num1+Num2; if (aksi=='-') Angka =Angka1-Num2; if (aksi=='*') Angka =Angka1*Num2; if (aksi=='/') Angka =Angka1/Bilangan2; }void DisplayResult(){ lcd.setCursor(0, 0); // atur kursor ke kolom 0, baris 1 lcd.print(Num1); lcd.print(aksi); lcd.print(Bilangan2); if (hasil==benar) {lcd.print(" ="); lcd.print(Number);} //Menampilkan hasil lcd.setCursor(0, 1); // atur kursor ke kolom 0, baris 1 lcd.print(Number); //Menampilkan hasilnya}
Proses manufaktur
Komponen dan persediaan Modul WiFi Baut IoT Baut × 1 Arduino UNO × 1 Arduino Nano R3 × 1 nRF24l01 × 2 Motor DC, 12 V × 2 DFRobot Pengelola Tenaga Surya Untuk Baterai Asam Timbal 12V × 1 SparkFun Dual H-Bridge driver motor L298
Komponen dan persediaan Arduino Mega 2560 × 1 Papan Ethernet Arduino × 1 LCD 4x20 dengan antarmuka I2C × 1 Sensor Suhu DHT22 × 1 DS3231 RTC × 1 Jarak ultrasonik HC-SR04 × 1 PCB fabrikasi khusus Taman OSH × 1 Tentang proyek i
Komponen dan persediaan Arduino UNO × 1 SparkFun CAN-BUS Shield × 1 Male-Header 36 Posisi 1 Baris- Panjang (0,1) untuk perisai CAN-Bus SparkFun × 1 Kabel SparkFun OBD-II ke DSUB-9 ditujukan untuk pembuat internasional × 1 Kabel OBD-II ke DSUB-9 ditujukan
Komponen dan persediaan Arduino UNO × 1 Pengontrol Gerakan Lompatan × 1 LED (generik) × 4 Kabel jumper (generik) × 10 Aplikasi dan layanan online Arduino IDE Tentang proyek ini Aplikasi ini menggunakan LeapMotion dan Arduino Uno