Media Informasi Kegiatan Guru

Motivasi Menulis

Jumat, 11 Oktober 2024

Membuat Running text P10 RGB Hub75 dengan Arduino

 Membuat Running text P10 RGB Hub75 dengan Arduino 


Membuat running text P10 dengan model hub75 sebetulnya sama modelnya secara fisik sama dengan running text P10 single color, tetapi untuk model hub75 warna led yang dihasilkan RGB atau perpaduan led dengan warna Red Green Blue (RGB), kemudian karena warna yang dihasilkan berbeda tentu saja untuk pemasangan pin juga berbeda dengan satu warna, bukan hanya pemasangan, kode program dalam aplikasi arduino IDE juga berbeda.

Berikut saya coba jelaskan satu persatu apa saja yang dibutuhkan dan contoh kode programnya :

a. Alat dan Bahan








b. Skema pemasangan








c. file dan kode program ada di dalam folder

Library dan contoh program link dibawah ini

Library RGB

Adafruit LCD


Demikianlah cara membuat running text P10 RGB dengan arduino


Share:

Sabtu, 05 Oktober 2024

Dunia Perkuliahan

Materi Kuliah Pasca Sarjana semester 2

Pengembangan Media & Sumber Belajar

Metode Penelitian

Pembelajaran berbasis ICT

 Evaluasi Proses & Hasil Pembelajaran

Share:

Jumat, 04 Oktober 2024

Modul PPG 2024



 Pada kesempatan kali ini, saya akan membagikan contoh Modul dan Jurnal yang sudah saya buat dan dari berbagai sumber dan lulus validasi PMM, adapun jurnal dan modul ini hanya sekedar untuk berbagai sesama guru atau peserta PPG sebagai referensi untuk mempermudah dalam pengerjaan setiap tahapan pembelajaran.


Klik link dibawah ini

Jurnal 3 Modul (Sosial Emosional, Inklusif dan Industri)

modul (contoh modul seperti pedagogik)

Modul Pembelajaran PMM (PSE,PPABK,PPA (umum),PPA (SMK)


Share:

Membuat running text dengan arduino (materi produk kreatif dan kewirausahaan TJKT)

 
Kali ini saya mencoba untuk berbagi pengalaman dalam praktik membuat running text P10 menggunakan arduino uno sebagai kontrolernya. Pada kesempatan kali ini, alat yang digunakan LED P10, sedangkan untuk powernya 5v dan 3a, apabila powernya kurang maka led tidak sempurna menyala, baiknya power terpisah dengan arduino agar power yang dihasilkan sempurna.
Saya mengambil produk Running Text dengan LED P10 karena instalasi yang relatif mudah, serta dalam dunia bisnis running text ini masih banyak peminat khususnya untuk di depan toko,kantor dan sekolah. Harapan saya, peserta didik mampu mengaplikasikannya minimal pengetahuan pribadi dan pemakaian sendiri. Tanpa menunggu lama - lama, berikut program dan skemanya.
Yang diperlukan

a. Arduino Uno


b. LED P10

 


c. Kabel Jumper 
male to male
male to female








d. skema




Program Arduino Teks Berjalan


#include <SPI.h>       
#include <DMD.h>       
#include <TimerOne.h>  
#include "SystemFont5x7.h"
#include "Arial_black_16.h"

//Isi dengan jumlah panel DMD yang di susun dalam kolom dan baris
#define DISPLAY_COLUMN_COUNT  2
#define DISPLAY_ROW_COUNT     1

#define PIXELS_PER_COLUMN    32
#define PIXELS_PER_ROW        16


DMD dmd(DISPLAY_COLUMN_COUNT, DISPLAY_ROW_COUNT);
char Text[] = "Selamat Datang di DigiWare Unlimited Innovations";
/*--------------------------------------------------------------------------------------
  Interrupt handler for Timer1 (TimerOne) driven DMD refresh scanning, this gets
  called at the period set in Timer1.initialize();
--------------------------------------------------------------------------------------*/
void ScanDMD()
{
  dmd.scanDisplayBySPI();
}

void setup(void)
{
   //inisialisasi Timer1 untuk menginterupsi pengeksekusian prosedur pindai DMD secara periodik
   Timer1.initialize( 1000 );           //perioda eksekusi pindai DMD selama 1 ms. Nilai yang lebih besar dapat menimbulkan efek flicker.
   Timer1.attachInterrupt( ScanDMD );   //terapkan prosedur interupsi pindai DMD
   dmd.clearScreen( true );   //normalnya true (semua piksel dalam keadaan mati), false (semua piksel dalam keadaan hidup)
}

void loop(void)
{  
   dmd.clearScreen( true );
   dmd.selectFont(Arial_Black_16);
  
   dmd.drawMarquee(Text,strlen(Text),
          (PIXELS_PER_COLUMN*DISPLAY_COLUMN_COUNT)-1,0);
   long start=millis();
   long timer=start;
   boolean ret=false;
   while(!ret){
     if ((timer+30) < millis()) {
       ret=dmd.stepMarquee(-1,0); // Geser 1 karakter ke kiri
       timer=millis();
     }
   }     
}


Program Arduino Moving Sign / Stikman

#include <SPI.h>       
#include <DMD.h>       
#include <TimerOne.h> 

//Isi dengan jumlah panel DMD yang di susun dalam kolom dan baris
#define DISPLAY_COLUMN_COUNT  2
#define DISPLAY_ROW_COUNT     1

#define PIXELS_PER_COLUMN  32
#define PIXELS_PER_ROW    16


DMD dmd(DISPLAY_COLUMN_COUNT, DISPLAY_ROW_COUNT);

// Running stick figure pictures are loosely based on those from this tutorial:
// http://www.fluidanims.com/FAelite/phpBB3/viewtopic.php?f=10&t=102

byte const run1[] PROGMEM = {
    16, 16,
    B00000000, B00001100,
    B00000000, B00011110,
    B00000111, B11111110,
    B00001111, B11111110,
    B00011100, B11111100,
    B00000001, B11111100,
    B00000001, B11110000,
    B00000011, B11111000,
    B00000111, B00011000,
    B00001110, B01110000,
    B00011100, B01100000,
    B00111000, B00000000,
    B01110000, B00000000,
    B01100000, B00000000,
    B01000000, B00000000,
    B00000000, B00000000
};

byte const run2[] PROGMEM = {
    18, 16,
    B00000000, B01110011, B10000000,
    B00000000, B11111111, B10000000,
    B00000000, B00011111, B10000000,
    B00000000, B00111111, B11000000,
    B00000000, B01111011, B11000000,
    B00000000, B11110011, B10000000,
    B00000001, B11100000, B00000000,
    B00000011, B11100000, B00000000,
    B00000111, B01110000, B00000000,
    B01111110, B00111000, B00000000,
    B11111100, B00011100, B00000000,
    B00000000, B00001110, B00000000,
    B00000000, B00000111, B00000000,
    B00000000, B00000011, B10000000,
    B00000000, B00000001, B00000000,
    B00000000, B00000000, B00000000
};

byte const run3[] PROGMEM = {
    18, 16,
    B00000000, B00110000, B00000000,
    B00000000, B01111000, B00000000,
    B00000000, B00011111, B00000000,
    B00000000, B00011111, B00000000,
    B00000000, B00111111, B10000000,
    B00000000, B01111111, B11000000,
    B00000000, B11100011, B10000000,
    B00000001, B11000000, B00000000,
    B00000011, B11100000, B00000000,
    B11111111, B01110000, B00000000,
    B11111110, B00111000, B00000000,
    B00000000, B00011000, B00000000,
    B00000000, B00011100, B00000000,
    B00000000, B00001110, B00000000,
    B00000000, B00000100, B00000000,
    B00000000, B00000000, B00000000
};

byte const run4[] PROGMEM = {
    16, 16,
    B00000001, B11100000,
    B00000011, B11111100,
    B00000000, B00111110,
    B00000000, B01111110,
    B00000000, B11111100,
    B00000001, B10011111,
    B00000011, B00001110,
    B00000011, B00000000,
    B00000011, B10000000,
    B11111111, B10000000,
    B11111000, B11000000,
    B00000001, B11000000,
    B00000011, B10000000,
    B00000111, B00000000,
    B00000110, B00000000,
    B00000100, B00000000
};

byte const run5[] PROGMEM = {
    13, 16,
    B00000000, B00000000,
    B00000000, B00110000,
    B00000111, B11111000,
    B00000111, B11111000,
    B00000111, B11110000,
    B00001111, B11100000,
    B00000111, B00000000,
    B00001111, B00000000,
    B00001111, B00000000,
    B00001111, B10000000,
    B00011100, B00000000,
    B00111000, B00000000,
    B01110000, B00000000,
    B11100000, B00000000,
    B11000000, B00000000,
    B10000000, B00000000
};

byte const run6[] PROGMEM = {
    16, 16,
    B00000000, B00000000,
    B00000000, B00011100,
    B00000000, B00111110,
    B00000001, B11111110,
    B00000000, B11100000,
    B00000001, B11100000,
    B00000001, B11111000,
    B00000011, B00011100,
    B00000110, B00111000,
    B00000110, B01110000,
    B00001100, B00100000,
    B00111000, B00000000,
    B01100000, B00000000,
    B11000000, B00000000,
    B10000000, B00000000,
    B10000000, B00000000
};

byte const run7[] PROGMEM = {
    18, 16,
    B00000000, B00000011, B10000000,
    B00000000, B01111011, B10000000,
    B00000000, B01111111, B10000000,
    B00000000, B00001111, B00100000,
    B00000000, B00011001, B11000000,
    B00000000, B00110000, B11000000,
    B00000000, B01110000, B00000000,
    B00000001, B11110000, B00000000,
    B11111111, B10111000, B00000000,
    B11111111, B00011100, B00000000,
    B00000000, B00001110, B00000000,
    B00000000, B00000111, B00000000,
    B00000000, B00000011, B10000000,
    B00000000, B00000001, B11000000,
    B00000000, B00000000, B01000000,
    B00000000, B00000000, B00000000
};

byte const run8[] PROGMEM = {
    18, 16,
    B00000000, B00000110, B00000000,
    B00000001, B11101111, B00000000,
    B00000001, B11111111, B00000000,
    B00000000, B00111110, B00000000,
    B00000000, B01111111, B11000000,
    B00000000, B11100011, B10000000,
    B00000001, B11000000, B00000000,
    B00000011, B11100000, B00000000,
    B11111111, B01110000, B00000000,
    B11111110, B00111000, B00000000,
    B00000000, B00011100, B00000000,
    B00000000, B00000110, B00000000,
    B00000000, B00000110, B00000000,
    B00000000, B00000111, B00000000,
    B00000000, B00000011, B00000000,
    B00000000, B00000001, B00000000
};

byte const run9[] PROGMEM = {
    16, 16,
    B00000000, B00000000,
    B00000000, B01001110,
    B00000001, B11101110,
    B00000011, B11111110,
    B00000011, B11111110,
    B00000001, B10111100,
    B00000011, B00000000,
    B00000111, B00000000,
    B11111111, B10000000,
    B11111100, B11000000,
    B00000000, B11000000,
    B00000000, B11000000,
    B00000000, B11000000,
    B00000000, B11000000,
    B00000000, B11000000,
    B00000000, B11000000
};

byte const run10[] PROGMEM = {
    13, 16,
    B00000000, B00000000,
    B00000000, B00110000,
    B00000000, B01111000,
    B00000111, B11111000,
    B00001111, B11111000,
    B00000111, B11000000,
    B00001110, B00000000,
    B00001100, B00000000,
    B00001100, B00000000,
    B01111100, B00000000,
    B11111100, B00000000,
    B00011000, B00000000,
    B00110000, B00000000,
    B01110000, B00000000,
    B01100000, B00000000,
    B01000000, B00000000
};

PGM_VOID_P frames[] = {
    run1,
    run2,
    run3,
    run4,
    run5,
    run6,
    run7,
    run8,
    run9,
    run10
};
#define NUM_FRAMES  (sizeof(frames) / sizeof(frames[0]))
unsigned int frame = 0;

#define ADVANCE_MS  (1000 / NUM_FRAMES)
unsigned long lastFrame;
int runStep, runStepMax;

void ScanDMD()
{
  dmd.scanDisplayBySPI();
}

void setup() {
    //inisialisasi Timer1 untuk menginterupsi pengeksekusian prosedur pindai DMD secara periodik
   Timer1.initialize( 2000 );           //perioda eksekusi pindai DMD selama 2 ms. Nilai yang lebih besar dari 5ms (5000) dapat menimbulkan efek flicker.
   Timer1.attachInterrupt( ScanDMD );   //terapkan prosedur interupsi pindai DMD
   dmd.clearScreen( true );   //normalnya true (semua piksel dalam keadaan mati), false (semua piksel dalam keadaan hidup)
   lastFrame = millis() - ADVANCE_MS;
   runStepMax = PIXELS_PER_COLUMN * 5;
   runStep = -13;
}

void loop() {
    if ((millis() - lastFrame) >= ADVANCE_MS) {
        dmd.clearScreen( true );
        int x = (runStep - pgm_read_byte(frames[frame])) / 2;
        runStep+=4;
        if (runStep > runStepMax)
          runStep = -PIXELS_PER_COLUMN; 
        dmd.drawBitmap(x, 0, frames[frame],1);
        lastFrame += ADVANCE_MS;
        frame = (frame + 1) % NUM_FRAMES;
    }
}
Share:

Membuat Running text P10 RGB Hub75 dengan Arduino

 Membuat Running text P10 RGB Hub75 dengan Arduino  Membuat running text P10 dengan model hub75 sebetulnya sama modelnya secara fisik sama d...

Iklan
Diberdayakan oleh Blogger.

Cari Blog Ini

Pages - Menu

Pages - Menu

Blog Romeltea

Romeltea Media

BolaGP Sport

Blogger templates