Bagaimana Cara Membuat Kalkulator Berbasis Arduino?
Membuat proyek menggunakan Arduino Uno sebagai papan mikrokontroler sangat menyenangkan jika Anda mengerjakan proyek Tertanam. Jika Anda ingin membuat kalkulator sederhana yang mampu melakukan semua operasi aritmatika dasar seperti penjumlahan, pengurangan, perkalian, dan pembagian, Anda dapat membuatnya sekarang juga jika Anda memiliki pengetahuan tentang papan Arduino. Jadi dalam proyek ini, kita akan menggunakan Arduino Uno untuk membuat kalkulator sederhana. Kami akan mengintegrasikan Keypad 4x4 untuk mengirim input dan LCD 16x2 untuk melihat output operasi kami.
Jadi, karena kita sekarang mengetahui abstrak dasar dari proyek kita yang ingin kita capai pada akhirnya, mari kita lanjutkan dan mulai mengumpulkan informasi lebih lanjut untuk mulai mengerjakan proyek ini.
Bagaimana Cara Membuat Kalkulator Sederhana Di Arduino?
Langkah 1: Mengumpulkan Komponen
Sebelum memulai proyek apa pun, langkah awal adalah membuat daftar lengkap dari semua komponen yang akan digunakan dalam proyek. Ini adalah pendekatan yang sempurna karena menghemat banyak waktu dan mencegah kami terjebak di tengah-tengah proyek. Jadi, daftar lengkap dari semua komponen yang dengan mudah tersedia di pasar diberikan di bawah ini:
Langkah 2: Bekerja
Karena sekarang kita memiliki semua komponen yang akan kita gunakan dalam proyek ini, mari kita mulai mengerjakan proyek ini. Kami akan menggunakan Arduino Uno sebagai papan mikrokontroler. Kode akan ditulis dan dibakar di papan ini yang akan memberi tahu papan operasi apa yang harus dilakukan dan bagaimana. Papan tombol 4 × 4 akan digunakan untuk memasukkan data numerik yang akan dihitung di kalkulator. Mikrokontroler akan melakukan semua operasi aritmatika dan kemudian mengirimkan keluarannya ke LCD 16x2.
Sebelum menghubungkan perangkat keras, ada baiknya untuk mensimulasikan dan menguji kode dan koneksi rangkaian pada perangkat lunak komputer. Kami akan menggunakan Proteusuntuk tujuan ini. Setelah menguji sirkuit dan memastikan bahwa itu berfungsi dengan baik pada perangkat lunak, kami akan beralih ke perangkat keras.
Langkah 3: Simulasi Sirkuit
Sebelum mengimplementasikan proyek ini pada perangkat keras, kami akan mensimulasikannya di Proteus terlebih dahulu untuk memeriksa apakah kodenya berfungsi dengan baik atau tidak. Jika Anda belum pernah mengerjakan Proteus sebelumnya, tidak ada yang perlu dikhawatirkan. Untuk mensimulasikan rangkaian pada perangkat lunak, melalui langkah-langkah berikut.
- Jika Anda belum menginstal software ini pada komputer Anda, klik di sini untuk mendownloadnya.
- Setelah perangkat lunak terinstal, buka perangkat lunak dan buat proyek baru dengan mengklik ISIS tombol.
- Proteus awalnya tidak memiliki pustaka Arduino. Kami harus memasukkannya. Perpustakaan Arduino untuk proteus dilampirkan bersama dengan kode di tautan yang diberikan di bawah ini. Salin file dan tempelkan C: \ ProgramData \ Labcenter Electronics \ Proteus 8 Professional \ PERPUSTAKAAN.
- Skema baru baru saja dibuka. Klik pada P.tombol untuk membuka menu komponen.
- Sebuah kotak akan muncul berisi bilah pencarian di sudut kiri atas. Cari komponen yang perlu Anda gunakan dalam proyek.
- Setelah memilih semua komponen, Anda akan melihat daftar lengkap di sisi kiri layar.
- Buatlah diagram sirkuit seperti gambar di bawah ini.
- Sekarang buka file Arduino yang diberikan di bawah ini. Di menu Sketch, klik Ekspor Biner Terkompilasi. Ini akan menghasilkan file .hex yang akan digunakan dalam simulasi Arduino di Proteus.
- Ini adalah dua file yang akan dibuat. Kami akan menggunakan yang pertama dalam simulasi kami.
- Sekarang setelah file HEX dibuat, buka proteus dan klik dua kali pada papan mikrokontroler. Sebuah kotak akan muncul untuk mengedit komponen. Unggah file hex di sana.
Karena kode berhasil diunggah di sini, Anda dapat menguji kalkulator dengan melakukan beberapa operasi aritmatika dan mengkonfirmasi hasilnya.
Langkah 4: Merakit Sirkuit
Karena rangkaian disimulasikan dan kode berfungsi dengan baik di atasnya. Mari kita bergerak selangkah lebih maju dan merakit semua komponen bersama-sama di Veroboard untuk membuat produk akhir. Ikuti langkah-langkah berikut untuk membuat semua koneksi di sirkuit.
- Total ada 8 pin pada keypad 4x4 bernama A, B, C, D, 1, 2, 3, dan 4. Pastikan Anda menghubungkan pin A, B. C dan D ke pin0, pin1, pin2, dan pin3 dari board Arduino Uno dan pin 1, 2, 3, dan 4 pin keypad ke pin4, pin5, pin6 dan pin7 dari board Arduino Uno masing-masing.
- Sekarang Hubungkan pin D4, D5, D6 dan D7 dari LCD 16x2 ke pin10, pin11, pin12, dan pin13 dari papan Arduino masing-masing.
- Sekarang hubungkan KEMBALI dan Epin LCD ke pin8 dan pin9 dari papan Arduino masing-masing.
- Pendek VSS, VEE dan RW pin LCD dan hubungkan ke ground Arduino Uno.
- Nyalakan LCD dengan menghubungkan VDD pin LCD ke 5V dari Arduino UNO.
Langkah 5: Memulai Arduino
Arduino IDE adalah perangkat lunak tempat Anda dapat menulis, men-debug, dan mengompilasi kode yang akan dijalankan pada mikrokontroler Arduino. Kode ini akan diunggah ke mikrokontroler melalui IDE ini. JIKA Anda tidak memiliki pengalaman sebelumnya dengan perangkat lunak ini, tidak ada yang perlu dikhawatirkan karena seluruh prosedur untuk menggunakan perangkat lunak ini diberikan di bawah ini.
- Jika Anda belum memasang perangkat lunak tersebut, klik di sini untuk mengunduh perangkat lunak tersebut.
- Hubungkan papan Arduino Anda ke PC dan buka Control Panel. Klik Perangkat keras dan Suara.Sekarang buka Perangkat dan Printer dan temukan port tempat papan Anda terhubung. Porta ini berbeda di komputer lain.
- Sekarang buka Arduino IDE. Dari Alat, atur papan Arduino ke Arduino / Genuino UNO.
- Dari menu Alat yang sama, setel nomor port. Nomor port ini harus sama persis dengan nomor port yang diamati sebelumnya di panel kontrol.
- Sekarang, untuk menggunakan keypad 4x4 dan LCD 16x2 dengan Arduino IDE, kita perlu mengimpor pustaka khusus yang memungkinkan kita untuk membakar kode di Arduino Uno dan menggunakannya. kedua perpustakaan ini dilampirkan dalam tautan yang diberikan di bawah ini. Untuk memasukkan perpustakaan, goto Sketch> Include Library> Add ZIP Library. Sebuah kotak akan muncul. Temukan folder ZIP di komputer Anda dan klik OK untuk memasukkan folder tersebut. Perpustakaan ini dilampirkan bersama dengan kode pada tautan di bawah ini.
- Unduh kode yang terlampir di bawah ini dan salin ke IDE Anda. Untuk mengunggah kode, klik tombol unggah.
Untuk mengunduh kodenya, klik di sini.
Langkah 6: Memahami Kode
Kode tersebut dikomentari dengan sangat baik. Tapi tetap, untuk kemudahan Anda, dijelaskan di bawah ini.
1. Pada awalnya, file header ditulis untuk menyertakan perpustakaan sehingga keypad dan LCD dapat dihubungkan dengan papan Arduino Uno.
#include// Sertakan file Header untuk LCD #include // Sertakan file Header untuk Keypad
2. Setelah itu, dua variabel dideklarasikan untuk menampung jumlah baris dan kolom keypad. Peta kunci memberi tahu kita tentang urutan tombol yang ada di keypad.
const byte ROWS = 4; // Empat baris keypad const byte COLS = 4; // Tiga kolom keypad // Menentukan kunci karakter Keymap [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', ' 6 ',' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {' * ',' 0 ',' # ',' A '}};
3. Setelah itu ditentukan baris dan kolom mana dari keypad yang dihubungkan ke pin arduino mana. Setelah semuanya selesai, keypad dapat dibuat dengan memetakan semua pinnya.
byte rowPins [ROWS] = {0, 1, 2, 3}; // Hubungkan keypad ROW0, ROW1, ROW2 dan ROW3 ke pin Arduino ini masing-masing 0,1,2,3. byte colPins [COLS] = {4, 5, 6, 7}; // Hubungkan keypad COL0, COL1 dan COL2 ke pin Arduino ini masing-masing 4,5,67. Keypad kpd = Keypad (makeKeymap (kunci), rowPins, colPins, ROWS, COLS); // Buat Keypad
4. Setelah itu, kita beri tahu pin mana dari LCD yang terhubung ke pin mana dari Arduino.
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Pin yang dihubungkan ke LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Buat LCD
5. Kemudian beberapa variabel diinisialisasi untuk menampung nilai kalkulasi dan melakukan operasi selama run time.
panjang Num1, Num2, Nomor; kunci karakter, tindakan; hasil boolean = salah;
6. batal penyiapan () adalah fungsi yang hanya berjalan satu kali saat sirkuit dihidupkan. Dalam fungsi ini, kami mendeklarasikan pin papan Arduino mana yang akan digunakan untuk mengambil input dan mana yang akan digunakan untuk mengirim output. Baud rate juga diatur dalam fungsi ini yang pada dasarnya adalah kecepatan komunikasi dalam bit per detik.
batal penyiapan () {Serial.begin (9600); lcd.begin (16, 2); // Kami menggunakan layar LCD 16 * 2 lcd.print ("Kalkulator"); // Tampilkan pesan intro lcd.setCursor (0, 1); // setel kursor ke kolom 0, baris 1 penundaan (1000); // Tunggu 1 detik lcd.clear (); // bersihkan layar LCD}
7. CalculateResult ()merupakan fungsi yang akan digunakan untuk mendeteksi tanda yang ditekan pada keypad. Atas dasar tanda yang ditekan, itu akan memutuskan operasi aritmatika mana yang akan dilakukan.
void CalculateResult () {if (action == '+') // if + sign ditekan Number = Num1 + Num2; // tambahkan kedua bilangan if (action == '-') // if - sign ditekan Number = Num1-Num2; // kurangi kedua bilangan jika (aksi == '*') // jika tanda * ditekan Bilangan = Num1 * Num2; // kalikan kedua bilangan jika (aksi == '/') // jika / tanda ditekan Bilangan = Num1 / Num2; // bagi kedua angka}
8. DisplayResult ()adalah fungsi yang digunakan untuk menampilkan hasil pada LCD. Pertama-tama, ini mengatur kursor ke posisi awal dan mencetak angka pertama. Kemudian ini menampilkan operator logika dan kemudian nomor kedua. Kemudian setelah mencetak tanda “=”, jawabannya akan ditampilkan di LCD.
void DisplayResult () {lcd.setCursor (0, 0); // setel kursor ke kolom 0, baris 1 lcd.print (Num1); // mencetak angka pertama di layar lcd.print (action); // cetak tanda yang ditekan pada layar lcd.print (Num2); // mencetak angka kedua di layar if (result == true) // Menampilkan hasil {lcd.print ("="); // print tanda = pada layar lcd.print (Number); // cetak jawabannya di layar}}
9. DetectButtons ()adalah fungsi yang digunakan untuk mendeteksi tombol mana yang ditekan. itu juga akan mendeteksi jika tombol ditekan dua kali. Fungsi ini akan mengembalikan angka yang akan ditekan pada keypad.
void DetectButtons () {lcd.clear (); // Lalu bersihkan jika (key == '*') // Jika Tombol batal ditekan {Serial.println ("Tombol Batal"); // cetak komentar Number = Num1 = Num2 = 0; hasil = salah; } if (key == '1') // Jika Tombol 1 ditekan {Serial.println ("Button 1"); jika (Angka == 0) Angka = 1; else Nomor = (Nomor * 10) + 1; // Ditekan dua kali} if (key == '4') // Jika Tombol 4 ditekan {Serial.println ("Button 4"); jika (Angka == 0) Angka = 4; lain Nomor = (Nomor * 10) + 4; // Ditekan dua kali} if (key == '7') // Jika Tombol 7 ditekan {Serial.println ("Button 7"); jika (Angka == 0) Angka = 7; lain Nomor = (Nomor * 10) + 7; // Ditekan dua kali} if (key == '0') // Jika Tombol 0 ditekan {Serial.println ("Button 0"); jika (Bilangan == 0) Bilangan = 0; lain Nomor = (Nomor * 10) + 0; // Ditekan dua kali} if (key == '2') // Tombol 2 Ditekan {Serial.println ("Button 2"); jika (Angka == 0) Angka = 2; lain Nomor = (Nomor * 10) + 2; // Ditekan dua kali} if (key == '5') // Tombol 5 Ditekan {Serial.println ("Button 5"); jika (Angka == 0) Angka = 5; lain Nomor = (Nomor * 10) + 5; // Ditekan dua kali} if (key == '8') // Tombol 8 Ditekan {Serial.println ("Tombol 8"); jika (Angka == 0) Angka = 8; lain Nomor = (Nomor * 10) + 8; // Ditekan dua kali} if (key == '#') // Tombol # Ditekan {Serial.println ("Button Equal"); Num2 = Angka; hasil = benar; } if (key == '3') // Tombol 3 Ditekan {Serial.println ("Button 3"); jika (Angka == 0) Angka = 3; lain Nomor = (Nomor * 10) + 3; // Ditekan dua kali} if (key == '6') // Tombol 6 Ditekan {Serial.println ("Button 6"); jika (Angka == 0) Angka = 6; lain Nomor = (Nomor * 10) + 6; // Ditekan dua kali} if (key == '9') // Tombol 09 Ditekan {Serial.println ("Button 9"); jika (Angka == 0) Angka = 9; lain Nomor = (Nomor * 10) + 9; // Ditekan dua kali} if (key == 'A' || key == 'B' || key == 'C' || key == 'D') // Deteksi Tombol pada Kolom 4 {Num1 = Angka; Angka = 0; if (key == 'A') {Serial.println ("Addition"); aksi = '+'; } jika (key == 'B') {Serial.println ("Pengurangan"); aksi = '-'; } if (key == 'C') {Serial.println ("Perkalian"); aksi = '*'; } if (key == 'D') {Serial.println ("Devesion"); aksi = '/'; } penundaan (100); }}
10. void loop ()adalah fungsi yang akan berjalan berulang kali dalam satu putaran. Fungsi ini digunakan untuk memanggil semua fungsi lain yang akan digunakan untuk melakukan semua operasi. Fungsi tersebut dijelaskan di atas.
void loop () {key = kpd.getKey (); // menyimpan nilai kunci yang ditekan dalam char if (key! = NO_KEY) DetectButtons (); // panggil fungsi if (result == true) CalculateResult (); // panggil function DisplayResult (); // panggil fungsi}
Langkah 7: Pengujian
Sekarang karena kita telah menghubungkan semua komponen dan mengunggah kode ke mikrokontroler, mari kita uji kalkulator apakah berfungsi dengan baik atau tidak. Untuk menguji kalkulator, tekan sembarang tombol numerik. Setelah itu tekan SEBUAHdan sekali lagi tekan tombol numerik apa saja. Setelah Anda melakukan ini, LCD akan menampilkan penambahan kedua angka tersebut.
Ini adalah keseluruhan prosedur membuat dan menguji kalkulator menggunakan Arduino. Sekarang Anda dapat menikmati membuat kalkulator berbasis Arduino Anda sendiri di rumah.