Ingin belajar k3 dan ISO sampai mahir?Contact Us Buy Now!

Led ws2812b runing text

  

Berikut code runing text menggunakan Arduino Atau Esp8266 anda dapat mencopy code berikut dan dapat anda kembangkan lagi .
Kode programnya bisa sobat ambil di bawah ini yang sudah di sediakan, program di bawah ini adalah program runing text pada led ws2812b yang nantinya akan digunakan untuk menampilkan suatu tulisan yang susuai kita inginkan  program di bawah ini dapat di copy dan di upload ke esp8266 menggunakan software Arduino IDE, supaya kamu tau gimana hasilnya.

                                                                   
                                                                     Gambar Led ws2812b

#include <Adafruit_NeoPixel.h>

#include <font5x7.h>

// Penentuan lebar dan tinggi

const byte lebar = 8;

const byte tinggi = 8;

 

// Deklarasi objek strip

Adafruit_NeoPixel strip((lebar * tinggi), 8, NEO_GRB + NEO_KHZ800);

 

// Penentuan tulisan / running text

String tulisan = "selamat datang";

 

// Perhitungan jumlah modul untuk dibuatkan array bitmap

const byte jumlahModul = lebar/8;

byte bitmap[tinggi][jumlahModul];

 

 

// Penentuan konfigurasi scrolling dan variabelnya

int scrollSpeed = 70; // Atur ini untuk mengubah kecepatan

unsigned long scrollTiming = 0;

int scrollStep = 0;

 

// Fungsi untuk melakukan scrolling text

void scrollingText() {

  

  // Melakukan pergeseran bitmap kekiri disetiap [scrollSpeed] milidetik

  if (millis() - scrollTiming >= scrollSpeed) {

    scrollTiming = millis();

    scrollStep++;

    

 

    // Mereset scroll step jika melebihi jumlah lebar karakter (6 kolom + jarak antar karakter)

    // (Scroll step digunakan untuk mengetahui karakter mana yang akan di print berdasarkan sejauh mana pergeseran)

    if (scrollStep > tulisan.length() * 6) scrollStep = 1;

    uint8_t charIndexScreen = floor((scrollStep - 1) / 6);  // Indeks karakter dari variabel tulisan

    uint8_t charIndex = tulisan[charIndexScreen] - 32;  // Indeks karakter berdasarkan kode ASCII yang ada di library font5x7

    uint8_t col = (scrollStep - 1) % 6; // Kolom dari setiap karakter yang akan di print (juga berdasarkan pergeseran / scrollstep) pastinya

 

    // Melakukan pergeseran bitmap ke arah kiri 

    // selagi menambahkan bit baru berdasarkan [col] untuk membentuk huruf baru

    for (int row = 0; row < tinggi; row++) {

 

      // melakukan perulangan setiap modul, agar pada modul 1 dapat bergeser ke modul 2 dst..

      for (int col = 1; col < jumlahModul; col++) {

        bitmap[row][col] <<= 1;   // Ini gan pergeserannya

        bitWrite(bitmap[row][col], 0, bitRead(bitmap[row][col-1], 7));

      }

 

      // Menambahkan bit baru untuk huruf baru di kanan

      bitmap[row][0] <<= 1;

      if (col >= 5) {

        bitmap[row][0] |= 0; // Jika col lebih dari 5, maka kita gunakan untuk spasi antar huruf

      }

      else {

        bitmap[row][0] |= bitRead(pgm_read_byte(&Font5x7[charIndex*5+col]), row); // Jika tidak, berarti kita tambahkan bit baru tsb..

      }

    }

  }

}

void setup() {

  strip.begin();

  strip.show();

}

 

void loop() {

  scrollingText(); // Melakukan scrolling text ALIAS pergeseran bit ke kiri

  refresh(); // menampilkan bitmap ke strip matrix

}

// Fungsi untuk menampilkan array bitmap ke strip matrix

void refresh() {

  // Rumus berdasarkan urutan led strip:

  // f(row, col) = (tinggi - row + 1) * lebar - col;

  for (uint8_t row = 0; row < tinggi; row++) {

    for (int  modul = jumlahModul - 1; modul >= 0; modul--) {

      for (int col = 7; col >= 0; col--) {

        byte bitCond = bitRead(bitmap[row][modul], col);

        uint8_t indexStrip = ((tinggi - (row + 1) + 1) * lebar) - (8 - col);        

        strip.setPixelColor(indexStrip, ((bitCond == 1) ? strip.Color(0, 0, 255): 0)); // warna disetting biru

      }

    }

  }

  strip.show();

}





Getting Info...

About the Author

Pengetahuan adalah kebebasan, dan ketidaktahuan adalah perbudakan

Posting Komentar

Cookie Consent
codeweb.my.id menyajikan cookie di situs ini untuk menganalisis lalu lintas, mengingat preferensi Anda, dan mengoptimalkan pengalaman Anda.
Oops!
Sepertinya ada yang salah dengan koneksi internet Anda. Harap sambungkan ke internet dan mulai menjelajah lagi.
AdBlock Detected!
Kami telah mendeteksi bahwa Anda menggunakan plugin adblocking di browser Anda.
Pendapatan yang kami peroleh dari iklan digunakan untuk mengelola situs web ini, kami meminta Anda untuk memasukkan situs web kami ke daftar putih di plugin adblocking Anda.
Site is Blocked
Sorry! This site is not available in your country.