Isi kandungan:

Menu Arduino pada Nokia 5110 Lcd Menggunakan Rotary Encoder: 6 Langkah (dengan Gambar)
Menu Arduino pada Nokia 5110 Lcd Menggunakan Rotary Encoder: 6 Langkah (dengan Gambar)

Video: Menu Arduino pada Nokia 5110 Lcd Menggunakan Rotary Encoder: 6 Langkah (dengan Gambar)

Video: Menu Arduino pada Nokia 5110 Lcd Menggunakan Rotary Encoder: 6 Langkah (dengan Gambar)
Video: Arduino Tutorial: Menu on a Nokia 5110 LCD Display Tutorial 2024, Julai
Anonim
Image
Image
Menu Arduino pada Nokia 5110 Lcd Menggunakan Rotary Encoder
Menu Arduino pada Nokia 5110 Lcd Menggunakan Rotary Encoder

Rakan-rakan yang dihormati selamat datang ke tutorial lain! Dalam video ini kita akan belajar bagaimana membuat menu sendiri untuk paparan LCD Nokia 5110 yang popular, agar projek kita lebih mesra pengguna dan lebih berkemampuan. Mari kita mulakan!

Inilah projek yang akan kami bina. Di paparan menu sederhana muncul, dan dengan bantuan rotary encoder saya dapat menavigasi ke atas, atau ke bawah dan memilih item menu dengan menekan butang rotary encoder. Apabila butang tengah pengekod putar ditekan, skrin lain muncul dan kita dapat mengubah nilai pemboleh ubah. Sekiranya kita menekan butang pengekod putar sekali lagi, kita kembali ke skrin menu utama. Menu ini mempunyai 6 item, dan kita dapat menatal ke bawah atau ke atas menu dan item di paparan akan berubah sesuai. Tonton video yang dilampirkan untuk melihat dengan tepat bagaimana menu ini berfungsi. Sudah tentu anda boleh mengubahnya untuk membina menu anda sendiri yang lebih kompleks jika anda mahu.

Mari kita lihat bagaimana membina projek ini.

Langkah 1: Dapatkan Semua Bahagian

Dapatkan Semua Bahagian
Dapatkan Semua Bahagian

Bahagian yang diperlukan untuk membina projek ini adalah seperti berikut:

  • Arduino Uno ▶
  • Paparan LCD Nokia 5110 ▶
  • Pengekod Rotary ▶
  • Papan roti kecil ▶
  • Beberapa Wayar ▶
  • Power Bank ▶

Kos projeknya sangat rendah, harganya kurang dari $ 10. Anda boleh mencari pautan untuk semua bahagian yang saya gunakan dalam keterangan video di bawah.

Langkah 2: Paparan LCD Nokia 5110

Image
Image
Membina Projek
Membina Projek

Nokia 5110 adalah paparan kegemaran saya untuk Projek Arduino saya.

Nokia 5110 adalah layar LCD grafik dasar yang awalnya ditujukan sebagai layar telefon bimbit. Ia menggunakan pengawal PCD8544 yang merupakan pengawal / pemacu LCD CMOS kuasa rendah. Kerana ini paparan ini mempunyai penggunaan kuasa yang luar biasa. Ia hanya menggunakan 0.4mA ketika menyala tetapi lampu latar tidak aktif. Ia menggunakan kurang daripada 0.06mA ketika dalam mod tidur! Itulah salah satu sebab yang menjadikan paparan ini menjadi kegemaran saya. Antaramuka PCD8544 ke mikrokontroler melalui antara muka bas bersiri. Itu menjadikan paparan sangat mudah digunakan dengan Arduino. Anda hanya perlu menyambungkan 8 wayar.

Saya telah menyediakan tutorial terperinci mengenai cara menggunakan paparan LCD Nokia 5110 dengan Arduino. Saya telah melampirkan video tersebut dalam Instructable ini, ia akan memberikan maklumat berguna mengenai paparan, jadi saya mendorong anda untuk menontonnya dengan teliti. Kos paparan adalah sekitar $ 4.

Anda boleh mendapatkannya di sini: ▶

Langkah 3: Pengekod Rotary

Image
Image

Pengekod putar, juga disebut pengekod poros, adalah alat elektro-mekanikal yang mengubah kedudukan sudut atau gerakan poros atau gandar ke kod analog atau digital. Pengekod putar digunakan dalam banyak aplikasi yang memerlukan putaran tanpa had poros tepat - termasuk kawalan industri, robotik, lensa fotografi tujuan khas, peranti input komputer (seperti tikus optomekanik dan bola trek), rheometer tekanan terkawal, dan platform radar berputar.

Pengekod putar yang akan kita gunakan dalam projek ini adalah pengekod yang sangat murah. Ia juga mempunyai butang tertanam dan untuk membuatnya berfungsi, kita hanya perlu menyambungkan 5 wayar. Saya telah menyediakan tutorial terperinci mengenai cara menggunakan encoder berputar. Anda boleh mendapatkan video ini di sini.

Kos pengekod putar ini sangat rendah. Harganya sekitar $ 1.5.

Anda boleh mendapatkannya di sini ▶

Langkah 4: Membangunkan Projek

Image
Image
Membina Projek
Membina Projek
Membangunkan Projek
Membangunkan Projek

Mari kita sambungkan semua bahagian bersama-sama. Sebelum membina projek ini, jika anda belum pernah menggunakan pengekod putar pada masa lalu, saya mendorong anda untuk menonton tutorial yang telah saya sediakan mengenai pengekod putar. Ini akan membantu anda memahami bagaimana pengekod berputar berfungsi dan anda akan memperoleh pengalaman dengan mereka. Video ini dilampirkan di sini.

Saya telah meletakkan paparan di papan roti kecil seperti ini. Mari kita sambungkan paparan terlebih dahulu. Pin pertama paparan iaitu Reset menuju ke pin digital 3 dari Arduino Uno, pin kedua menuju ke pin digital 4, pin ketiga menuju ke pin digital 5, pin keempat ke pin digital 11 dan pin kelima ke digital pin 13. Pin seterusnya ialah Vcc. Kami menghubungkan Vcc ke rel positif papan roti, dan rel positif papan roti ke output 3.3V Arduino. Pin seterusnya adalah Lampu Latar untuk paparan. Oleh kerana kami ingin mengawalnya melalui perisian, kami menyambungkannya ke pin digital 7. Pin terakhir adalah GND. Kami menghubungkan GND ke rel negatif papan roti, dan rel negatif papan roti ke Arduino GND.

Sekarang yang harus kita lakukan hanyalah menyambungkan pengekod putar. Pin pertama adalah GND dan kami menyambungkannya ke rel negatif papan roti. Pin seterusnya adalah Vcc dan kami menyambungkannya ke rel positif papan roti. Pin seterusnya adalah SW dan kami menyambungkannya ke Analog Pin 2. Pin seterusnya diberi nama DT dan kami menghubungkannya ke Analog Pin 1. Akhir sekali pin CLK disambungkan ke Analog Pin 0. Anda boleh mendapatkan gambarajah skematik projek ini di penerangan video di bawah.

Sekarang kita bersedia untuk menjana projek. Seperti yang anda lihat, projek ini berjalan lancar, dan menu berfungsi seperti yang diharapkan! Bagus, mari kita lihat perisian projek ini.

Langkah 5: Kod Projek

Kod Projek
Kod Projek

Dalam projek ini kami menggunakan 4 perpustakaan. Kami menggunakan dua perpustakaan untuk paparan, dan dua untuk pengekod putar.

  1. Adafruit GFX:
  2. Nokia 5110:
  3. Perpustakaan Encoder:
  4. Perpustakaan TimerOne:

Pada mulanya kita akan melihat fungsi drawMenu. Fungsi ini bertanggungjawab untuk melukis Menu pada paparan. Fungsi ini disebut setiap beberapa milisaat, jadi jika ada perubahan pada menu, fungsi ini bertanggung jawab untuk mengemas kini menu di layar.

int menuitem = 1; int bingkai = 1; halaman int = 1; int lastMenuItem = 1;

Terdapat juga 3 pemboleh ubah global yang sangat penting, pemboleh ubah halaman, pemboleh ubah menuitem dan pemboleh ubah bingkai. Halaman pemboleh ubah mengingat skrin UI mana yang dipaparkan di skrin. Jadi, jika pemboleh ubah halaman adalah 1, kita berada di skrin UI utama, dan jika pemboleh ubah adalah 2 kita berada di skrin UI sekunder di mana kita menetapkan nilai pada pemboleh ubah. Item menu mengingati item menu yang dipilih. Jadi, jika nilainya adalah 1, item menu pertama dipilih, jadi fungsi drawMenu mesti menggambar item menu ini sebagai hitam dengan huruf putih. Sekiranya item menu adalah 2 item menu kedua dipilih dan seterusnya. Pemboleh ubah bingkai, mengingat bahagian menu yang dipaparkan di skrin. Oleh kerana menu yang telah kita buat mengandungi 6 item dan kita hanya dapat memaparkan 3 daripadanya pada satu masa, kita perlu mengetahui item mana yang dipaparkan di layar. Pemboleh ubah bingkai, memberitahu kita perkara ini. Sekiranya pemboleh ubah bingkai mempunyai nilai 1, kami memaparkan tiga item menu pertama, jika itu adalah 2, kami memaparkan item 2, 3, 4 dan seterusnya.

Saya cuba membuat kod semudah mungkin untuk diubah suai jadi saya telah membuat beberapa pemboleh ubah global yang menyimpan nama untuk item menu. Dengan cara ini, anda boleh membuat menu anda sendiri dengan mudah tanpa mencari dalam kod.

String menuItem1 = "Contrast"; String menuItem2 = "Volume"; String menuItem3 = "Bahasa"; String menuItem4 = "Kesukaran"; String menuItem5 = "Light: ON"; String menuItem6 = "Tetapkan semula";

lampu latar boolean = benar;

kontras int = 60; isipadu int = 50;

Bahasa rentetan [3] = {"EN", "ES", "EL"};

int selectLanguage = 0;

Kesukaran tali [2] = {"MUDAH", "KERAS"};

int terpilih Kesukaran = 0;

Pada mulanya kami menginisialisasi semua pemboleh ubah global yang diperlukan dalam kod. Seterusnya kita memulakan paparan. Dalam fungsi gelung, pada mulanya kita memanggil fungsi drawMenu untuk melukis menu di skrin. Kemudian kami membaca nilai dari Rotary encoder dan memeriksa apakah butang ditekan. Sebagai contoh, jika kita berada di skrin UI utama dan item menu pertama dipilih, jika nilai dari pengekod putar telah meningkat, pemboleh ubah menuitem meningkat dan pada gelung seterusnya fungsi drawMenu akan menarik item menu kedua seperti yang dipilih. Sekiranya kita sekarang menekan butang pengekod putar, kita menavigasi ke halaman kedua, di mana kita menetapkan nilai pemboleh ubah. Sekali lagi dengan menggunakan rotary encoder kita dapat meningkatkan atau menurunkan nilai pemboleh ubah. Sekiranya kita menekan butang, kita menavigasi kembali ke halaman menu utama, dan pemboleh ubah halaman menurun.

Itulah idea asas di sebalik menu ini. Kami mengikuti prosedur yang sama untuk semua item menu dan halaman. Kodnya rumit, panjangnya lebih dari 400 baris. Nampaknya rumit tetapi jika anda mencubanya sendiri, anda akan memahaminya dengan lebih mudah dan anda akan dapat mengubahnya, mengembangkannya dan menggunakannya dalam projek anda sendiri. Seperti biasa anda boleh mendapatkan kod yang dilampirkan di sini.

Langkah 6: Menguji Projek

Menguji Projek
Menguji Projek

Sekiranya kita memuatkan kod, kita dapat melihat bahawa projek itu berjalan seperti yang diharapkan. Kita dapat menavigasi menu ke atas dan ke bawah menggunakan poros dan kita dapat memilih item menu apa pun dengan menekan butang pengekod putar. Betapa hebatnya!

Sekarang setelah kita mengetahui bagaimana membuat menu untuk paparan LCD Nokia 5110, kita dapat menambahkan lebih banyak ciri pada projek kita dan menjadikannya lebih mesra pengguna. Menu sederhana yang kami bina hari ini dapat diperbaiki. Kita boleh menggunakan gangguan daripada memeriksa keadaan butang sepanjang masa. Dengan cara ini kita dapat mengurangkan penggunaan kuasa projek dan menjadikan kodnya lebih bersih. Saya akan menyiapkan video mengenai gangguan tidak lama lagi jadi nantikan. Saya ingin mendengar pendapat anda mengenai projek menu ini. Adakah anda menganggapnya berguna dan adakah anda merancang untuk menggunakan menu di mana-mana projek anda. Sila hantarkan pendapat dan idea anda di bawah, terima kasih!

Disyorkan: