Daftar Isi:

LCD COG untuk Arduino Nano: 3 Langkah
LCD COG untuk Arduino Nano: 3 Langkah

Video: LCD COG untuk Arduino Nano: 3 Langkah

Video: LCD COG untuk Arduino Nano: 3 Langkah
Video: 16×2 LCD Display Interfacing with Arduino nano || Best ideas for LCD Display 2024, November
Anonim
LCD COG untuk Arduino Nano
LCD COG untuk Arduino Nano

Instruksi ini menjelaskan cara menggunakan LCD COG dengan Arduino Nano.

Layar LCD COG murah tetapi sedikit lebih sulit untuk dihubungkan. (COG adalah singkatan dari "Chip On Glass".) Yang saya gunakan berisi chip driver UC1701. Ini hanya membutuhkan 4 pin Arduino: SPI-clock, SPI-data, chip-select dan command/data.

UC1701 dikendalikan oleh bus SPI dan berjalan pada 3.3V.

Berikut saya uraikan cara menggunakannya dengan Arduino Nano. Ini juga harus bekerja dengan Arduino Mini atau Uno - saya akan segera mencobanya.

Ini adalah proyek Arduino pertama saya dan saya belum pernah menulis C dalam beberapa dekade, jadi jika saya membuat kesalahan yang jelas, beri tahu saya.

Langkah 1: Membangun Perangkat Keras

Membangun Perangkat Keras
Membangun Perangkat Keras
Membangun Perangkat Keras
Membangun Perangkat Keras
Membangun Perangkat Keras
Membangun Perangkat Keras

Beli LCD COG yang berisi chip UC1701. Itu harus menggunakan bus SPI daripada antarmuka paralel. Ini akan memiliki sekitar 14 pin yang akan diberi label dengan nama seperti yang tercantum di bawah ini. (Anda tidak ingin antarmuka paralel dengan lebih banyak pin berlabel D0, D1, D2 …)

Yang saya beli adalah: https://www.ebay.co.uk/itm/132138390168 Atau Anda dapat mencari eBay untuk "12864 LCD COG".

Pilih salah satu yang memiliki ekor yang cukup lebar dengan jarak pin pada 1,27mm - pin yang lebih halus akan sulit untuk disolder. Pastikan memiliki chip UC1701. Perhatikan bagaimana pada gambar keenam di halaman ebay, tertulis "CONNECTOR: COG/UC1701".

Layarnya transparan dan sulit untuk mengetahui mana yang depan dan belakang. Pelajari gambar saya dengan cermat. Perhatikan di mana pin 1 dan 14 berada - mereka ditandai di bagian ekor.

Ekor fleksibel cukup mudah disolder tetapi membutuhkan adaptor sehingga Anda dapat mencolokkannya ke papan tempat memotong roti. Saya membeli: https://www.ebay.co.uk/itm/132166865767 Atau Anda dapat mencari eBay untuk "Adapter Smd SSOP28 DIP28".

Adaptor mengambil chip SOP 28-pin di satu sisi atau chip SSOP 28-pin di sisi lain. Chip SOP memiliki jarak pin 0,05 (1,27mm) yang sama dengan ekor LCD.

Anda juga memerlukan beberapa pin header. Setiap kali saya membeli Arduino atau modul lain, itu datang dengan lebih banyak pin header daripada yang dibutuhkan sehingga Anda mungkin sudah memilikinya. Jika tidak, cari di eBay untuk "pin header 2.54mm".

Solder 14 pin header ke adaptor. Jangan mendorongnya sepenuhnya - lebih baik jika bagian belakang adaptor rata. Letakkan rata di bangku Anda sehingga pin tidak bisa didorong terlalu jauh ke dalam lubang. Pastikan pin berada di sisi SOP papan (yaitu chip yang lebih besar).

Bantalan ekor berada di semacam jendela. Timah kedua sisinya dengan solder. Timah bantalan adaptor. Pegang ekor adaptor di tempatnya lalu sentuh setiap bantalan dengan besi solder (Anda memerlukan ujung yang cukup halus).

Ikat beberapa utas melalui lubang di adaptor untuk bertindak sebagai pelepas ketegangan. (Saya menggunakan "kawat transformator").

Jika Anda menyoldernya dengan cara yang salah, jangan mencoba melepas soldernya. Keluarkan pin satu per satu dan pindahkan ke sisi lain papan. (Ya, saya membuat kesalahan itu dan menyolder ulang ekornya, itulah sebabnya sedikit berantakan di foto.)

Langkah 2: Menghubungkan ke Arduino

Menghubungkan ke Arduino
Menghubungkan ke Arduino
Menghubungkan ke Arduino
Menghubungkan ke Arduino

Bagian ini menjelaskan cara menghubungkan ke Arduino Nano. Ini akan sangat mirip untuk Mini atau Uno tapi saya belum mencobanya.

Pelajari diagram sirkuit.

Arduino Nano yang terhubung ke port USB berjalan pada 5V. LCD berjalan pada 3.3V. Jadi Anda perlu menyalakan LCD dari pin 3V3 Nano dan untuk mengurangi tegangan pada setiap pin kontrol dari 5V menjadi 3.3V.

Pinout dari LCD adalah:

  • 1 CS
  • 2 RST
  • 3 CD
  • 4
  • 5 CLK
  • 6 SD
  • 7 3V3
  • 8 0V Gnd
  • 9 VB0+
  • 10 VB0-
  • 11
  • 12
  • 13
  • 14

CS adalah Chip-Pilih. Itu ditarik rendah untuk memilih (mengaktifkan) chip UC1701. (CS mungkin disebut CS0 atau En atau serupa.)

RST adalah Reset. Itu ditarik rendah untuk mengatur ulang chip. (RST mungkin disebut Reset.)

CD adalah perintah/data. Itu ditarik rendah saat mengirim perintah ke chip melalui SPI. Ini tinggi saat mengirim data. (CD mungkin disebut A0.)

CLK dan SDA adalah pin bus SPI. (SDA mungkin disebut SPI-Data. CLK mungkin SCL atau SPI-Clock.)

VB0+ dan VB0- digunakan oleh pompa muatan internal UC1701. Pompa pengisian menghasilkan tegangan aneh yang dibutuhkan oleh LCD. Hubungkan kapasitor 100n antara VB0+ dan VB0-. Dokumentasi UC1701 merekomendasikan 2uF tetapi saya tidak dapat melihat perbedaan dengan LCD khusus ini.

Jika LCD Anda memiliki pin VB1+ dan VB1-, sambungkan juga kapasitor 100n di antara keduanya. (Jika LCD Anda memiliki pin VLCD, Anda dapat mencoba menghubungkan kapasitor 100n antara VLCD dan Gnd. Tidak ada bedanya dengan LCD saya.)

Hubungkan LCD ke Nano sebagai berikut:

  • 1 CS = D10 *
  • 2 RST = D6 *
  • 3 CD = D7 *
  • 5 CLK = D13 *
  • 6 SDA = D11 *
  • 7 3V3 = 3V3
  • 8 0V = Gnd

("*" berarti menggunakan pembagi potensial untuk mengurangi tegangan. Jika Arduino berjalan pada 3V3 dari catu daya independen, Anda tidak memerlukan resistor.)

3.3V adalah output oleh Nano dan dapat memberikan arus yang cukup untuk LCD. (Layar menarik sekitar 250uA.)

5V juga dikeluarkan oleh Nano dan dapat digunakan untuk menyalakan lampu latar. Batasi arus ke lampu latar dengan resistor 100ohm.

Jika Anda kekurangan pin pada Nano, Anda dapat menghubungkan RST ke 3V3 - maka Anda dapat menggunakan D6 untuk hal lain. U1701 dapat direset dalam perangkat lunak dengan perintah pada SPI. Saya tidak pernah mengalami masalah dengan itu tetapi jika Anda menggunakan sirkuit Anda sendiri di lingkungan yang bising, mungkin lebih baik menggunakan reset perangkat keras.

Langkah 3: Perangkat Lunak

Perangkat lunak
Perangkat lunak

Secara teori, Anda dapat menjalankan UC1701 dari perpustakaan U8g2 (atau Ucglib atau perpustakaan lain yang tersedia). Saya berjuang selama berhari-hari untuk membuatnya bekerja dan gagal. Pustaka U8g2 adalah monster karena dapat menggerakkan berbagai macam chip dan sangat sulit untuk mengikuti kodenya. Jadi saya menyerah dan menulis perpustakaan saya sendiri yang lebih kecil. Dibutuhkan lebih sedikit ruang di Arduino (kira-kira 3400 byte plus font).

Anda dapat mengunduh perpustakaan saya dari sini (tombol Unduh di halaman ini). Contoh sketsa dan panduan pengguna disertakan. Halaman web https://www.arduino.cc/en/Guide/Libraries menjelaskan cara mengimpor perpustakaan; buka bagian "Mengimpor Perpustakaan.zip".

Inisialisasi LCD dengan

UC1701Mulai();

UC1701Begin dapat mengambil parameter untuk mengubah pin atau mengabaikan pin RST. Pustaka hanya menggunakan SPI perangkat keras (SPI perangkat lunak tidak disediakan). Layar dapat dibalik dalam sumbu x dan y. Itu berguna jika Anda ingin memasang LCD dalam orientasi yang berbeda.

Beberapa prosedur telah diduplikasi dari perpustakaan U8g2:

  • Garis Tarik
  • DrawPixel
  • DrawHline
  • GambarVLine
  • DrawBox
  • DrawFrame
  • GambarLingkaran
  • DrawDisc
  • DrawFilledEllipse
  • menggambarElipse
  • MenggambarSegitiga
  • UC1701SetCursor
  • UC1701ClearDisplay

Beberapa prosedur sedikit berbeda:

  • void DrawChar(uint8_t c, Font kata);
  • void DrawString(char * s, font kata);
  • void DrawInt(int i, Word Font);

Prosedur menggambar string melewati indeks Font. Font dideklarasikan dalam memori flash Arduino sehingga tidak menempati SRAM yang berharga. Tiga font disediakan (kecil, sedang dan besar). Mereka hanya terhubung dan menempati memori flash jika Anda menggunakannya (masing-masing sekitar 500 hingga 2000 byte).

"Warna" ditangani secara berbeda dari pustaka U8g2. Ketika LCD dibersihkan memiliki latar belakang gelap. Jika MakeMark (variabel global) benar, gambar dilakukan dengan warna putih. Jika MakeMark salah, menggambar dilakukan dalam gelap.

Beberapa prosedur unik untuk UC1701:

SetInverted menggambar hitam-putih daripada putih-hitam.

void SetInverted(bool inv);

Kecerahan dan kontras UC1701 diatur oleh:

  • void SetContrast(nilai uint8_t); // disarankan adalah 14
  • void SetResistor(nilai uint8_t); // disarankan adalah 7

Mereka bekerja sama dengan cara yang agak tidak memuaskan.

SetEnabled mematikan LCD:

void SetEnabled(bool en);

Layar membutuhkan 4uA saat tidur. Anda juga harus mematikan lampu latar - dorong dari pin Nano. Setelah diaktifkan kembali, UC1701 akan disetel ulang; tampilan dikosongkan dan Kontras dan Resistor akan diatur ulang ke nilai defaultnya.

Jadi, kesimpulannya, tampilan COG murah dan ukurannya lumayan. Mereka mudah terhubung ke Arduino.

Direkomendasikan: