Menyambung paparan LSD. LCD watak dan Arduino

Terdapat sejumlah besar jenis teks, atau kerana ia juga dipanggil pensintesis aksara, skrin kristal cecair. Paparan yang paling biasa adalah berdasarkan cip HD44780 daripada Hitachi, KS0066 daripada Samsung atau serasi dengannya. Untuk bekerja dengan skrin sedemikian, terdapat pustaka Arduino standard Liquid Crystal.

Paparan sedemikian termasuk, khususnya, skrin teks daripada Melt. Artikel ini menerangkan secara terperinci gambarajah sambungan untuk skrin ini, tetapi ia juga sesuai untuk banyak paparan teks lain.

Artikel itu menerangkan prinsip umum. Anda boleh pergi ke penerangan terperinci paparan anda:

Komponen yang Diperlukan

Sambungan

Lampirkan skrin pada papan roti dan sambungkan kuasa +5 V dan tanah dari Arduino ke rel kuasa breaboard.

Anda memerlukan kuasa dan mendarat lebih daripada sekali, jadi lebih mudah untuk melemparkannya ke landasan.

Hidupkan lampu latar

Lampu latar paparan adalah litar berasingan, tidak disambungkan dengan yang lain. Anda boleh menghidupkannya dengan menggunakan +5 V pada pin ke-15 paparan dan menyambungkan pin ke-16 ke tanah. Dengan menyambungkan kedua-dua pin ini ke rel yang sepadan, anda boleh menghidupkan Arduino dan melihat paparan menyala.

Sila ambil perhatian bahawa pada sesetengah model penomboran kenalan bukan sahaja dari kanan ke kiri dari pertama hingga keenam belas, tetapi agak lebih licik. Jadi, sebagai contoh, pada skrin 16×2 dari Melt, kenalan pertama secara fizikal terletak di kedudukan ke-14, yang kedua di kedudukan ke-13 dan seterusnya dari kanan ke kiri sehingga ke-14 di kedudukan pertama, dan ke-15 dan 16 terletak di sebelah kanan. Penomboran berhampiran kenalan paparan akan membantu anda mengelakkan kekeliruan.

Menghidupkan kuasa pensintesis aksara

    Yang pertama ialah tanah. Sambungkannya ke rel tanah.

    Yang kedua ialah pemakanan. Sambungkannya ke rel +5V.

    Yang ketiga ialah kontras. Untuk kontras maksimum, sambungkannya ke rel tanah. Anda boleh menggunakan voltan sewenang-wenangnya dari 0 hingga 5 V pada kenalan ini; semakin tinggi, semakin malap imej itu, tetapi pada masa yang sama penggunaan kuasa akan berkurangan. Untuk dapat melaraskan kontras dengan lancar, anda boleh menggunakan isyarat output potensiometer pada kenalan ini.

Selepas sambungan, jika anda menghidupkan Arduino, anda boleh melihat ruang biasa segi empat tepat. Bergantung pada gabungan warna teks dan lampu latar, mereka boleh sama ada terang dan jelas kelihatan atau hampir tidak ketara. Ini adalah perkara biasa: dalam apa jua keadaan, teks akan kelihatan hebat.

Sambungan bas data

Untuk komunikasi antara Arduino dan skrin, beberapa talian komunikasi mesti digunakan:

    2 atau 3 untuk paparan arahan

    4 atau 8 untuk penghantaran data (kod watak dan arahan)

Oleh itu, dari 6 hingga 11 kenalan dari kedua-dua peranti akan diduduki. Jika anda tidak perlukan membaca daripada paparan, yang sesuai dengan kebanyakan senario penggunaan, arahan akan memerlukan 2 baris.

Jika kelajuan kemas kini data juga tidak menjadi masalah, 4 baris sudah memadai untuk memindahkan data.

Jadi, untuk menyambung paparan, cukup menggunakan 6 baris, 6 pin pada Arduino. Mari kita pertimbangkan senario tertentu ini.

Seperti yang dinyatakan, kami tidak mempunyai apa-apa untuk dibaca dari paparan, kami hanya akan menulis kepadanya. Oleh itu, kami menyambungkan pin ke-5 paparan, yang bertanggungjawab untuk memilih baca/tulis, ke rel tanah. Ini bermakna "sentiasa menulis."

Kemudian, kami menyambungkan Arduino dan skrin dengan 6 talian komunikasi kami. Tidak kira kenalan mana yang akan dipilih pada Arduino: kami akan menentukannya dalam program, tetapi untuk contoh kami memilih konfigurasi berikut:

    Pin paparan 6 ialah pin Arduino 5. Ini ialah talian kebenaran capaian data. Dikenali sebagai E atau Dayakan. Apabila baris ini menjadi satu, paparan melaksanakan arahan atau mengeluarkan aksara daripada baris data.

    Pin paparan ke-11, ke-12, ke-13, ke-14 masing-masing ialah pin Arduino ke-10, ke-11, ke-12, ke-13. Ini adalah talian data. Dikenali sebagai DB4, DB5, DB6, DB7.

Skrin disambungkan dan sedia untuk menerima data. Yang tinggal hanyalah menulis program untuk Arduino.

Pengaturcaraan

Untuk mengeluarkan teks daripada Arduino, adalah paling mudah untuk menggunakan pustaka terbina dalam Liquid Crystal. Untuk memaparkan ucapan dan pemasa, gunakan kod seperti ini:

Hello.pde #include lcd.begin(16, 2); // cetak baris pertama lcd.print("Hello dunia!"); // letak kursor dalam lajur 0, baris 1. Iaitu, pada // ini sebenarnya baris kedua, kerana penomboran bermula dari sifar lcd.setCursor(0, 1); // cetak baris kedua lcd.print ("foo bar baz" ); ) gelung kosong() ( )

Segala-galanya agak mudah dan harus jelas dari komen.

Cyrillic

Maklumat dalam bahagian ini digunakan secara khusus untuk paparan daripada Melt. Rakan sejawat Cina dan Eropah tidak mungkin mempunyai Cyrillic dalam set watak mereka; sila rujuk dokumentasi untuk paparan untuk mengetahui lebih lanjut tentang perkara ini.

Mencetak huruf Rusia bukanlah sesuatu yang remeh: anda tidak boleh hanya menulis lcd.print("Vasya") . Ini berkaitan dengan konsep pengekodan. Anda tahu bahawa setiap aksara mempunyai kod yang sepadan dan apabila menyusun atur cara, jika rentetan mengandungi Cyrillic, ia akan ditukar menjadi kod menggunakan utf-8, cp-1251 atau beberapa jadual lain, bergantung pada tetapan pengkompil. Skrin pula menjangkakan untuk melihat data dalam pengekodannya sendiri.

Sebagai contoh, huruf "I" sepadan dengan kod B1 dalam sistem perenambelasan. Untuk menghantar rentetan "Yandex" ke skrin, anda mesti membenamkan kod aksara secara eksplisit ke dalam rentetan menggunakan urutan \x##:

Lcd.print(" \xB1 index") ;

Anda boleh mencampurkan aksara biasa dan kod eksplisit dalam satu baris yang anda suka. Satu-satunya kaveat ialah selepas pengkompil melihat urutan \x dalam satu baris, ia membaca semua aksara di belakangnya yang mungkin merupakan digit bagi sistem perenambelasan, walaupun terdapat lebih daripada dua daripadanya. Oleh sebab itu, anda tidak boleh hanya menggunakan aksara dalam julat 0-9, a-f diikuti dengan kod aksara dua digit: ia akan menyebabkan ralat penyusunan. Untuk mengatasi titik ini, anda boleh menggunakan fakta bahawa dua baris yang ditulis bersebelahan antara satu sama lain dilekatkan bersama. Jadi, jika anda ingin menulis "Yeee":

Lcd.print(" \xB1 eee"); // ralat lcd.print(" \xB1""eee"); // Betul

Sebagai contoh, untuk menulis "Salam daripada Amperka", kod itu digunakan:

cyrillic.pde #include lcd LiquidCrystal(4, 5, 10, 11, 12, 13); void setup() ( lcd.begin(16, 2) ; lcd.print(" \xA8 p\xB8 \xB3""e \xBF"); lcd.setCursor(0, 1); lcd.print(" o \xBF A\xBC \xBE ""ep \xBA\xB8"); ) gelung kosong() ( )

Menukar halaman penjana aksara

Modul paparan menyimpan dua halaman penjana aksara dalam ingatan. Lalai ialah halaman sifar. Untuk menukar halaman gunakan kaedah arahan(0x101010), dan sebaliknya - arahan(0x101000).

Paparan tidak boleh memaparkan aksara daripada halaman yang berbeza pada masa yang sama.

Mari lihat contoh di mana baris yang sama akan berubah bergantung pada halaman yang dipilih.

change_page.ino // Sertakan perpustakaan LiquidCrystal standard#termasuk // Mulakan objek skrin, pindahkan yang digunakan // untuk menyambungkan pin pada Arduino adalah teratur:// RS, E, DB4, DB5, DB6, DB7 LiquidCrystal lcd(4, 5, 10, 11, 12, 13) ; persediaan batal() ( // tetapkan saiz (bilangan lajur dan baris) skrin lcd.begin(16, 2); ) gelung kosong() ( // tetapkan halaman penjana aksara kepada 0 (ini adalah lalai) lcd.command(0b101000); // cetak baris pertama lcd.print(" \x9b \x9c \x9d \x9e \x9f "); // tunggu 1 saat kelewatan(1000 ); // pasang halaman penjana 1 aksara lcd.command(0b101010); // tunggu 1 saat kelewatan(1000 ); // kosongkan paparan lcd.clear(); )

Paparan LCD Arduino membolehkan anda memaparkan data sensor secara visual. Kami akan memberitahu anda cara menyambung monitor LCD dengan betul ke Arduino melalui I2C dan melihat arahan asas untuk memulakan dan mengawal LCD 1602. Kami juga akan melihat pelbagai fungsi dalam bahasa pengaturcaraan C++ untuk memaparkan maklumat teks pada paparan , yang selalunya diperlukan untuk digunakan dalam projek Arduino.

Video. Paparan LCD Arduino I2C 1602

Sambungan LCD 1602 I2C ke Arduino

I2C ialah bas dua wayar bersiri untuk berkomunikasi litar bersepadu di dalam peranti elektronik, dikenali sebagai I²C atau IIC (Inter-Integrated Circuit). I²C telah dibangunkan oleh Philips pada awal 1980-an sebagai bas 8-bit mudah untuk komunikasi dalaman antara litar dalam elektronik kawalan (cth papan induk komputer, telefon bimbit, dll.).

Dalam sistem I²C mudah mungkin terdapat beberapa peranti hamba dan satu peranti induk yang memulakan pemindahan data dan menyegerakkan isyarat. Berbilang peranti hamba boleh disambungkan ke garisan SDA (garisan data) dan SCL (garisan jam). Selalunya peranti induk ialah pengawal Arduino, dan peranti hamba adalah jam masa nyata atau Paparan LCD.

Bagaimana untuk menyambungkan LCD 1602 ke Arduino melalui I2C

Paparan LCD 1602 dengan modul I2C disambungkan ke papan Arduino dengan hanya 4 wayar - 2 wayar data dan 2 wayar kuasa. Sambungan paparan 1602 dijalankan sebagai standard untuk bas I2C: pin S.D.A. menyambung ke port A4, output SCL– ke port A5. Paparan LCD dikuasakan daripada port +5V pada Arduino. Lihat gambar rajah sambungan monitor LCD 1602 dalam foto di bawah untuk butiran lanjut.

Untuk pelajaran ini kami memerlukan butiran berikut:

  • Papan Arduino Uno / Arduino Nano / Arduino Mega;
  • Monitor LCD 1602;
  • 4 wayar lelaki-perempuan.

Selepas menyambungkan monitor LCD ke Arduino melalui I2C, anda perlu memasang perpustakaan LiquidCrystal_I2C.h untuk bekerja dengan paparan LCD melalui antara muka dan perpustakaan I2C Kawat.h(tersedia dalam program IDE Arduino standard). Anda boleh memuat turun perpustakaan yang berfungsi LiquidCrystal_I2C.h untuk LCD 1602 dengan modul I2C pada halaman Arduino Libraries di tapak web kami melalui pautan terus dari Google Drive.

Lakaran untuk paparan 1602 dengan I2C

#termasuk // perpustakaan untuk mengawal peranti melalui I2C#termasuk // sambungkan perpustakaan untuk LCD 1602 LiquidCrystal_I2C lcd(0x27,20,2); // berikan nama kepada lcd untuk paparan 20x2 persediaan void () // persediaan prosedur ( lcd.init (); // mulakan paparan LCD lcd.lampu latar(); // dayakan lampu latar paparan lcd.setCursor(0,0); // letak kursor pada 1 aksara baris pertama lcd.print("SAYA SUKA"); // cetak mesej pada baris pertama lcd.setCursor(0,1); // letak kursor pada 1 aksara baris kedua lcd.print("ARDUINO"); // cetak mesej pada baris kedua) gelung lompang () // gelung prosedur ( /* ini adalah komen berbilang baris // pada mulanya prosedur void loop() tidak digunakan dalam sketsa lcd.noDisplay(); // matikan kelewatan lampu latar paparan LCD(500); // jeda lcd.display(); // hidupkan kelewatan lampu latar paparan LCD(500); // jeda */ }

Penjelasan untuk kod:

  1. perpustakaan LiquidCrystal_I2C.h mengandungi banyak arahan untuk mengawal paparan LCD melalui bas I²C dan membolehkan anda memudahkan lakaran dengan ketara;
  2. Lakaran mengandungi komen berbilang baris /* ... */, yang membolehkan anda mengulas beberapa baris dalam program sekaligus.
  3. Sebelum memaparkan maklumat pada paparan, anda mesti menetapkan kedudukan kursor dengan perintah setCursor(0,1) , di mana 0 ialah nombor aksara dalam baris, 1 ialah nombor baris.

Arahan ini menunjukkan cara menyambung ke Arduino dan menggunakan skrin LCD 16x2 dan 20x4.

Skrin ini mempunyai lampu latar terbina dalam berdasarkan LED berkuasa rendah dan beroperasi dari +5 V. Untuk menyambungkan skrin LCD ini, anda memerlukan 6 pin. Anda boleh menggunakan sebarang pin pada Arduino anda!

Arahan ditulis berdasarkan skrin LCD daripada Adafruit - biru&putih 16x2, RGB 16x2 LCD dan biru&putih 20x4, RGB 20x4. Jika anda menggunakan skrin LCD daripada pengeluar lain, tiada jaminan 100% ia akan berfungsi (walaupun ia berfungsi 99% sepanjang masa).

LCD watak dan grafik - apakah perbezaannya?

Terdapat sejumlah besar skrin LCD yang berbeza. Dalam artikel ini kita akan melihat LCD watak. Skrin seperti ini ialah pilihan yang bagus untuk memaparkan teks. Anda juga boleh menyesuaikan paparan ikon, tetapi saiz ikon ini tidak boleh melebihi 7 piksel (sangat kecil!).

Foto di bawah menunjukkan contoh bagaimana monitor LCD 16 aksara berfungsi dengan dua baris:

Jika anda melihat dengan teliti, anda akan melihat segi empat tepat kecil di mana simbol dipaparkan. Setiap segi empat tepat ialah grid piksel yang berasingan. Sebagai perbandingan, skrin LCD grafik ditunjukkan di bawah:

Paparan kristal cecair grafik mempunyai satu grid besar piksel (dalam contoh ini, 128x64). Anda boleh memaparkan teks padanya, tetapi lebih baik untuk memaparkan imej. LCD grafik biasanya lebih besar, mempunyai lebih banyak pin untuk sambungan, dan agak sukar untuk digunakan daripada LCD teks.

Dalam artikel ini kami hanya akan meliputi skrin teks/watak!

Model skrin LCD yang berbeza

Selepas kami mengehadkan jenis skrin yang sedang dipertimbangkan, mari lihat apakah ia.


Walaupun ia hanya digunakan untuk memaparkan teks, terdapat model dan faktor bentuk yang berbeza: LCD kiri atas ialah 20x4 dengan teks putih pada latar belakang biru, kanan atas ialah 16x4 dengan teks hitam pada latar belakang hijau, kiri bawah ialah 16x2 dengan teks putih pada latar belakang biru dan 16x1 dengan teks hitam pada latar belakang kelabu.

Berita baiknya ialah semua skrin ini boleh ditukar ganti. Jika anda telah mengkonfigurasi salah satu daripadanya, anda boleh menggantikannya dengan model lain. Lakaran Arduino perlu diubah sedikit, tetapi sambungannya adalah sama!


Dalam bahagian ini kami menggunakan skrin LCD dengan satu rel dan 16 pin untuk sambungan (lihat gambar di atas). Terdapat juga LCD dengan 2 rel 8 kenalan untuk sambungan (dalam rajah di bawah).


Menyambung model kedua ke papan litar tanpa pateri adalah lebih sukar.

Menyambungkan skrin LCD aksara ke Arduino

Memasang rel sesentuh


Selain skrin LCD, anda memerlukan pendawaian tambahan. Pertama, potensiometer 10 kOhm. Menggunakan potensiometer kami akan melaraskan kontras paparan. Setiap skrin LCD mempunyai tetapan kontras yang berbeza, jadi pelarasan adalah satu kemestian. Selain itu, anda memerlukan rel sesentuh 0.1".


Jika rel dengan sesentuh terlalu panjang, anda boleh memotong lebihan sesentuh!

Anda perlu menyolder pin ke paparan LCD.

Semasa memateri, berhati-hati supaya tidak merosakkan Breadboard anda! Mula-mula anda boleh "merebut" kenalan pertama dan 16, dan kemudian memateri yang lain.


Kuasa dan pencahayaan

Menyambung kuasa dan pencahayaan

Penjelasan


Kami mula mendapat beberapa perkara yang menarik! Pasang LCD anda pada papan roti.


Kami kuasakan papan roti daripada Arduino kami. Sambungkan +5V ke rel merah dan Gnd ke rel biru.


Selepas ini, kami akan menyambungkan lampu latar skrin LCD kami. Sambungkan pin 16 kepada gnd dan pin 15 kepada +5V. Kebanyakan skrin LCD mempunyai perintang untuk lampu latar.

Jika tiada perintang pada modul anda, anda perlu menambah satu antara 5V dan pin 15. Untuk mengira nilai perintang, semak arus maksimum untuk menghidupkan lampu latar dan nilai anggaran penurunan voltan daripada lembaran data. Tolak nilai kejatuhan voltan daripada 5V, kemudian bahagikan dengan amperage maksimum dan bulatkan kepada nilai perintang piawai yang lebih tinggi yang terdekat. Sebagai contoh, jika penurunan voltan ialah 3.5V dan arus ialah 16mA, nilai perintang ialah: (5 - 3.5)/0.016 = 93.75 ohm, atau 100 ohm selepas dibundarkan kepada nilai standard. Jika anda tidak menemui lembaran data, gunakan perintang 220 ohm. Benar, dalam kes ini lampu latar boleh menjadi agak pucat.


Sambungkan Arduino anda kepada kuasa. Lampu latar harus menyala.

Ngomong-ngomong, beberapa skrin LCD murah tidak mempunyai lampu latar!

Litar untuk melaraskan kontras

Litar untuk melaraskan kontras

Penjelasan


Pasang potensiometer. Dalam foto itu terletak di sebelah kanan pin 1.


Sambungkan satu sisi potensiometer ke +5V dan sebelah lagi ke Gnd. Sambungkan kenalan tengah potensiometer ke pin 3 pada LCD.


Sekarang kami menyambungkan logik skrin kami - ini adalah litar yang berasingan daripada lampu latar! Pin 1 pergi ke Gnd dan pin 2 pergi ke +5V.


Hidupkan Arduino anda. Jika Monitor LCD anda mempunyai lampu latar, ia sepatutnya menyala. Putar tombol potensiometer untuk melihat segi empat tepat pertama piksel pada baris pertama.

Jika semuanya berjaya, tahniah. Ini bermakna logik, pencahayaan dan kontras berfungsi! Jika ia tidak berfungsi, jangan teruskan ke langkah seterusnya dalam arahan sehingga anda mengetahui apakah ralatnya!

Sambungan akhir

D0 hingga D7, RS, EN dan RW. D0-D7 ialah pin yang menyimpan nilai yang dihantar ke paparan. Pin RS memberitahu pengawal sama ada kita akan memaparkan data (cth aksara ASCII) atau sama ada ia adalah bait kawalan (cth menukar kedudukan kursor). Pin EN adalah singkatan untuk "dayakan" dan dengan pin ini kami memberitahu LCD apabila data sedia untuk dibaca. Pin RW digunakan untuk menetapkan arah - kami mahu memaparkan (biasanya) atau membaca (kurang biasa digunakan) data daripada paparan.

Tidak semua pin ini perlu disambungkan ke Arduino. Sebagai contoh, tidak perlu menggunakan RW jika kita hanya memaparkan data pada skrin, jadi cukup untuk "menariknya" ke pin Gnd. Di samping itu, anda boleh berkomunikasi dengan skrin LCD menggunakan 4 pin dan bukannya 8. Soalan semula jadi mungkin timbul, dalam kes apakah 8 pin digunakan? Ini berkemungkinan besar menjejaskan kelajuan pemindahan data. Iaitu, dengan menggunakan 8 kenalan dan bukannya 4, anda boleh meningkatkan kelajuan pertukaran maklumat sebanyak 2 kali ganda. Dalam kes ini, kelajuan tidak penting, jadi kami menggunakan 4 pin untuk menyambungkan LCD ke Arduino.

Jadi, kita memerlukan 6 pin: RS, EN, D7, D6, D5, dan D4.

Untuk bekerja dengan skrin LCD, kami akan menggunakan perpustakaan LiquidCrystal, yang sangat memudahkan proses menyediakan pin. Salah satu kelebihan perpustakaan ini ialah anda boleh menggunakan sebarang pin pada Arduino untuk menyambungkan pin LCD. Jadi pada penghujung panduan ini, anda akan dapat menggantikan kenalan dengan mudah jika ia penting untuk projek anda.

Sambungan paparan akhir

Penjelasan


Seperti yang dinyatakan di atas, kami tidak akan menggunakan pin RW, jadi kami akan menariknya ke tanah. Ini pin 5.


Kemudian kita sambungkan RS - ini pin #4. Kami menggunakan wayar coklat untuk menyambungkannya ke pin digital #7 pada Arduino.


Gunakan wayar putih untuk menyambungkan pin EN - pin #6 ke pin digital #8 pada Arduino.


Kini tiba masanya untuk kenalan data. DB7 ialah pin #14 pada LCD. Ia disambungkan dengan wayar oren ke pin #12 pada Arduino.


Terdapat tiga pin data yang tinggal, DB6 (pin #13 kuning), DB5 (pin #12 hijau) dan DB4 (pin #11 biru). Mereka menyambung ke pin # 11, 10 dan 9 pada Arduino masing-masing.


Hasil daripada Sambungan, anda akan mendapat sesuatu yang serupa dengan foto di sebelah kiri.

Kami menggunakan LCD aksara

Sudah tiba masanya untuk memuat naik lakaran ke Arduino untuk mengawal skrin LCD. Pustaka LiquidCrystal dipasang dalam Arduino IDE secara lalai. Jadi kita hanya perlu memuat turun salah satu contoh dan menyesuaikannya sedikit mengikut pin yang kita gunakan untuk menyambung.

Buka Fail lakaran → Contoh → LiquidCrystal → HelloWorld.

Kami mengemas kini maklumat tentang pin. Kami sedang mencari baris berikut:

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Dan tukar kepada:

Kini anda boleh menyusun dan memuat naik lakaran ke Arduino.


Jika perlu, laraskan kontras


Sememangnya, anda boleh menggunakan paparan LCD dengan sebarang saiz. Contohnya, foto di bawah menunjukkan pengendalian LCD 20x4.


Atau teks hitam pada latar belakang hijau:


Salah satu kelebihan skrin dengan teks hitam pada latar belakang hijau ialah keupayaan untuk mematikan lampu latar.


Mari kita gunakan berapa banyak baris

Mari kita fahami cara skrin LCD mengendalikan mesej panjang dan berbilang baris. Sebagai contoh, jika anda menukar baris berikut:

lcd.print("hello, dunia!");

Kepada yang seterusnya:

lcd.print("hello, dunia! ini mesej yang panjang lebar");

Paparan LCD 16x2 akan memotong segala-galanya selepas aksara ke-16:


Tetapi LCD 20x4 akan membawa aksara yang tidak dipaparkan dari baris pertama ke baris ketiga (baris kedua akan diteruskan ke baris keempat). Ia tidak begitu mudah, tetapi pada peringkat ini anda perlu bersabar dengannya. Jadi apabila memaparkan rentetan panjang, kira aksara supaya anda tidak melebihi panjang yang dibenarkan.


LCD dengan lampu latar RGB

Skrin ini berfungsi sama seperti skrin biasa, tetapi terdapat tiga LED (merah, hijau, biru) untuk lampu latar, jadi anda boleh menggunakan warna lampu latar yang berbeza.

Selepas menyambungkan LCD dan menyemaknya mengikut arahan di atas, sambungkan LED ke pin analog PWM Arduino anda untuk memperhalusi warna. Jika anda menggunakan Arduino Uno, anda sepatutnya mempunyai tiga pin PWM percuma yang tinggal. sambungkan LED merah (pin 16 pada LCD) ke Digital 3, LED hijau (pin 17) ke Digital 5 dan LED biru (pin 18 pada LCD) ke digital 6. Modul LCD sudah mempunyai perintang, jadi anda tidak perlu menyambung yang perlu.


Sekarang muat naik lakaran di bawah ke Arduino anda.

// masukkan dalam lakaran perpustakaan:

#termasuk

#termasuk

#define REDLITE 3

#define GREENLITE 5

#define BLUELITE 6

// mengisytiharkan bilangan kenalan yang kami gunakan

// untuk pemindahan data

lcd LiquidCrystal(7, 8, 9, 10, 11, 12);

// kecerahan boleh ditukar dalam julat 0 -> 255

kecerahan int = 255;

// tetapkan bilangan lajur dan baris pada LCD:

lcd.begin(16, 2);

// paparkan mesej pada LCD.

lcd.print("Paparan RGB 16x2 ");

lcd.setCursor(0,1);

lcd.print(" LCD Pelbagai Warna ");

pinMode(REDLITE, OUTPUT);

pinMode(GREENLITE, OUTPUT);

pinMode(BIRU, OUTPUT);

kecerahan = 100;

untuk (int i = 0; i< 255; i++) {

setBacklight(i, 0, 255-i);

untuk (int i = 0; i< 255; i++) {

setBacklight(255-i, i, 0);

untuk (int i = 0; i< 255; i++) {

setBacklight(0, 255-i, i);

void setBacklight(uint8_t r, uint8_t g, uint8_t b) (

// sediakan LED merah - ia lebih terang daripada yang lain!

r = peta(r, 0, 255, 0, 100);

g = peta(g, 0, 255, 0, 150);

r = peta(r, 0, 255, 0, kecerahan);

g = peta(g, 0, 255, 0, kecerahan);

b = peta(b, 0, 255, 0, kecerahan);

// anod sepunya, jadi terbalikkan!

r = peta(r, 0, 255, 255, 0);

g = peta(g, 0, 255, 255, 0);

b = peta(b, 0, 255, 255, 0);

Serial.print("R = "); Serial.print(r, DEC);

Serial.print(" G = "); Serial.print(g, DEC);

Serial.print(" B = "); Serial.println(b, DIS);

analogWrite(REDLITE, r);

analogWrite(GREENLITE, g);

analogWrite(BLUELITE, b);

Hasil lakaran ini ditunjukkan dalam video di bawah.

arahan createChar

Anda mungkin mahu menggunakan aksara khas. Contohnya, jika anda mereka bentuk projek menggunakan penderia suhu (termokopel), simbol (°) akan berguna.

Ini boleh dicapai menggunakan arahan createChar. Sebagai alternatif, anda mungkin menemui tapak web yang hebat yang akan melakukan semua kerja kotor mencipta simbol baharu untuk anda!

Tinggalkan komen, soalan dan kongsi pengalaman peribadi anda di bawah. Idea dan projek baru sering dilahirkan dalam perbincangan!

Arduino Nano telah tiba, kit telah tiba, mengandungi papan roti dan paparan LCD. Paparan pada papan tertera - 1602A, di bawah - QAPASS. Saya mula memahat peranti pertama, dan sudah tentu, saya mahu memaparkan maklumat pada paparan, dan tidak berkelip LED.

Google membantu, memberitahu saya bahawa ini ialah paparan aksara; Jika anda tidak memutarbelitkannya, kemungkinan besar aksara ASCII tersedia - nombor, Latin, beberapa aksara asas.

Bahan berikut membantu melancarkan paparan: Memandu LCD jenis aksara daripada port pencetak PC; Bagaimana untuk menyambung Arduino dengan LCD aksara; Kawalan Motor Pemacu Servo Pwm PDF.

Paparannya agak biasa, dan perisai telah dicipta untuknya - terdapat pilihan dengan SPI, seperti, dan/atau dengan I2C, dan Internet penuh dengan resipi untuk kes ini. Tetapi saya hanya mempunyai paparan 16x2 asal dan Arduino yang saya mahu pasangkannya.

Paparan mempunyai mod operasi dan penghantaran data dalam nibbles, 4 bit setiap satu, manakala bit tertib rendah bas tidak digunakan. Menyambungkan hanya separuh daripada bas data diterangkan di banyak tempat, dan saya tidak tahu cara menyambungkan paparan dan bekerja dengannya melalui 8 baris. Saya cukup gembira dengan cara ia berfungsi.

Saya menemui penerangan yang baik tentang paparan jenis ini di sini - http://greathard.ucoz.com/44780_rus.pdf. Dan di sini (http://arduino.ru/forum/programmirovanie/lcd-i2c-partizanit#comment-40748) ialah contoh menentukan penjana aksara.

Sambungan

Paparan saya disertakan dengan kenalan yang tidak dipateri. Dari awal saya ingin menyolder kabel, memotong 16 wayar dengan dupon, dan membersihkannya. Dan kemudian saya menggali ikan paus dan menemui sikat DuPont untuk pematerian ke papan. Dari sana saya memutuskan 16 kenalan dan mematerinya.
Paparan saya kelihatan seperti ini (sebelum memateri kenalan):

Mula-mula saya menyambungkan pin 15 (A) ke +5V, 16 (K) ke tanah, dan memastikan lampu latar berfungsi. Secara umum, adalah betul untuk menyambungkan katod ke tanah melalui perintang 220 Ohm, yang kemudiannya saya lakukan.

Kemudian saya menyambungkan tanah (1) dan kuasa (2). Arduino boleh dikuasakan daripada USB, daripada voltan stabil 5V dan daripada 6-12V yang tidak stabil, voltan tertinggi dipilih secara automatik. Sekarang Arduino dikuasakan dari USB, dan saya tertanya-tanya di mana untuk mendapatkan 5 Volt. Ternyata 5V berada pada pin Arduino, di mana 5V stabil luaran disambungkan. Atau sebaliknya, ia ternyata 4.7V, tetapi itu sudah cukup untuk saya.

Selepas menyambungkan kuasa, jika semuanya baik-baik saja, maka baris atas menyala dengan segi empat tepat biasa.

Kemudian kami menyambungkan potensiometer kontras (pin 3 V0). Kami membuang salah satu terminal melampau potensiometer ke tanah, yang kedua ke +5V, yang tengah ke pin 3 paparan. Potensiometer 10K disyorkan. Saya mempunyai 50K daripada ikan paus, saya menggunakannya dahulu. Pelarasan hanya pada satu tepi; ia perlu untuk menangkap kontras yang diingini dengan sangat halus. Kemudian saya menemui yang serupa pada 5K dalam ikan paus lain dan memasangnya. Tetapan terbentang dari satu tepi kepada separuh pusingan. Nampaknya, anda boleh mengambil potensiometer yang lebih kecil. 10K mungkin disyorkan supaya litar menggunakan kurang. Ya, saya terpaksa melakukan sedikit pematerian; Saya menyolder wayar dengan dupon ke terminal potensiometer.

Lakaran ujian

Kami mengambil lakaran ujian daripada contoh dari Arduino Studio - "C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\ex amples\HelloWorld\HelloWorld.ino", hanya perlu menukar kenalan kepada kita - LiquidCrystal lcd( 7, 6, 5, 4, 3, 2);

Pada dasarnya, lakaran ini juga mengandungi penerangan tentang apa yang hendak disambungkan ke mana. Anda boleh menyambungkannya seperti yang ditunjukkan di sana, maka anda tidak perlu menukar apa-apa sama sekali.

// sertakan kod perpustakaan: #include // mulakan perpustakaan dengan nombor pin antara muka LiquidCrystal lcd(7, 6, 5, 4, 3, 2); void setup() ( // sediakan bilangan lajur dan baris LCD ": lcd.begin(16, 2); // Cetak mesej ke LCD. lcd.print("hello, world!"); ) void loop() ( // tetapkan kursor ke lajur 0, baris 1 // (nota: baris 1 ialah baris kedua, kerana pengiraan bermula dengan 0): lcd.setCursor(0, 1); // cetak bilangan saat sejak ditetapkan semula: lcd.print(millis() / 1000); )

Ternyata seperti ini:

By the way, paparan yang datang ke tangan saya tidak berfungsi tanpa lampu latar. Maksud saya, ia berfungsi, tetapi anda hampir tidak dapat melihat apa-apa.

1602A Paparan Kenalan

# kenalan Nama Bagaimana untuk menyambung
1 VSS GND
2 VDD +5V
3 V0 Kontras - ke terminal tengah potensiometer
4 RS (Daftar pilih) D7 Arduino
5 R/W (Baca atau tulis) GND
6 E (Dayakan isyarat) D6 Arduino
7-14 D0-D7 D0-D3 - tidak disambungkan; D4-D7 - disambungkan ke pin D5-D2 Arduino
15 A Anod lampu latar, disambungkan kepada +5V
16 K Katod lampu latar, disambungkan ke tanah melalui perintang 220 Ohm

Dalam pelajaran ini kita akan bercakap tentang penunjuk kristal cecair pensintesis aksara, menyambungkannya ke papan Arduino dan mengawal penunjuk menggunakan perpustakaan LiquidCrystal dan LiquidCrystalRus.

Walaupun penunjuk LED tujuh segmen adalah pilihan petunjuk termurah untuk peranti elektronik, penggunaannya dihadkan oleh dua kelemahan yang ketara.

  • Secara praktikalnya sukar untuk menyambungkan lebih daripada 8 digit penunjuk LED ke mikropengawal. Sebilangan besar pin, arus penunjuk ketara, suis kompleks, frekuensi penjanaan semula yang rendah, dll. diperlukan.
  • Adalah mustahil untuk memaparkan maklumat simbolik pada penunjuk tujuh segmen.

Untuk memaparkan maklumat teks atau nombor yang lebih besar daripada 4 digit, adalah lebih praktikal untuk menggunakan penunjuk pensintesis aksara kristal cecair (paparan). Kelebihan mereka termasuk:

  • antara muka yang mudah untuk menyambung kepada mikropengawal;
  • penggunaan kuasa yang rendah;
  • voltan bekalan rendah;
  • ketahanan.

Terdapat sejumlah besar penunjuk paparan kristal cecair (LCD) yang berbeza daripada pengeluar yang berbeza di pasaran. Hampir kesemuanya adalah serupa dalam parameter, isyarat antara muka dan arahan kawalan. Pada masa ini, penunjuk LCD yang paling biasa di pasaran Rusia ialah peranti yang dikeluarkan oleh Winstar, Taiwan. Saya akan merujuk kepada penunjuk syarikat ini. Tetapi maklumat itu juga boleh digunakan untuk paparan LCD aksara daripada pengeluar lain.

Maklumat am.

Pensintesis aksara atau penunjuk simbolik memaparkan maklumat dalam bentuk aksara kapasiti tertentu. Satu kebiasaan memaparkan satu watak. Bilangan tempat biasa menentukan kapasiti digit penunjuk. Maklumat tentang penunjuk boleh dipaparkan pada beberapa baris, jadi untuk penunjuk jenis ini bilangan aksara setiap baris dan bilangan baris sentiasa ditunjukkan.

Maklumat dipaparkan pada matriks kristal cecair dengan lampu latar LED. Lampu latar datang dalam pelbagai warna, yang sangat menghidupkan maklumat teks monokrom.

Untuk mengawal matriks kristal cecair dan mengatur antara muka penunjuk, pengawal HD44780 terbina dalam atau analog penuhnya digunakan. Pengawal ini menentukan isyarat antara muka penunjuk dan arahan kawalan.

HD44780 telah menjadi standard de facto untuk paparan paparan kristal cecair (LCD). Dokumentasi teknikal untuk pengawal HD44780 dalam format PDF boleh dilihat di pautan ini -. Mungkin seseorang akan menyukai dokumentasi salah satu analog pengawal ini - SPLC780D. Pautan dalam format PDF - .

Penunjuk LCD watak dari Winstar.

Saya mengetahui pilihan berikut untuk penunjuk LCD daripada syarikat ini.

Jenis penunjuk Format paparan, aksara x baris Dimensi, mm Dimensi kawasan yang boleh dilihat, mm Pautan ke dokumentasi, format PDF
WH0802A1 8 x 2 58 x 32 38 x 16
WH1202A 12 x 2 55.7 x 32 46 x 14.5
WH1601A 16 x 1 80 x 36 66 x 16
WH1601B 16 x 1 85 x 28 66 x 16
WH1601L 16 x 1 122 x 33 99 x 13
WH1602A 16 x 2 84 x 44 66 x 16
WH1602B 16 x 2 80 x 36 66 x 16
WH1602C 16 x 2 80 x 36 66 x 16
WH1602D 16 x 2 85 x 30 66 x 16
WH1602J 16 x 2 80 x 36 66 x 16
WH1602L1 16 x 2 122 x 44 99 x 24
WH1602M 16 x 2 85 x 32.6 66 x 16
WH1602O 16 x 2 85 x 25.2 66 x 16
WH1602P 16 x 2 85 x 25.2 66 x 16
WH1602S 16 x 2 59 x 29.3 52 x 15
WH1602T 16 x 2 65.4 x 28.2 54.8 x 19
WH1602W 16 x 2 80 x 36 66 x 16
WH1602V2 16 x 2 66.7 x 23.3 61 x 15.9
WH1604A 16 x 4 87 x 60 62 x 26
WH1604B 16 x 4 70.6 x 60 60 x 32.6
WH2002A 20 x 2 116 x 37 85 x 18.6
WH2002D 20 x 2 89 x 21.5 75 x 15
WH2002L 20 x 2 180 x 40 149 x 23
WH2002M 20 x 2 146 x 43 123 x 23
WH2004A 20 x 4 98 x 60 77 x 25.2
WH2004B 20 x 4 98 x 60 77 x 25.2
WH2004D 20 x 4 77 x 47 60 x 22
WH2004G 20 x 4 87 x 58 74.4 x 24.8
WH2004H 20 x 4 87 x 58 74.4 x 24.8
WH2004L 20 x 4 146 x 62.5 123.5 x 43
WH2402A 24 x 2 118 x 36 94.5 x 16
WH4002A 40 x 2 182 x 33.5 154.4 x 16.5
WH4004A 40 x 4 190 x 54 147 x 29.5

Menyambung penunjuk LCD kepada mikropengawal.

Gambar rajah sambungan, gambar rajah masa, parameter isyarat, arahan kawalan dan kod simbol diterangkan secara terperinci dalam dokumentasi untuk pengawal HD44780. Saya hanya akan memberikan data yang paling diperlukan untuk menyambungkan penunjuk kepada mikropengawal.

Biasanya, penunjuk LCD mempunyai 16 pin.

Nombor PIN Isyarat I - input O - output Tujuan isyarat
1 Vss - Tanah (biasa)
2 Vdd - Bekalan kuasa +5V
3 Vo - Paparkan kawalan kontras. Input untuk menyambung keluaran tengah pembahagi voltan + 5 V. Anda boleh menggunakan perintang pemangkasan dengan rintangan 10-20 kOhm.
4 R.S. saya Pilihan daftar: 0 – daftar arahan; 1 – daftar data. Tahap isyarat rendah bermakna arahan telah dihasilkan pada bas data, tahap tinggi bermakna arahan telah dihasilkan pada bas data.
5 R/W saya Arah pemindahan data:

0 – rekod;

1 – membaca.

Dalam kebanyakan aplikasi, fungsi baca tidak digunakan, jadi isyarat sering disambungkan ke tanah.

6 E saya Strob operasi bas (di tepi negatif).
7 DB0 I/O Bit tertib rendah mod lapan bit. Tidak digunakan dengan antara muka empat bit.
8 DB1 I/O
9 DB2 I/O
10 DB3 I/O
11 DB4 I/O Bit yang paling ketara dalam mod lapan bit atau bit data antara muka empat bit.
12 DB5 I/O
13 DB6 I/O
14 DB7 I/O
15 A - Anod kuasa lampu latar (+).
16 K - Katod kuasa lampu latar (-). Arus mesti terhad.

Nombor pin (lajur pertama) adalah untuk pilihan yang paling biasa. Adalah lebih baik untuk menyemak dengan memuat turun dokumentasi untuk jenis penunjuk anda daripada jadual di bahagian sebelumnya.

Paparan LCD aksara menyokong dua pilihan sambungan kepada mikropengawal:

  • Menggunakan bas data 8-bit. Semua isyarat bas DB0-DB7 disambungkan. Dalam satu kitaran pertukaran, satu bait maklumat dihantar.
  • Menggunakan bas data 4-bit. Hanya 4 bit paling ketara DB4-DB7 disambungkan. Maklumat dihantar empat bit setiap kitaran jam bas.

Pilihan pertama menyediakan pemindahan data ke paparan pada kelajuan yang lebih tinggi. Yang kedua memerlukan 4 pin yang lebih sedikit untuk menyambungkan penunjuk. Tidak dinafikan, adalah lebih penting untuk mengurangkan bilangan pin sambungan daripada meningkatkan kelajuan pertukaran. Selain itu, penunjuk LCD adalah peranti yang agak perlahan dengan masa kitaran penjanaan semula 10-20 ms.

Menyambungkan paparan LCD aksara ke papan Arduino.

Saya akan menyambungkan penunjuk WH2004A (4 baris 20 aksara setiap satu) dalam mod pertukaran empat bit ke papan Arduino UNO R3. Anda boleh melihat dokumentasi untuk paparan LCD WH2004 di pautan ini.

Rajah kelihatan seperti ini.

Perintang R2 dan R3 menentukan kontras penunjuk. Anda boleh menyambungkan perintang trim dan menetapkan kejelasan imej yang diperlukan. Saya sering menggunakan penunjuk WH2004, dan dalam litar saya, saya memilih nilai perintang ini.

Saya menyambungkan LED lampu latar penunjuk kepada sumber kuasa 5 V melalui perintang R1 (30 Ohm). Dengan ini saya menetapkan arus kepada kira-kira 25 mA. Redup, tetapi bercahaya. Anda boleh melihat dengan baik dalam gelap. Walaupun penunjuk WH2004 membenarkan arus lampu latar sehingga 580 mA.

Perpustakaan untuk mengawal penunjuk LCD dalam sistem Arduino LiquidCrystal.

Terdapat perpustakaan standard untuk mengawal penunjuk LCD berdasarkan pengawal HD44780. Saya akan menerangkan kaedah beliau secara terperinci.

LiquidCrystal(…)

Pembina kelas. Mungkin mempunyai bilangan hujah yang berbeza.

  • LiquidCristal(rs, en, d4, d5, d6, d7) – antara muka empat bit, isyarat RW tidak digunakan (disambungkan ke tanah).
  • LiquidCristal(rs,rw, en, d4, d5, d6, d7) – antara muka empat bit, isyarat RW digunakan.
  • LiquidCristal(rs, en, d0, d1, d2, d3, d4, d5, d6, d7) – antara muka lapan bit, isyarat RW tidak digunakan (disambungkan ke tanah).
  • LiquidCristal(rs, rw, en, d0, d1, d2, d3, d4, d5, d6, d7) – antara muka lapan bit, isyarat RW digunakan.

Hujah:

  • rs - nombor pin isyarat RS;
  • rw – nombor keluaran isyarat RW;
  • en – nombor keluaran isyarat E;
  • d0, d1, d2, d3, d4, d5, d6, d7 – nombor pin bas data.

CecairCrystal disp(6, 7, 2, 3, 4, 5);

batal bermula (kol, baris)

Memulakan antara muka penunjuk. Menetapkan dimensi penunjuk. Kaedah mesti dipanggil terlebih dahulu, sebelum fungsi kelas lain digunakan.

Hujah:

  • cols – bilangan aksara dalam baris;
  • baris – bilangan baris.

disp.begin(20, 4); // kami menggunakan paparan - 4 baris 20 aksara

void clear()

Membersihkan skrin, meletakkan kursor di sudut kiri atas.

disp.clear(); // set semula paparan

kosongkan rumah()

Letakkan kursor di sudut kiri atas.

disp.home(); // ke permulaan skrin

void setCursor(col, row)

Meletakkan kursor pada kedudukan yang ditentukan.

  • kol – koordinat X, penomboran dari 0;
  • baris - koordinat Y, bernombor dari 0.

setCursor(0,1); // kursor ke permulaan baris kedua

tulis bait(data)

Memaparkan simbol pada skrin. Mengembalikan bilangan bait yang dipindahkan.

Lakaran berikut memaparkan data daripada port bersiri. Data boleh dihantar oleh monitor port IDE Arduino.

// Output data port bersiri pada penunjuk LCD
#termasuk


data char;

persediaan batal()
{
Serial.begin(9600); // mulakan port bersiri
disp.begin(20, 4); //
}

gelung kosong()
{
jika (Serial.available()) ( // jika ada data
data= Serial.read(); // baca simbol
if((data != 0xd) && (data != 0xa)) ( // suapan baris
disp.write(data); // memaparkan simbol pada skrin
}
}
}

Saya mempunyai penunjuk besar - 4 baris 20 aksara. Ia mengandungi dua pengawal HD44780. Oleh itu, aksara yang dihantar secara berurutan mengisi pertama baris pertama, kemudian ketiga, kemudian kedua dan keempat. Itu. melalui talian. Sifat ini mesti diambil kira untuk jenis penunjuk tertentu. Dokumentasi untuk setiap penunjuk LCD menunjukkan urutan pengalamatan aksara.

cetakan bait(data)

Memaparkan teks pada skrin. Mengembalikan bilangan bait yang dipindahkan.

Hujah:

data – data untuk dipaparkan pada skrin. Boleh mempunyai jenis char, byte, int, long, string.

Mungkin ada hujah kedua, pilihan.

cetakan bait(data, BASE)

  • BASE – menentukan sistem nombor:
  • BIN – binari;
  • DEC – perpuluhan;
  • OCT – oktal:
  • HEX – perenambelasan.

Contoh program yang mencetak rentetan teks pada paparan.

// memaparkan baris teks pada penunjuk LCD
#termasuk

CecairCrystal disp(6, 7, 2, 3, 4, 5); // cipta objek

persediaan batal()
{
disp.begin(20, 4); // mulakan paparan 4 baris 20 aksara
disp.print("Rentetan ujian");
}

gelung kosong()
{ }

kosongkan kursor()

Mendayakan mod paparan kursor. Kedudukan di mana watak seterusnya akan dikeluarkan digariskan.

disp.cursor(); // benarkan paparan kursor

batal tiadaKursor()

Melumpuhkan paparan kursor.

disp.noCursor(); // lumpuhkan paparan kursor

kejap kosong()

Mendayakan mod kursor berkelip. Digunakan bersama dengan fungsi kursor(). Hasilnya bergantung pada model penunjuk tertentu.

disp.blink(); // benarkan kursor berkelip

batal noBlink()

Melumpuhkan mod kursor berkelip.

disp.noBlink(); // lumpuhkan kursor berkelip

paparan kosong()

Menghidupkan skrin selepas ia dimatikan oleh noDisplay(). Skrin akan memaparkan maklumat yang ada sebelum penutupan.

display.display(); // hidupkan paparan

batal noDisplay()

Mematikan skrin. Maklumat disimpan dalam ingatan dan muncul apabila paparan dihidupkan.

disp.noDisplay(); // mematikan paparan

batal skrolDisplayLeft()

Tatal paparan kandungan satu aksara ke kiri.

disp. scrollDisplayLeft(); // gerakkan semuanya ke kiri

batal tatalDisplayRight()

Tatal paparan kandungan satu aksara ke kanan.

disp. scrollDisplayRight(); // gerakkan semuanya ke kanan

batal autoscroll()

Dayakan mod tatal teks automatik. Apabila setiap aksara dipaparkan, semua teks pada skrin akan beralih dengan satu aksara. Fungsi leftToRight() dan rightToLeft() menentukan arah mana maklumat dialihkan.

disp. autoscroll())(; // dayakan autoscroll

batal noAutoscroll()

Matikan penatalan teks automatik.

disp. noAutoscroll())(; // lumpuhkan autoscroll

batal leftToRight()

Menetapkan mod output ujian dari kiri ke kanan. Simbol baharu akan muncul di sebelah kanan yang sebelumnya.

kiri ke kanan(); // mod kiri-ke-kanan

void rightToLeft()

Menetapkan mod output ujian dari kanan ke kiri. Simbol baharu akan muncul di sebelah kiri yang sebelumnya.

kanan ke kiri(); // mod kanan ke kiri

batal createChar(bilangan, data)

Kaedah untuk mencipta simbol tersuai. Pengawal membenarkan penciptaan sehingga 8 aksara (0...7) 5x8 piksel. Imej simbol ditentukan oleh tatasusunan 8-bait. 5 bit paling tidak ketara bagi setiap bait menentukan keadaan piksel dalam baris.

Untuk mengeluarkan aksara tersuai, anda boleh menggunakan fungsi write() dengan nombor aksara.

// mencipta simbol tersuai
#termasuk

CecairCrystal disp(6, 7, 2, 3, 4, 5); // cipta objek

senyuman bait = (
B00000000,
B00010001,
B00000000,
B00000000,
B00010001,
B00001110,
B00000000,
B00000000
};

persediaan batal()
{
disp.createChar(0, senyuman); // buat simbol
disp.begin(20, 4); // mulakan paparan 4 baris 20 aksara
disp.print("Senyum");
disp.write(bait(0)); // cetak simbol
}

gelung kosong()
{ }

Berikut ialah contoh program yang memaparkan abjad Rusia.

// Keluaran abjad Rusia
#termasuk

LiquidCrystalRus disp(6, 7, 2, 3, 4, 5); // cipta objek

persediaan batal()
{
disp.begin(20, 4); // mulakan paparan 4 baris 20 aksara
disp.print("abvgdeezhziyklmnoprst");
disp.print("ABVGDEYOZHIYKLMNOPRST");
disp.print("ufhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh,");

Kategori: . Anda boleh menanda bukunya.