Media Informasi Kegiatan Guru

Motivasi Menulis
Tampilkan postingan dengan label Perangkat KBM. Tampilkan semua postingan
Tampilkan postingan dengan label Perangkat KBM. Tampilkan semua postingan

Jumat, 04 Oktober 2024

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:

Selasa, 20 Oktober 2020

Mata Pelajaran Sistem Komputer

MATA PELAJARAN SISTEM KOMPUTER

Sistem Komputer merupakan mata pelajaran untuk jurusan Teknik Informatika dan Komputer di SMK, didalam mata pelajaran Sistem Komputer akan dibahas dalam beberapa BAB yaitu :

Semester 1
A. Bab 1 Sistem Bilangan
  • Penerapan Sistem Bilangan
  • Format Bilangan
  • Konversi Bilangan
  • Sistem Penyandingan Bilangan
B. Bab 2 Gerbang Logika
  • Pengertian Gerbang Logika
  • Gerbang Logika OR
  • Gerbang Logika AND
  • Gerbang Logika NOR
  • Gerbang Logika NAND
  • Gerbang Logika XOR
  • Gerbang Logika XNOR
C. Bab 3 Operasi Aritmatika
  • ALjabar Boolean
  • Operasi Penjumlahan Biner
  • Operasi Pengurangan Biner
  • Operasi Perkalian Biner
  • Operasi Pembagian Biner
  • Increment dan Decrement
  • Operasi Aritmatika BCD Code
D. Bab 4 Arithmetic Logic Unit (ALU)
  • Arithmetic
  • Rangkaian Holf Adder
  • Rangkaian Full Adder
  • Rangkaian Penjumlahan Paralel
  • Rangkaian Half Substractor
  • Rangkaian Full Substractor
  • Rangkaian Pengurang Paralel
Semester 2 
5. Bab 5 Multiplexer, Decoder, Flip - Flop, dan Counter
  • Encode
  • Decoder
  • Multiplexer
  • Demultiplexer
  • Flip-flop
  • Register
  • Counter
6. Bab 6 
7. Bab 7
8. Bab 8
9. Bab 9
10. Bab 10




Share:

Minggu, 16 Agustus 2020

Video Pembelajaran Jarak Jauh menggunakan OBS


 

Share:

Sabtu, 09 Maret 2019

Silabus Pemograman Dasar Kelas X TI

Silabus Pemograman Dasar Kelas X TI SMK
Share:

RPP Pemograman Dasar Kelas X TI Semester Genap

Share:

RPP Pemograman Dasar Kelas X TI Semester Ganjil


Berikut RPP Pemograman Dasar Kelas X TI Semester ganjil :

Kelas X TI KD 3.1 4.1
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