Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Voltmeter DIY dengan Arduino dan Tampilan Nokia 5110

Komponen dan persediaan

Arduino UNO
× 1
Sensor tegangan (generik)
× 1
Layar LCD Nokia 5110
× 1
Breadboard (generik)
× 1
Kabel jumper (generik)
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Dalam tutorial ini saya akan menunjukkan cara membuat Voltmeter dengan layar LCD Nokia 5110 besar menggunakan Arduino.

Membangun voltmeter adalah pengalaman belajar yang luar biasa. Ketika Anda selesai membangun proyek ini, Anda akan memiliki pemahaman yang lebih baik tentang cara kerja voltmeter, Anda akan menyegarkan pengetahuan Anda tentang hukum Ohm dan Anda akan melihat dalam aksi seberapa kuat platform Arduino. Dengan proyek ini sebagai dasar dan pengalaman yang diperoleh, Anda akan dapat dengan mudah membangun proyek yang lebih kompleks di masa mendatang.

Anda dapat menggunakan proyek ini untuk mengukur tegangan DC dari berbagai rangkaian elektronik atau memantau status baterai proyek Arduino Anda dengan mudah. Selain itu, dengan pengetahuan yang diperoleh, Anda dapat dengan mudah membuat sensor tegangan sendiri untuk membuat voltmeter khusus yang sesuai dengan kebutuhan Anda.

Tanpa penundaan lebih lanjut, mari kita mulai!

Langkah 1:Dapatkan Semua Bagian

Bagian-bagian yang dibutuhkan untuk membangun proyek ini adalah:

  • Arduino Uno
  • Sensor Tegangan
  • Layar LCD Nokia 5110
  • Breadboard Kecil
  • Beberapa kabel

Biaya proyek sangat rendah. Ini adalah sekitar $10.

Langkah 2:Modul Sensor Tegangan

Mari kita lihat bagaimana modul sensor ini bekerja. Sensor tegangan ini sangat sederhana dan dapat mengukur tegangan DC dari 0-25V. Ini hanya terdiri dari dua resistor! Anda dapat membuat sendiri dengan mudah jika Anda mau, atau Anda dapat membeli sensor modul ini dengan harga kurang dari satu dolar jika Anda menginginkan sesuatu yang sudah dibuat. Begini Cara kerjanya. Sensor ini sebenarnya adalah pembagi tegangan. Rangkaian pembagi tegangan adalah rangkaian yang sangat umum yang mengambil tegangan lebih tinggi dan mengubahnya menjadi lebih rendah dengan menggunakan sepasang resistor. Rumus untuk menghitung tegangan keluaran didasarkan pada hukum Ohm. Silakan periksa gambar terlampir.

Dalam modul ini, R1 adalah 30.000 Ohm, R2 adalah 7500 Ohm. Jika kita menempatkan 25V pada input dan jika kita membuat perhitungan, kita mendapatkan 5V pada output! Dan itulah tegangan maksimum yang dapat ditangani oleh pin analog Arduino. Jadi, jika kita melebihi 25V pada input, kita akan membakar pin Analog Arduino. Jika kita memasukkan 0 volt ke input, kita mendapatkan 0V pada output. Jadi, jika kita menempatkan tegangan dari 0-25V pada input, kita akan mendapatkan tegangan dari 0-5V pada output.

Arduino Uno memiliki ADC 10bit sehingga resolusi yang dapat kita capai menggunakan sensor ini adalah 25mV. Jika kita menggunakan Arduino Due, kita dapat mencapai resolusi yang lebih baik karena memiliki ADC 12bit. Namun, tentu saja, kita perlu membuat sensor tegangan sendiri, karena board Arduino Due menggunakan level logika 3.3V, dan tegangan apa pun di luar itu akan merusak pin analognya.

Langkah 3:LCD Nokia 5110

Nokia 5110 adalah tampilan favorit saya untuk Proyek Arduino saya.

Nokia 5110 adalah layar LCD grafis dasar yang awalnya ditujukan sebagai layar ponsel. Ini menggunakan pengontrol PCD8544 yang merupakan pengontrol / driver LCD CMOS daya rendah. Karena itu, tampilan ini memiliki konsumsi daya yang mengesankan. Ini hanya menggunakan 0,4mA saat menyala tetapi lampu latar dinonaktifkan. Menggunakan kurang dari 0,06mA saat dalam mode tidur! Itulah salah satu alasan yang membuat tampilan ini menjadi favorit saya.

Antarmuka PCD8544 ke mikrokontroler melalui antarmuka bus serial. Itu membuat tampilan sangat mudah digunakan dengan Arduino. Anda hanya perlu menghubungkan 8 kabel dan menggunakan perpustakaan berikut:http://www.rinkydinkelectronics.com/library.php?id=47

Perpustakaan yang mengesankan ini dikembangkan oleh Henning Karlsen, yang telah melakukan banyak upaya untuk membantu komunitas Arduino bergerak maju dengan perpustakaannya.

Saya telah menyiapkan tutorial terperinci tentang cara menggunakan layar LCD Nokia 5110 dengan Arduino. Saya telah melampirkan video itu dalam tutorial ini, itu akan memberikan informasi yang berguna tentang tampilan, jadi saya mendorong Anda untuk menontonnya dengan cermat.

Sekarang, mari kita lanjutkan!

Langkah 4:Membangun Voltmeter

Sekarang mari kita hubungkan semua bagian bersama-sama.

Pada awalnya kami menghubungkan sensor tegangan. Ini hanya memiliki 3 pin. Dari jumlah tersebut, kita hanya perlu menghubungkan 2.

Menghubungkan Sensor Tegangan

  • - Pin masuk ke GND Arduino
  • + Pin tetap tidak terhubung
  • S Pin masuk ke Analog Pin 0

Langkah selanjutnya adalah menghubungkan layar LCD Nokia 5110.

Menghubungkan Layar LCD Nokia 5110

  • RST masuk ke Pin Digital 12 Arduino
  • CE masuk ke Pin Digital 11 Arduino
  • DC masuk ke Pin Digital 10 Arduino
  • DIN masuk ke Pin Digital 9 Arduino
  • CLK masuk ke Pin Digital 8 Arduino
  • VCC masuk ke Arduino 3.3V
  • LIGHT masuk ke Arduino GND (lampu latar menyala)
  • GND masuk ke Arduino GND

Sekarang kita telah menghubungkan semua bagian bersama-sama, yang harus kita lakukan adalah memuat kode. Layar splash ditampilkan selama beberapa detik dan kemudian kita dapat mulai mengukur voltase.

Langkah 5:Kode Proyek

Kode proyek terdiri dari 2 file.

  • ui.c
  • VoltMeter.ino

Kode ui.c - Grafik untuk Proyek kami

Pada file pertama ui.c, terdapat nilai biner dari 2 ikon yang ditampilkan pada layar LCD Nokia 5110. Ada ikon splash dan Antarmuka Pengguna untuk voltmeter yang muncul setelahnya. Silakan tonton video terlampir yang telah saya siapkan untuk melihat cara memuat grafik khusus Anda ke Proyek Arduino Anda.

Kode VoltMeter.ino - Program Utama

Kode utama proyek ini sangat sederhana. Kita perlu menyertakan perpustakaan Nokia 5110. Selanjutnya kita mendeklarasikan beberapa variabel. Kami menginisialisasi tampilan dan kami menampilkan layar splash selama 3 detik. Setelah itu, kami mencetak ikon ui satu kali, dan kami membaca nilai analog dari sensor setiap detik.

Semua keajaiban terjadi dalam fungsi berikut:

float readVoltage(){ sensorValue =analogRead(sensorPin); vout =(nilai sensor * 5.0) / 1024.0; vin =vout / (R2/(R1+R2)); kembali vin;} 

Metode di atas membaca nilai dari sensor dan mengubahnya menjadi tegangan dari 0 hingga 25V. Jika Anda menggunakan sensor tegangan yang dibuat khusus, Anda harus mengubah variabel R1 dan R2 untuk mencerminkan nilai resistor dari sensor Anda.

Setelah membaca nilai dari sensor, kode mengubah nilai menjadi String dan menampilkannya ke layar.

Saya telah melampirkan kode untuk tutorial ini. Untuk mengunduh kode versi terbaru, Anda dapat mengunjungi halaman web proyek:educ8s.tv/arduino-voltmeter-project/

F4FWJORIRXTXQG8.c FY005LHIRXTXQG9.ino

Langkah 6:Menguji Proyek

Sekarang setelah kode dimuat, kita dapat menguji voltmeter dengan beberapa baterai. Saya mengujinya dengan baterai AA yang dapat diisi ulang, baterai 18650, dan baterai alarm 12V yang besar.

Seperti yang Anda lihat di foto terlampir, Voltmeter berfungsi dengan baik. Sebagai perbandingan saya juga menggunakan multimeter saya. Pembacaan Voltmeter "buatan tangan" kami sangat dekat dengan Multimeter profesional. Hebat bukan?

Seperti yang Anda lihat, proyek ini adalah demonstrasi hebat tentang kemampuan perangkat keras dan perangkat lunak open source. Dalam beberapa menit, seseorang dapat membangun proyek yang begitu mengesankan! Proyek ini sangat ideal untuk pemula dan seperti yang saya katakan di awal, proyek ini adalah pengalaman belajar yang luar biasa.

Saya akan senang mendengar pendapat Anda tentang proyek ini. Apakah Anda merasa berguna? Apakah ada perbaikan yang dapat diterapkan pada proyek ini? Silakan kirim komentar atau ide Anda di bagian komentar di bawah!

Kode

  • Voltmeter.ino
  • ui.c
Voltmeter.inoC/C++
 /////////////////////////////////////////// / / Proyek Voltmeter Arduino // // dengan LCD NOKIA 5110 //// http://www.educ8s.tv /////////////////////// /////////////////////#include  // PERPUSTAKAAN YANG SAYA GUNAKAN INI:http://www.rinkydinkelectronics.com/library .php?id=47LCD5110 lcd(8,9,10,12,11);extern unsigned char BigNumbers[];extern uint8_t ui[];extern uint8_t startScreen[];float voltage =0.0;int sensorPin =A0; float sensorValue =0,0f; String voltageString ="0.0";int stringLength =0;float vout =0.0;float vin =0.0;float R1 =30000.0; mengapung R2 =7500.0; void setup() { Serial.begin(9600); lcd.InitLCD(); lcd.drawBitmap(0, 0, startScreen, 84, 48); lcd.update(); penundaan(3000); lcd.setFont(Nomor Besar); delay(1000);}void loop() { lcd.clrScr(); lcd.drawBitmap(0, 0, ui, 84, 48); tegangan =readVoltage(); Serial.println(tegangan); voltageString =String(tegangan,1); stringLength =teganganString.length(); tampilanVoltage(panjang string); lcd.update(); delay(1000);}float readVoltage(){ sensorValue =analogRead(sensorPin); vout =(nilai sensor * 5.0) / 1024.0; vin =vout / (R2/(R1+R2)); return vin;}void displayVoltage(int length){ switch(length) { case 3:lcd.print(voltageString,14,19); merusak; kasus 4:lcd.print(voltageString,2,19); merusak; default:lcd.print(voltageString,2,19); merusak; }}
ui.cC/C++
Data Antarmuka Pengguna
#include const unsigned char ui []PROGMEM ={0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x11, 0x31, 0xF1, 0xD1, 0x01, 0x01,0x81, 0xF1, 0x11, 0x11, 0xC1, 0xE1, 0x11, 0x11, 0x11, 0x31, 0xE1, 0xC1, 0x01, 0x01, 0x11, 0xF1,0xF1, 0x11, 0x01, 0x01, 0x01, 0x01 0x11, 0x11, 0xF1, 0xF1, 0x11, 0x11, 0x31, 0x01, 0x01, 0x01,0x01, 0x81, 0x61, 0x31, 0xF1, 0xC1, 0x01, 0x01, 0x01, 0xC1, 0xE1, 0x21, 0x11, 0x11, 0x11 0x31,0x31, 0x01, 0x11, 0xF1, 0xF1, 0x91, 0x91, 0x91, 0x31, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,0x01, 0x01, 0x01, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,0xC0, 0xC3, 0xCF, 0xCC, 0xC3, 0xC0, 0xC0, 0xC0, 0xC3, 0xC7, 0xCC, 0xC8, 0xC8, 0xC8, 0xC 0xC0, 0xC8, 0xCF, 0xCF, 0xC8, 0xC8, 0xC8, 0xCC, 0xC0, 0xC0, 0xC8, 0xCF, 0xCF, 0xC8, 0xC0,0xC0, 0xC0, 0xC0, 0xC8, 0xCC, 0xCB, 0xC1, 0xC 0xCE, 0xC8, 0xC0, 0xC3, 0xC7, 0xCC, 0xC8, 0xC8, 0xC9, 0xCF, 0xC7, 0xC1, 0xC8, 0xCF, 0xCF, 0xC8, 0xC8, 0xC8, 0xCC, 0xC0, 0xC0, 0xC0,0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x20, 0x60, 0x60 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1F, 0x7F, 0xFF, 0xFF, 0xF8, 0xE0,0x00, 0x00, 0x0 0, 0x00, 0xC0, 0xF0, 0xFE, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00,0x01, 0x0F, 0x3F, 0xFF, 0xFF, 0xFC, 0xF0, 0xFE, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0xFF, 0xFF 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x83, 0x83, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xFF, };const unsigned char startScreen []PROGMEM ={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00, 0x00, 0x00, 0x80, 0xF0, 0xFC, 0xFC, 0xFC, 0xFC,0xFC, 0x7C, 0x1C, 0x04, 0x00, 0x20, 0xE0, 0xE0, 0x20, 0x00, 0x00, 0x20, 0xE0, 0x20, 0x20 ,0x60, 0x20, 0x20, 0x20, 0x60, 0xC0, 0x80, 0x20, 0xE0, 0xE0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,0xE0, 0x60, 0x20, 0xE0, 0xE0, 0x20, 0x60, 0xE , 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0x00, 0x00,0x00, 0x80, 0xC0, 0x60, 0x20, 0x20, 0x20, 0x60, 0xE0, 0x00, 0x20, 0xE0, 0xE0, 0x20, 0x20, 0x20,0x60 , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xFE, 0xFF, 0xFF,0xFF, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x07, 0x3F, 0x38, 0x38, 0x07,0x00, 0x00, 0x0F, 0x1F, 0x30, 0x20, 0x20, 0x20, 0x30, 0x1F, 0x0F, 0x20, 0x3F, 0x3F, 0x20, 0x20,0x30, , 0x00, 0x00, 0x20, 0x3F, 0x3F, 0x20, 0x00, 0x00, 0x20, 0x38, 0x27, 0x04,0x04, 0x27, 0x3F, 0x 3C, 0x20, 0x0F, 0x1F, 0x30, 0x20, 0x20, 0x24, 0x3C, 0x3C, 0x04, 0x20, 0x3F, 0x3F, 0x22, 0x22, 0x22, 0x20, 0x38, 0x00, 0x00, 0x00, 0x00 0xE0, 0xF8, 0xFE, 0xFF,0xFF, 0x3F, 0x0F, 0x83, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0x38,0x00, 0x00, 0x00, 0x00 0x08, 0xF8, 0x18, 0xF8, 0xE0, 0x00, 0xE0, 0x18, 0xF8, 0xF8, 0x08,0x08, 0xF8, 0xF8, 0x88, 0x88, 0x88, 0x18, 0x00, 0x00, 0x38, 0x18, 0x 0x08, 0x18,0x38, 0x08, 0xF8, 0xF8, 0x88, 0x88, 0x88, 0x18, 0x00, 0x00, 0x08, 0xF8, 0xF8, 0x88, 0x88, 0x88,0xF8, 0x70, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7C, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, 0x1E, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0xF, 0x, 0xF 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x08, 0x00, 0x07, 0x07, 0x00,0x08, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F, 0x0F 0x08, 0x08, 0x0E, 0x00, 0x00, 0x00, 0x08,0x0F, 0x0F, 0x08, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x08 , 0x0E, 0x00, 0x08, 0x0F,0x0F, 0x08, 0x01, 0x03, 0x06, 0x0C, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00 , 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0xE0, 0xFE, 0x7F, 0x9F, 0x87, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7F, 0x7F, 0x3F, 0x1F, 0x0F, 0x03, 0x01, 0x00 , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0 x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };

Proses manufaktur

  1. Pemantau Lingkungan dan Kualitas Udara DIY
  2. Game Arduino Pong - Tampilan OLED
  3. DIY Sederhana 20 kHz Arduino Oscilloscope pada LCD Nokia 5110
  4. Voltmeter DIY Menggunakan Arduino dan Smartphone
  5. Suhu Arduino. Monitor Dan Jam Waktu Nyata Dengan Tampilan 3.2
  6. Bermain Dengan Tampilan Berikutnya
  7. Voltmeter DIY dengan Arduino dan Tampilan Nokia 5110
  8. Buat Aplikasi Fridgeye dengan Tampilan Berikutnya
  9. Cara membuat musik dengan Arduino
  10. Tampilan Lokasi GPS Dengan Pelindung Layar GPS Dan TFT