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

Buat Animasi Khusus pada Layar LCD 16x2

Komponen dan persediaan

Arduino UNO
Semua papan Arduino.
× 1
Adafruit LCD Standar - 16x2 Putih di Atas Biru
Semua layar LCD berukuran 16x2 yang kompatibel dengan Hitachi HD44780 akan berfungsi di sini.
× 1
Resistor 220 ohm
Semua resistor dalam kisaran 220 - 1k Ohm. Nilai yang lebih besar akan lebih meredupkan layar.
× 1

Aplikasi dan layanan online

Arduino IDE
Generator Glyph Khusus

Tentang proyek ini

Pustaka LiquidCrystal memudahkan penggunaan LCD dengan Arduino. Fungsi yang sangat menarik dari perpustakaan itu adalah fungsi createChar():Anda dapat membuat mesin terbang khusus (karakter), masing-masing dijelaskan oleh larik delapan byte, satu untuk setiap baris. Lima bit paling tidak signifikan dari setiap byte menentukan piksel di baris itu. Menulis byte dengan tangan untuk menciptakan seni bukanlah proses ideal seorang seniman, jadi Saya telah membuat alat web di mana Anda dapat menggambar mesin terbang, dan kode dibuat untuk Anda .

Dalam artikel ini saya akan menunjukkan cara membuat animasi kustom yang hanya memiliki papan Arduino dan LCD - yang dapat Anda gunakan untuk membuat banyak proyek:Anda dapat membuat game, atau cerita pendek, atau video musik, atau menghias panel status.

Menghubungkan LCD ke Arduino

Hubungkan LCD ke Arduino - tergantung pada model layar Anda, koneksi yang berbeda mungkin bekerja lebih baik. Untuk salah satu layar saya, skema di bawah ini bekerja dengan baik - tetapi untuk yang lain, saya harus menggunakan potensiometer (seperti dalam tutorial di bawah tautan ini) dan mengubah nilai resistor untuk mendapatkan kontras terbaik.

Lihat simulasi di TinkerCad di bawah tautan ini.

Membuat Seni

Buka alat di https://tusindfryd.github.io/screenduino/ dan buat karya seni Anda. Hingga 8 bagian dapat digunakan sekaligus, jadi jika Anda tidak dapat memilih kotak baru, pastikan Anda belum menggunakan 8 bagian.

Membuat Kode

Setelah selesai dengan gambar pertama Anda, hapus centang yang kotak "hanya yang fungsi" . Salin kode ke clipboard dan unggah ke Arduino Anda. Pada titik ini Anda akan melihat gambar Anda di LCD.

Membuat Lebih Banyak Bingkai

Pastikan kode Anda disimpan. Anda sekarang dapat membuat bingkai kedua. Hanya menggambar gambar lain. Setelah selesai, periksa yang kotak "hanya yang fungsi" . Salin fungsi dan tempel di akhir kode Anda. Ganti nama fungsi baru menjadi sesuatu yang lain - seperti image01() , sehingga Anda dapat melacak. Sekarang Anda perlu memindahkan panggilan ke image() dari setup() fungsi ke loop() fungsi, tambahkan penundaan, panggil image01() , dan tambahkan penundaan lagi. Pertimbangkan untuk mengganti nama image() ke image00() untuk konsistensi. loop() . Anda fungsi akan terlihat seperti ini:

void loop(){ image00(); penundaan (250); gambar01(); delay(250);} 

Unggah sketsa ke Arduino Anda. Coba tambahkan lebih banyak bingkai atau ubah waktu tunda.

Kode

  • Animasi Metamorfosis Kupu-kupu
Animasi Metamorfosis Kupu-kupuArduino
Ini adalah contoh kode (kode di balik animasi metamorfosis kupu-kupu dari gif).
/* animasi metamorfosis kupu-kupu 2021 ~ oleh tusindfryd kode ini ada di domain publik*/#include LiquidCrystal lcd(12, 11 , 5, 4, 3, 2); // RS, E, D4, D5, D6, D7void setup(){ lcd.begin(16, 2);}void loop(){ image00(); penundaan (250); gambar01(); penundaan (250); gambar02(); penundaan (250); gambar03(); penundaan (700); gambar04(); penundaan (250); gambar05(); penundaan (250); gambar06(); penundaan (700); gambar07(); delay(1250);}void image00(){ lcd.clear(); byte image22[8] ={B00110, B01101, B11011, B10011, B00111, B01111, B01111, B11111}; byte image23[8] ={B01111, B11110, B11100, B11000, B11000, B10000, B10000, B000000}; byte image07[8] ={B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00111}; byte image08[8] ={B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11000}; byte image09[8] ={B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; lcd.createChar(0, image22); lcd.createChar(1, image23); lcd.createChar(2, image07); lcd.createChar(3, image08); lcd.createChar(4, image09); lcd.setCursor(5, 1); lcd.tulis(byte(0)); lcd.setCursor(6, 1); lcd.write(byte(1)); lcd.setCursor(6, 0); lcd.write(byte(2)); lcd.setCursor(7, 0); lcd.write(byte(3)); lcd.setCursor(8, 0); lcd.write(byte(4));}void image01(){ lcd.clear(); byte image22[8] ={B00110, B00101, B00011, B00011, B00111, B01111, B01111, B11111}; byte image23[8] ={B01111, B11110, B11100, B11000, B11000, B10000, B10000, B000000}; byte image07[8] ={B00000, B00000, B00000, B00000, B00000, B00000, B11001, B10111}; byte image08[8] ={B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11000}; byte image09[8] ={B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; byte image06[8] ={B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00011}; lcd.createChar(0, image22); lcd.createChar(1, image23); lcd.createChar(2, image07); lcd.createChar(3, image08); lcd.createChar(4, image09); lcd.createChar(5, image06); lcd.setCursor(5, 1); lcd.tulis(byte(0)); lcd.setCursor(6, 1); lcd.write(byte(1)); lcd.setCursor(6, 0); lcd.write(byte(2)); lcd.setCursor(7, 0); lcd.write(byte(3)); lcd.setCursor(8, 0); lcd.write(byte(4)); lcd.setCursor(5, 0); lcd.write(byte(5));}void image02(){ lcd.clear(); byte image22[8] ={B00000, B00001, B00011, B00011, B00111, B01111, B01111, B11111}; byte image23[8] ={B01111, B11110, B11100, B11000, B11000, B10000, B10000, B000000}; byte image07[8] ={B00000, B00000, B00000, B00001, B00111, B00100, B11001, B10111}; byte image08[8] ={B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11000}; byte image09[8] ={B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; lcd.createChar(0, image22); lcd.createChar(1, image23); lcd.createChar(2, image07); lcd.createChar(3, image08); lcd.createChar(4, image09); lcd.setCursor(5, 1); lcd.tulis(byte(0)); lcd.setCursor(6, 1); lcd.write(byte(1)); lcd.setCursor(6, 0); lcd.write(byte(2)); lcd.setCursor(7, 0); lcd.write(byte(3)); lcd.setCursor(8, 0); lcd.write(byte(4));}void image03(){ lcd.clear(); byte image22[8] ={B00000, B00001, B00011, B00011, B00111, B01111, B01111, B11111}; byte image23[8] ={B01111, B11110, B11100, B11000, B11000, B10000, B10000, B000000}; byte image07[8] ={B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00111}; byte image08[8] ={B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11010}; byte image09[8] ={B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; byte image24[8] ={B00010, B00111, B00111, B00111, B00111, B00111, B00010, B000000}; lcd.createChar(0, image22); lcd.createChar(1, image23); lcd.createChar(2, image07); lcd.createChar(3, image08); lcd.createChar(4, image09); lcd.createChar(5, image24); lcd.setCursor(5, 1); lcd.tulis(byte(0)); lcd.setCursor(6, 1); lcd.write(byte(1)); lcd.setCursor(6, 0); lcd.write(byte(2)); lcd.setCursor(7, 0); lcd.write(byte(3)); lcd.setCursor(8, 0); lcd.write(byte(4)); lcd.setCursor(7, 1); lcd.write(byte(5));}void image04(){ lcd.clear(); byte image22[8] ={B00000, B00001, B00011, B00011, B00111, B01111, B01111, B11111}; byte image23[8] ={B01111, B11110, B11100, B11000, B11000, B10001, B10000, B000000}; byte image07[8] ={B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00111}; byte image08[8] ={B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11010}; byte image09[8] ={B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; byte image24[8] ={B00010, B00100, B01011, B10101, B11010, B10101, B11010, B01110}; byte image25[8] ={B00000, B00000, B00000, B10000, B10000, B00000, B00000, B00000}; lcd.createChar(0, image22); lcd.createChar(1, image23); lcd.createChar(2, image07); lcd.createChar(3, image08); lcd.createChar(4, image09); lcd.createChar(5, image24); lcd.createChar(6, image25); lcd.setCursor(5, 1); lcd.tulis(byte(0)); lcd.setCursor(6, 1); lcd.write(byte(1)); lcd.setCursor(6, 0); lcd.write(byte(2)); lcd.setCursor(7, 0); lcd.write(byte(3)); lcd.setCursor(8, 0); lcd.write(byte(4)); lcd.setCursor(7, 1); lcd.write(byte(5)); lcd.setCursor(8, 1); lcd.write(byte(6));}gambar kosong05(){ lcd.clear(); byte image24[8] ={B01010, B10100, B01011, B10101, B11010, B10101, B11010, B01110}; byte image25[8] ={B00000, B00000, B00000, B10000, B10000, B00000, B00000, B00000}; byte image23[8] ={B01101, B01010, B01101, B00111, B00000, B00000, B00000, B00000}; byte image07[8] ={B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00011}; byte image08[8] ={B00000, B00000, B00000, B00000, B00000, B00000, B00000, B10000}; lcd.createChar(0, image24); lcd.createChar(1, image25); lcd.createChar(2, image23); lcd.createChar(3, image07); lcd.createChar(4, image08); lcd.setCursor(7, 1); lcd.tulis(byte(0)); lcd.setCursor(8, 1); lcd.write(byte(1)); lcd.setCursor(6, 1); lcd.write(byte(2)); lcd.setCursor(6, 0); lcd.write(byte(3)); lcd.setCursor(7, 0); lcd.write(byte(4));}void image06(){ lcd.clear(); byte image08[8] ={B00000, B00100, B01010, B01010, B10001, B00011, B00110, B01100}; byte image07[8] ={B00000, B00000, B00000, B00000, B00001, B00010, B00010, B00001}; byte image09[8] ={B00000, B00000, B10000, B11000, B00000, B00000, B11000, B00100}; byte image24[8] ={B00100, B00100, B00011, B00000, B00000, B00000, B00000, B00000}; byte image25[8] ={B10000, B00000, B00000, B00000, B00000, B00000, B00000, B00000}; lcd.createChar(0, image08); lcd.createChar(1, image07); lcd.createChar(2, image09); lcd.createChar(3, image24); lcd.createChar(4, image25); lcd.setCursor(7, 0); lcd.tulis(byte(0)); lcd.setCursor(6, 0); lcd.write(byte(1)); lcd.setCursor(8, 0); lcd.write(byte(2)); lcd.setCursor(7, 1); lcd.write(byte(3)); lcd.setCursor(8, 1); lcd.write(byte(4));}void image07(){ lcd.clear(); byte image24[8] ={B10101, B01110, B01110, B00100, B10101, B01110, B00100, B11111}; byte image08[8] ={B00000, B00100, B01010, B01010, B10001, B00011, B00110, B01100}; byte image07[8] ={B00000, B00000, B00000, B00000, B00001, B00010, B00010, B00001}; byte image09[8] ={B00000, B00000, B10000, B11000, B00000, B00000, B00000, B00000}; lcd.createChar(0, image24); lcd.createChar(1, image08); lcd.createChar(2, image07); lcd.createChar(3, image09); lcd.setCursor(7, 1); lcd.tulis(byte(0)); lcd.setCursor(7, 0); lcd.write(byte(1)); lcd.setCursor(6, 0); lcd.write(byte(2)); lcd.setCursor(8, 0); lcd.write(byte(3));}

Skema


Proses manufaktur

  1. CDS:Layar LCD transparan 3D
  2. Panel LCD dengan Arduino untuk Simulator Penerbangan
  3. Animasi dan Permainan LCD
  4. Menampilkan Gambar Pada Layar TFT LCD Dengan Arduino UNO!
  5. Osiloskop DIY 10Hz-50kHz pada Layar LCD 128x64
  6. Cara membuat situs web yang mengomunikasikan Arduino dengan menggunakan PHP
  7. MAX 30102 Monitor Detak Jantung pada LCD 16x2
  8. Stasiun Cuaca Arduino
  9. Jam Alarm Sederhana dengan DS1302 RTC
  10. Prototipe PCB:5 Langkah Membuat PCB Kustom