"Kembali Ke Dasar Elektronika Digital ... "

  • IC Timer 555 yang Multifungsi

    IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik

  • Animasi LED Dengan IC 4017

    IC 4017 adalah IC 16-pin CMOS dekade counter dari seri IC CMOS 4000. Sangat berguna jika ingin membuat animasi lampu atau LED secara sederhana seperti led berjalan, tulisan berjalan , counter/timer dan masih banyak kegunaan lainnya

  • Bermain DOT Matrix - LOVEHURT

    Project Sederhana dengan Dot Matrix dan Attiny2313. Bisa menjadi hadiah buat teman atau pacarmu yang ulang tahun dengan tulisan dan animasi yang dapat dibuat sendiri.

  • JAM DIGITAL 6 DIGIT TANPA MICRO FULL CMOS

    Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul

  • BIKIN PCB SEDERHANA TAPI GA MURAHAN

    Bikin PCB itu ga susah kok..dengan software EAGLE CAD dan teknik sterika kamu dapat membuat PCB untuk berbagai project elektronika mu ...

Tampilkan postingan dengan label led. Tampilkan semua postingan
Tampilkan postingan dengan label led. Tampilkan semua postingan

Jumat, 01 Januari 2021

Merakit Lampu Led Vu Meter Music Yang Keren

 


Kali ini saya akan membedah cara merakit dan teori dibalik sebuah video menarik kreasi dari greatscott. Seperti yang pernah saya bahas di tulisan beberapa tahun lalu disini dan disini , VU meter atau singkatan dari voltage unit meter, merupakan suatu cara memvisualisasi tingkat keluaran audio music, baik dalam bentuk meter jarum atau lampu seperti gambar diatas. Untuk itu kita siapkan dulu bahan-bahannya sbagai berikut :


  • 1x PCB lubang ic strip
  • 100x 5mm LED (sesuaikan dengan selera anda jumlah dan warnanya)
  • 1x 3.5mm Audio Jack
  • 1x DC Jack
  • 2x LM324 OpAmp
  • 1x 47µF Capacitor
  • 1x 100kΩ Potentiometer
  • 7x IRFD220 N-channel MOSFET
  • 11x 10kΩ, 1x 47kΩ, 4x 1kΩ, 2x3.3kΩ, 3x 4.7kΩ, 2x 2kΩ, 1x 6.8kΩ, 1x 2.2kΩ, 1x 51kΩ Resistor
  • 1x 12V 2A Power Supply
  • 1x: Buck Converter / penurun tegangan dc to dc converter yg bisa diatur


Rangkaiannya seperti disini, untuk lebih jelas bisa di klik agar terbuka besar, nanti saya bahas juga per bagian kok..

catatan : tanda panah atau symbol dengan bentuk dan nama sama itu artinya rangkaiannya nyambung atau memiliki koneksi kabel yang sama

Komponen IC utama yang merupakan OP-AMP adalah LM324 , dimana merupakan op-amp multi purpose yang dalam 1 packing memiliki 4 buah op-amp. 



Langkah pertama adalah menyusun LED sesuai keinginan anda, mau tulisannya seperti apa dan urutan nyalanya seperti gimana. Jadi LED dengan level yang sama dihubungkan secara paralel anoda ketemu anoda, katoda ketemu katoda. Jika PCB anda pcb lubang biasa bukan strip yang seperti dicontohkan, dapat menggunakan cara dengan memanfaatkan sisa kaki LED atau menggunakan kabel.




Sambungkan katoda LED (negatif) dari masing2 level dan hubungkan anoda LED (posisitf) secara bersamaan / common, dan kemudian test nyala led menggunakan power supply / yang dapat dirubah tegangannya.




Lanjut dengan merangkai rangkaian op-amp, paling depan merupakan pengatur level input yang dapat diatur besar kecilnya melalui potensiometer.





Kemudian kita akan menggunakan 7 opamp yang tersisa sebagai komparator, dimana akan ditentukan 7 level tegangan input audio versus tegangan referensi yang dibuat melalui pembagi tegangan 2 resistor.



Sambungkan output komparator op-amp menuju ke mosfet transistor sebagai switch dari tegangan supply tiap LED (nyambung ke katoda tiap level). Nah untuk suply led diperlukan penurun tegangan buck converter sehingga tegangan yg dihasilkan sekitar 2.4 volt (sesuaikan dengan kecerahan LED yang di inginkan , jangan sampai berlebihan).





Lanjut hubungkan Anoda bersama ke input Buck converter / 2.4 volt dan katoda (negatif) LED ke masing-masing level mosfet. Jangan lupa beri input musik dari pemutar mp3 anda dan putar potensio sesuai level yang anda inginkan.




SELAMAT MENCOBA ..

Share:

Sabtu, 26 Desember 2020

DIY - Strobo / Lampu polisi sederhana dengan efek kedip yang dahsyat

 



Seru bukan kalau punya kegiatan bersama anak-anak di masa liburan tapi terpaksa harus dirumah saja ? Main game lewat smartphone mah itu mainstream banget ayah bunda ! Bagaimana kalau kita ajak anak-anak bermain dengan lampu LED kedip-kedip tapi bukan yang sederhana seperti flip-flop, yang kita buat sekarang adalah flip flop yang lebih keren dengan efek seperti lampu sirene di mobil polisi. Kita siapkan bahan-bahan nya yuk !


LED Super Bright berwarna merah dan biru , biar lebih terang warna nya. Jangan sering-sering melihat ke LED super bright yang sedang menyala karena bisa merusak mata yaa...


2 buah Transistor NPN BC547 dan PNP 557




6 buah resistor 10K ohm


2 buah resistor 47 k ohm






Resistor 100 ohm sejumlah LED yang digunakan



2 buah ELCO masing masing untuk 10 uF dan 22 uF


PCB lubang, kabel, timah solder, dan adaptor 5 volt (atau bisa juga baterai AA 4 buah)



Skematiknya sperti ini ya kawan...




Kita rangkai di PCB lubang yuk, ikuti saja sambungan tiap perkabelan sesuai skematik diatas.



SELAMAT MENCOBA 

Share:

Jumat, 25 Desember 2020

DIY - LED Berjalan Efek Hujan / Rain Fade

 



Blog ini banyak membahas tentang animasi LED sejak bermula pada tahun 2010an , dimana saya sering kali menggunakan IC sequencer 4017 digabung dengan clock menggunakan IC ajaib timer 555 sebagai penggerak clock. Lalu bagaimana jika efek yang diharapkan seperti lampu led murah meriah yang dijual di pinggir jalan? Ternyata kita harus memanfaatkan IC shift register 74HC164 / 595 yang biasanya dalam dunia elektronika digital dipakai sebagai driver LED MATRIX. 


Tidak berlama-lama lagi, kita akan bahas komponen yang diperlukan seperti ini :


1 buah IC 74HC164


1 buah ic 555


1 buah transistor NPN BC547 / 2N3904 


Beberapa buah LED
1 buah ELCO 4.7 micro farad
Trimpot 10K ohm
Sejumlah 100 ohm resistor (disamakan dengan jumlah LED)
3 buah 10k ohm resitor

Breadboard



Jangan lupa sediakan 5volt power supply / adaptor, bisa menggunakan charger HP bekas juga ya...

Rangkaiannya seperti ini nih :



Rangkai komponen pelan-pelan pada breadboard.




Untuk menghasilkan efek yang lebih menarik, maka jumlah led bisa diperbanyak dengan memparalelkan LED menjadi 3 buah tiap output IC dan bisa disusun diatas PCB seperti ini :




SELAMAT MENCOBA

Share:

Selasa, 22 Desember 2020

DIY - 3 LED Flip Flop dengan hanya menggunakan transistor

 





Sudah lama gak pegang komponen lagi, lama banget pokoknya. Tapi karena kebetulan minggu lalu kedatangan keponakan yang bete karena HP nya rusak dan gak bisa main game (alasan bapaknya aja dibilang HP nya diservis) , kita kenalkan aja dengan proyek lampu flip-flop jaman jadul...kita pake 2 LED aja dulu..begini nih skematiknya ...



Untuk Transistor pada rangkaian FLIP-FLOP bisa menggunakan transistor universal model NPN maupun PNP. Kebetulan di kotak komponen saya cuman ada transistor PNP BC 557 sisa proyek jaman dulu, dan saya buatkan di breadboard dulu nih seperti di video dibawah ini.





Untuk rangkaian LED flasher 3 buah, tinggal menambahkan 1 set komponen lagi, dan kemudian kapasitor dari Colector transistor terakhir menuju ke Basis transistor pertama. Hasilnya akan terjadi efek 3x charge discharge. Sayangnya untuk lebih dari 3 tidak akan berhasil karena charge dichargenya berulang setelah 4 periode.



Untuk mengatur kecepatan pergeseran LED bisa menggunakan potensio 10K dengan gabungan resistor 4k7 dan capasitor 100uF seperti pada gambar. Kapasitor positif dihubungkan ke tegangan baterai (+) dan potensio yang tengah (ada kabel kuningnya ) masuk ke ujung resistor basis. Jadi ke 3 resistor 10k antara basis dan positif baterai di putuskan dari koneksi ke baterai, dan diganti atau disela oleh rangkaian potensio-capasitor-resistor ini. 


SELAMAT MENCOBA.

Share:

Jumat, 21 Juni 2013

Tutorial: Text berjalan 3 Led Matrix




REVISI


Setelah beberapa pembaca mengeluh karena ga bisa jalan itu script...dan saya juga bingung dibuatnya, akhirnya terdeteksi bahwa saya menggunakan script dengan ARRAY yang melebihi RAM seperti gambar berikut ini :



JADI MOHON DIMAAFKAN !!



Atas permintaan seorang pembaca blog dengan id kaskus sn0bi, kali ini kita akan bahas perancangan 3 LED MATRIX yang menggunakan ATMega 8535. Sebenernya ini adalah perpanjangan dari project LOVE HURT yang hanya menggunakan 1 buat Led Matrix. Untuk mengurangi jumlah komponen yang dipakai, maka ukuran led matrix jangan melebihi dari 2" (inch) . Untuk dapat dirancang diatas breadboard / projectboard dipilihlah led matrix berukuran 1 inch.

Bahan-bahan dan skematiknya seperti berikut ini :

klik untuk memperjelas
*) catatan : perhatikan port ISP yg digunakan 6 pin..sesuaikan dengan yg kamu gunakan



Dari skematik diatas dapat dijelaskan bahwa ATMEGA8535 menggunakan clock internal / default 1MHz dan dot/led matrix diparalel dibagian baris. Untuk scanning kolom digunakan portD 0-7 dan portC 0-6. Sebenarnya kalo dilihat dari gambar diatas, kaki-kaki ATMega masih cukup untuk 1 buah led matrix (tinggal penyesuaian di script nya saja). Scanning cukup dilakukan dengan menggeser bit (active low) dari kiri ke kanan. Secara lengkap scriptnya seperti berikut :

#define F_CPU 1000000UL //ubah sesuai clock micro
#include <avr/io.h>
#include <util/delay.h>
#include <avr/eeprom.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h> 
#include <string.h>

#define cepat 8  //ubah ini untuk mengatur kecepatan scroll

//UPDATED JUNE 9 2014 ...www.aisi555.com ....

const char textset[] PROGMEM  = 
{0x30, 0x4a, 0x4a, 0x4a, 0x7c,//a
0x7f, 0x28, 0x44, 0x44, 0x38,//b
0x80, 0x38, 0x44, 0x44, 0x44,//c
0x38, 0x44, 0x44, 0x28, 0x7f,//d
0x38, 0x54, 0x54, 0x54, 0x18,//e
0x08, 0x7e, 0x09, 0x09, 0x02,//f
0x08, 0x54, 0x54, 0x54, 0x3c,//g
0x7f, 0x08, 0x04, 0x04, 0x78,//h
0x80, 0x44, 0x7d, 0x40, 0x80,//i
0x20, 0x40, 0x44, 0x3d, 0x80,//j 
0x80, 0x7f, 0x18, 0x24, 0x42,//k
0x80, 0x41, 0x7f, 0x40, 0x80,//l
0x7c, 0x04, 0x78, 0x04, 0x78,//m
0x7c, 0x08, 0x04, 0x04, 0x78,//n
0x38, 0x44, 0x44, 0x44, 0x38,//o
0x7c, 0x14, 0x14, 0x14, 0x08,//p
0x08, 0x14, 0x14, 0x14, 0x7c,//q
0x7c, 0x08, 0x04, 0x04, 0x08,//r
0x48, 0x54, 0x54, 0x54, 0x24,//s
0x80, 0x04, 0x3f, 0x44, 0x44,//t
0x3c, 0x40, 0x40, 0x20, 0x7c,//u
0x1c, 0x20, 0x40, 0x20, 0x1c,//v
0x3c, 0x40, 0x30, 0x40, 0x3c,//w
0x44, 0x28, 0x10, 0x28, 0x44,//x
0x0c, 0x50, 0x50, 0x50, 0x3c,//y
0x44, 0x64, 0x54, 0x4c, 0x44,//z
0x3e, 0x51, 0x49, 0x45, 0x3e, //0
0x80, 0x42, 0x7f, 0x40, 0x80, //1
0x42, 0x61, 0x51, 0x49, 0x46, //2
0x41, 0x41, 0x45, 0x4b, 0x31, //3
0x18, 0x14, 0x12, 0x7f, 0x10, //4
0x27, 0x45, 0x45, 0x45, 0x39, //5
0x3c, 0x4a, 0x49, 0x49, 0x31, //6
0x01, 0x71, 0x09, 0x05, 0x03, //7
0x36, 0x49, 0x49, 0x49, 0x36, //8
0x06, 0x49, 0x49, 0x29, 0x1e, //9
0x7e, 0x11, 0x11, 0x11, 0x7e, //A
0x7f, 0x49, 0x49, 0x49, 0x36, //B
0x3e, 0x41, 0x41, 0x41, 0x22, //C
0x7f, 0x41, 0x41, 0x22, 0x1c, //D
0x7f, 0x49, 0x49, 0x49, 0x41, //E
0x7f, 0x09, 0x09, 0x09, 0x01, //F
0x3e, 0x41, 0x49, 0x49, 0x7a, //G
0x7f, 0x08, 0x08, 0x08, 0x7f, //H
0x80, 0x41, 0x7f, 0x41, 0x80,//I
0x20, 0x40, 0x41, 0x3f, 0x01, //J
0x7f, 0x08, 0x14, 0x22, 0x41, //K
0x7f, 0x40, 0x40, 0x40, 0x40, //L
0x7f, 0x02, 0x04, 0x02, 0x7f, //M
0x7f, 0x04, 0x08, 0x10, 0x7f, //N
0x3e, 0x41, 0x41, 0x41, 0x3e, //O
0x7f, 0x11, 0x11, 0x11, 0x0e, //P
0x3e, 0x41, 0x51, 0x21, 0x5e, //Q
0x7f, 0x09, 0x19, 0x29, 0x46, //R
0x46, 0x49, 0x49, 0x49, 0x31, //S
0x01, 0x01, 0x7f, 0x01, 0x01, //T
0x3f, 0x40, 0x40, 0x40, 0x3f, //U
0x1f, 0x20, 0x40, 0x20, 0x1f, //V
0x3f, 0x40, 0x38, 0x40, 0x3f, //W
0x63, 0x14, 0x08, 0x14, 0x63, //X
0x07, 0x08, 0x70, 0x08, 0x07, //Y
0x61, 0x51, 0x49, 0x45, 0x43, //Z
0x80, 0x80, 0x80};//""


const char textreal[] PROGMEM= { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',' ' } ;


char blk = 0x80;
char fulltext[17] ; 
char scrolltext[500];//panjang kalimat 300 dibagi 6 (5 kolom + 1pembatas)
//UBAH besar ARRAY scroltext[XXX] sesuaikan besar RAM IC yg dipakai..
char textnya[] = "3 Led Matrix ATMega8535 AHOCOOL SurabayA 2013";


void cleartext(void)  // MEMBERSIHKAN datanya menjadi kosong
{  uint8_t i;

      
   for(i=0 ; i <20 ; i++)
     { fulltext[i] = 0 ; }  

}


void convert_text(char *texte)
{

uint8_t a,b,max_text;
int c,d;

char dummy[1];

max_text=strlen(texte);

for(a=0 ; a<max_text; a++)

  {    
      for(b=0;b<65;b++)  // maximum jumlah definisi text di database array
     
   {
            strncpy_P(dummy,&textreal[b],1);
         
   if ( texte[a] == dummy[0]) break; 

   }
      
        d=b*5;          
      
      if(dummy[0] != ' ') for(c=d; c<d+5; c++) strncat_P(scrolltext,&textset[c],1); //spasi
      else  for(c=d; c<d+3; c++) strncat_P(scrolltext,&textset[c],1);
      
   strncat(scrolltext,&blk,1);
  }

}


void tulis_text(void)
{
uint8_t a;
int b,speed;

a=0;
speed=5;//UBAH NILAI speed sesuai keinginan dan kedip led


 
 while(a<16)

  {
 
 
for(b=0;b<speed;b++ ) 
{
    
 if(a<8 ) 
 
 {
    
 
 PORTD = ~(1<<a) ;
 PORTC =0b11111111;

 }
  
  else
 {
    
    PORTC = ~(1<<(a-8)) ;
 PORTD =0b11111111;
 
 }

 PORTA=fulltext[a];
 _delay_us(60);   

    PORTA=0x80;  //biar tidak berbayang


  }



 a++;
  } 


   
  }


void scrol(char *scrtxt)
{  uint8_t q,r,step =0;
   int maxstep;

    maxstep = (strlen(scrtxt) * 6) ;
   
    convert_text(scrtxt);
     

  while(step < ( maxstep + 30)   )
   {
  if(step < 15)
       {
        
     for(q=0; q <(16-step) ; q++ )       
               
  {   fulltext[q]= 0x80;      }
  
     for(q=(15-step); q <16 ; q++ )       
  {   fulltext[q]=scrolltext[q - 15 + step];    }
            
 for(r=0;r<cepat;r++) tulis_text(); 


  }  
       

  else if( step > (maxstep + 15 ) )
     {


     for(q=0; q <(maxstep + 30 - step) ; q++ )       
  {   fulltext[q]=scrolltext[step -15 + q];    }

  for(q=(maxstep + 30 - step); q <16 ; q++ )       
               
  {   fulltext[q]= 0x80;      }
          
        for(r=0;r<cepat;r++) tulis_text();   
        }


    else
 {

     for(q=0; q <16 ; q++ )       
  {   
  
  fulltext[q]=scrolltext[q + step -15];   
  
   }
            
  for(r=0;r<cepat;r++) tulis_text();  


  }  
      

 
 
  
      
   step++;
 
 
   }




}


int main(void)
{
 //bagian ini sesuaikan dengan port micro yg kamu gunakan
  DDRA = 0b11111111; // portA = data text dot matrix
  DDRC = 0b11111111; //scanning kolom
  DDRD = 0b11111111; //scanning kolom
  
  

 while(1)
  {
     scrol(textnya);  
     cleartext();


  }



 
 

 
return 0;
}

proses geser-geser yang terpenting adalah bagian berikut :

Scanning kolom  :

void tulis_text(void)
{
uint8_t a;
int b,speed;

a=0;
speed=20;//UBAH NILAI speed sesuai keinginan

while(a<16)
  {
  
for(b=0;b<speed;b++ ) 
{
if(a<8 ) 
{
PORTD = ~(1<<a) ;
PORTC =0b11111111;

}
  else
{  
 PORTC = ~(1<<(a-8)) ;
PORTD =0b11111111;
}
PORTA=fulltext[a];
_delay_us(300);   

    PORTA=0x80;  //biar tidak berbayang
  }

a++;

}


Dari script scanning  diatas dapat dilihat script   PORTD = ~(1<<a) ; yang berfungsi untuk menegasi pergeseran bit 1 menjadi active low. Jika menggunakan 4 buah matrix maka dialkukan penyesuaian kondisi if ketika port nya loncat ke seri port yg berbeda.


Geser Kiri :

void scrol(char *scrtxt)
{  int q,step =0;
   int maxstep;

  maxstep = (strlen(scrtxt) * 6) ;
convert_text(scrtxt); 

  while(step < ( maxstep + 30)   )  //30 = 15 awal + 15 akhir 
   {
if(step < 15)   //start awal
       {
    
   for(q=0; q <(16-step) ; q++ )   
               
{   fulltext[q]= 0x80;      }
   for(q=(15-step); q <16 ; q++ )   
{   fulltext[q]=scrolltext[q - 15 + step];  }
tulis_text(); 
}  
else if( step > (maxstep + 15 ) )    //akhir kalimat
   {
   for(q=0; q <(maxstep + 30 - step) ; q++ )   
{   fulltext[q]=scrolltext[step -15 + q];  }

for(q=(maxstep + 30 - step); q <16 ; q++ )   
               
{   fulltext[q]= 0x80;      }       
      tulis_text();
        }
    else
{

   for(q=0; q <16 ; q++ )   
{   
fulltext[q]=scrolltext[q + step -15]; // ditengah-tengah 
}         
tulis_text(); 
}  
 step++;

   }
}


Bagian terpenting adalah ketika memberikan efek kosong pada awal dan akhir dari urutan kalimat. Variable "maxstep" merupakanjumlah step scanning kolom maksimum dari kalimat, sedangkan variable "step" adalah langkah pergeseran. Untuk 3 buah matrix maka terdapat 15 step scanning kolom pada setiap kali penampilan huruf di matrix. Jadi jika menggunakan 4 matrix cukup merubah unsur penghitungan kolom yang ditampilkan saja (step = 20). Untuk geser atas atau animasi lainnya dapat dikreasikan dari project love hurt.

Hasil dari project ini yang dilakukan rekan sn0bi dari makasar seperti pada video berikut :




seperti biasa, jika ingin membeli bahan-bahannya bisa lewat aku, atau paket belajarnya di "custom" dengan 3 led matrix ? bisa...harga nego via contact aku ya...

SELAMAT MENCOBA
Share:

Jumat, 07 Juni 2013

Tutorial: POV TEXT Sederhana



Yang mau belajar tentang POV... nih ane share, tapi yang model paling sederhana dulu ya...
Jadi startnya masih ngaco karena ga ada semacam sensor penanda posisi motor
tapi lumayan lah buat start pemula....

Sebelumnya kita perlu tau prinsip POV,sebenernya sama dengan prinsip scanning led matrix, dimana tiap byte dari baris dikeluarkan satu persatu berdasarkan periode waktu. Karena led ini bergerak (dalam hal ini berputar) maka kelembaman mata akan menyebabkan efek terlihatnya teks. Seperti pada video berikut ini :






Video diatas merupakan dasar POV yang cukup sederhana yang tidak memiliki sensor penanda awal posisi motor dan deretan led, sehingga efek yang muncul adalah tulisan yang tidak diam alias ikut muter. Sensor yang mungkin dipakai adalah Opto sensor atau magnetic-hall efect sensor. Sensor ini nantinya akan mentrigger interupt yang akan menandai titik referensi awal dari motor.


0307feat2fig1.gif (410×433)



Hall_sensor_tach.gif (274×204)
Sensor Opto dan Magnetic (Hall Effect)





skematiknya ini ya ...



scriptnya ga jauh beda dengan praktek LOVEHURT kok ...


#define F_CPU 1000000UL

#include <avr/io.h>

#include <util/delay.h>

#include <avr/eeprom.h>

#include <inttypes.h>

#include <avr/interrupt.h>

#include <avr/pgmspace.h> 

#include <string.h>



//database Huruf

const char h_A[5] PROGMEM = {0x7e, 0x11, 0x11, 0x11, 0x7e}; //A

const char h_B[5] PROGMEM = {0x7f, 0x49, 0x49, 0x49, 0x36}; //B

const char h_C[5] PROGMEM = {0x3e, 0x41, 0x41, 0x41, 0x22}; //C

const char h_D[5] PROGMEM = {0x7f, 0x41, 0x41, 0x22, 0x1c}; //D

const char h_E[5] PROGMEM = {0x7f, 0x49, 0x49, 0x49, 0x41}; //E

const char h_F[5] PROGMEM = {0x7f, 0x09, 0x09, 0x09, 0x01}; //F

const char h_G[5] PROGMEM = {0x3e, 0x41, 0x49, 0x49, 0x7a}; //G

const char h_H[5] PROGMEM = {0x7f, 0x08, 0x08, 0x08, 0x7f}; //H

const char h_I[5] PROGMEM = {0x80, 0x41, 0x7f, 0x41, 0x80};//I

const char h_J[5] PROGMEM = {0x20, 0x40, 0x41, 0x3f, 0x01}; //J

const char h_K[5] PROGMEM = {0x7f, 0x08, 0x14, 0x22, 0x41}; //K

const char h_L[5] PROGMEM = {0x7f, 0x40, 0x40, 0x40, 0x40}; //L

const char h_M[5] PROGMEM = {0x7f, 0x02, 0x04, 0x02, 0x7f}; //M

const char h_N[5] PROGMEM = {0x7f, 0x04, 0x08, 0x10, 0x7f}; //N

const char h_O[5] PROGMEM = {0x3e, 0x41, 0x41, 0x41, 0x3e}; //O

const char h_P[5] PROGMEM = {0x7f, 0x11, 0x11, 0x11, 0x0e}; //P

const char h_Q[5] PROGMEM = {0x3e, 0x41, 0x51, 0x21, 0x5e}; //Q

const char h_R[5] PROGMEM = {0x7f, 0x09, 0x19, 0x29, 0x46}; //R

const char h_S[5] PROGMEM = {0x46, 0x49, 0x49, 0x49, 0x31}; //S

const char h_T[5] PROGMEM = {0x01, 0x01, 0x7f, 0x01, 0x01}; //T

const char h_U[5] PROGMEM = {0x3f, 0x40, 0x40, 0x40, 0x3f}; //U

const char h_V[5] PROGMEM = {0x1f, 0x20, 0x40, 0x20, 0x1f}; //V

const char h_W[5] PROGMEM = {0x3f, 0x40, 0x38, 0x40, 0x3f}; //W

const char h_X[5] PROGMEM = {0x63, 0x14, 0x08, 0x14, 0x63}; //X

const char h_Y[5] PROGMEM = {0x07, 0x08, 0x70, 0x08, 0x07}; //Y

const char h_Z[5] PROGMEM = {0x61, 0x51, 0x49, 0x45, 0x43}; //Z

const char h_27[5] PROGMEM = {0x32, 0x49, 0x79, 0x41, 0x3f}; //@

const char h_28[5] PROGMEM = {0x02, 0x01, 0x51, 0x09, 0x06}; //?

const char h_29[5] PROGMEM = {0x80, 0x80, 0x5f, 0x80, 0x80}; //!

const char h_30[5] PROGMEM = {0x3e, 0x51, 0x49, 0x45, 0x3e}; //0

const char h_31[5] PROGMEM = {0x80, 0x42, 0x7f, 0x40, 0x80}; //1

const char h_32[5] PROGMEM = {0x42, 0x61, 0x51, 0x49, 0x46}; //2

const char h_33[5] PROGMEM = {0x41, 0x41, 0x45, 0x4b, 0x31}; //3

const char h_34[5] PROGMEM = {0x18, 0x14, 0x12, 0x7f, 0x10}; //4

const char h_35[5] PROGMEM = {0x27, 0x45, 0x45, 0x45, 0x39}; //5

const char h_36[5] PROGMEM = {0x3c, 0x4a, 0x49, 0x49, 0x31}; //6

const char h_37[5] PROGMEM = {0x01, 0x71, 0x09, 0x05, 0x03}; //7

const char h_38[5] PROGMEM = {0x36, 0x49, 0x49, 0x49, 0x36}; //8

const char h_39[5] PROGMEM = {0x06, 0x49, 0x49, 0x29, 0x1e}; //9

const char h_40[5] PROGMEM = {0x80, 0x60, 0x60, 0x80, 0x80}; //dot

const char h_41[5] PROGMEM = {0x20, 0x10, 0x08, 0x04, 0x02}; //slash

const char h_42[5] PROGMEM = {0x08, 0x08, 0x08, 0x08, 0x08}; //-

const char h_43[5] PROGMEM = {0x80, 0x80, 0x80, 0x80, 0x80}; //blank

const char h_44[5] PROGMEM = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; //end



char charnya[5];



void tulis(void)



{



int a;



for(a=0 ; a<5 ;a++)

 { 

   PORTD = charnya[a] ;

   _delay_ms(2);



 }





PORTD = 0x80 ;

_delay_ms(2);

}







int main(void)

{
    DDRD = 0b1111111; // PD0-PD6 output

 while(1)

 {

//ubah susunan huruf sesuai keinginan (asal ga penuh aja memorynya)



     strncpy_P(charnya,h_A,5);

  tulis();



  strncpy_P(charnya,h_H,5);

  tulis();



  strncpy_P(charnya,h_O,5);

  tulis();



         strncpy_P(charnya,h_C,5);

  tulis();



  strncpy_P(charnya,h_O,5);

  tulis();



  strncpy_P(charnya,h_O,5);

  tulis();



  strncpy_P(charnya,h_L,5);

  tulis();



     _delay_ms(500);  //ubah2 sesuai keinginan dan kecepatan motor

 }

 

return 0;

}









lumayan kan ? skematik dalam bentuk eagle dapat didownload disini
Share:

Jumat, 04 Januari 2013

Animasi LED keren


Berdasarkan reques seorang pembaca , posting saya kali ini sesuai dengan video youtube dibawah ini.




Sebenernya project serupa pernah saya bahas di project led berjalan dengan ic 4017, hanya kali ini animasinya lumayan keren dan memakai banyak LED. Untuk mendrive LED yang banyak dibutuhkan transistor dan perhitungan tegangan sumber vs jumlah LED beserta kombinasi rangkaian paralel/seri sesuai rumus di www.ledcalculator.net

Gambaran driving led jumlah  banyak seperti gambar dibawah ini.


Gambar yang diatas menunjukkan 5 buah LED yang langsung dihubungkan ke output 4017 karena ic 4017 diberi tegangan 12volt dimana jika memakai 5 LED maka masing-masing LED mendapatkan tegangan yang cukup. Jika Led lebih banyak maka diperlukan perhitungan seri-paralel sesuai rumus.

Pada video youtube terdapat 4 buah rangkaian LED yang disusun membentuk karakter. Berdasarkan sifat output 4017 maka untuk membuat animasi seperti pada video maka mudah saja dengan memberikan output single pada out  0 - 1 - 2 - 3  ke masing-masing huruf. Sedangkan untuk membikin kedip bareng maka yang disambungkan secara paralel adalah output 5 - 7 - 9. Agar animasi sesuai dan tidak numpuk maka ditambahkan dioda small signal 1N4148 yang disusun seperti rangkaian berikut:



(klik untuk memperbesar)



Mudah Bukan ? Selamat Mencoba
Share:

Cara Membuat Led Berjalan yang Panjang (cascade)






Banyak pertanyaan yang datang melalui sms, group BBM atau facebook yang bertanya bagaimana membuat rangkaian Led Berjalan (Running LED) yang memiliki panjang lebih dari 10 ? Jika anda googling maka akan diarahkan menuju website hobby yang sudah terkenal milik sesepuh elektronika BILL BOWDEN. Rangkaian pertama yang ditawarkan seperti berikut:


courtesy of BILL BOWDEN 's    http://www.bowdenshobbycircuits.info



(klik untuk memperbesar)


Rangkaian ini memanfaatkan 2 buah 4017 dan 10 transistor yang akan membuat led berjalan 25 buah, dan jika mau dapat di perpanjang sampai 10 x 10 atau 100 buah. Rangkaian ini memanfaatkan kombinasi scanning kolom dan baris seperti halnya dot matrix, akan tetapi jika LED disusun berurutan maka maksimum 100 sequence bisa diperoleh.

Rangkaian dasar dari running 10 LED seperti berikut :


(klik untuk memperbesar)


Sedangkan jika di cascade 2 buah 4017 caranya dengan menambahkan dioda dan beberapa resistor.





(klik untuk memperbesar)



Rangkaian cascade ini memanfaatkan output clock dari pin ke  3 dari  4017 pertama. Kadang-kadang orang pintar pun banyak salahnya dan rangkaian diatas tidak berhasil jika dicoba lhoo. Penulis akhirnya bereksperimen sehingga menemukan cara yang lebih akurat dengan menggunakan transistor sebagai pengendali input ke pin enable dan reset seperti rangkaian berikut.



(klik untuk memperbesar  , VDD = Tegangan (+)  VSS = Tegangan (-) atau Ground ) 



Komponen tambahan berupa dioda 1N4148, resistor 10K dan transistor NPN umum seperti 2N3904, BC107, 2N2222, C9013 dan lain sebagainya. Input clock dari rangkaian berasal dari rangkaian clock 555 (atau yg lainnya) yang sama diberikan ke tiap ic 4017.

Prinsip dari rangkaian adalah memberikan input ke pin 13 (chip enable yang aktif LOW ) pada sequence terakhir (Q9) dari sebuah IC 4017. Selama sequence belum berakhir maka  Q9 yang nilainya "LOW" akan mengenable kan IC serta me-Reset IC pada posisi setelahnya. Efek yang terjadi adalah bahwa hanya sebuah 4017 yang akan aktif sedangkan ic 4017 setelahnya berada pada kondisi "Reset" sedangkan pada ic 4017 posisi sebelumnya mendapatkan posisi disable.

Rangkaian ini dapat disusun sampai banyak 4017 tak terhingga, dan pada ic 4017 terakhir, sequence terakhir  (Q9) akan dihubungkan menuju reset pada ic 4017 pertama. Sebaiknya hubungannya diberikan dioda agar logikanya tidak mengambang (float). Kondisi ini akan mereset semua ic 4017 dan memulai sequence dari awal lagi. Output yang dikorbankan adalah Q0 dan Q9 sehingga berkurang 2 buah sequence tiap ic 4017.

Trick cascading ini sangat berguna untuk proses scanning kolom untuk rangkaian text scroll menggunakan led matrix yang jumlahnya banyak seperti pembahasan disini .


Cara lain yang cukup simple adalah memanfaatkan ic shift register seperti 74LS595 / 74HC164 tetapi ic shift register akan susah dijumpai di daerah-daerah pinggiran sehingga ic 4017 yang lebih universal menjadi pilihan terbaik.

(klik untuk memperjelas)



terjemahan dari web asli :

16 (bisa lebih) Tahap LED Sequencer

Sirkuit pada gambar di atas menggunakan hex ​​inverter Schmitt Trigger (74HC14) dan dua 8 bit Serial-In/Parallel-Out register geser (74HCT164 atau 74HC164) untuk urutan 16 LED. Rangkaian dapat diperluas ke panjang lebih besar dengan cascading shift register tambahan dan menghubungkan output ke-8 (pin 13) ke input data (pin 1) tahap berikutnya. sebuah Schmitt trigger osilator (74HC14 pin 1 dan 2) menghasilkan sinyal clock untuk register geser, dengan kecepatan clock yang kira-kira 1/RC. Dua tambahan tahap Schmitt trigger digunakan untuk me-reset dan memuat register saat dinyalakan. Ketepatan waktu tidak perlu terlalu diperhatikan , namun output pada pin 8 dari  Schmitt Trigger harus tetap "HIGH" selama "LOW" atau 0 yang pertama  dan digunakan untuk transisi clock ke "HIGH"di pin 8 dari register, dan harus kembali "LOW" sebelum sisi kenaikan clock untuk memuat satu bit. Jika clock rate meningkat, panjang sinyal pada pin 9 dari  Schmitt Trigger harus diturunkan secara proporsional untuk menghindari memuat lebih dari satu bit. IC dengan type HC biasanya akan menyediakan sekitar 4 mA (dinamakan arus sink) dari setiap output tetapi dapat memasok arus besar (mungkin 25 mA) jika hanya satu output dimuat. Umumnya  resistor 150 ohm membatasi arus bawah 25 mA jika menggunakan sumber daya 6 volt. Jika sirkuit ini dioperasikan dengan dua atau lebih LED pada pada saat yang sama, resistor mungkin diperlukan secara seri dengan masing-masing LED untuk menghindari melebihi total output maksimum saat ini untuk setiap IC dari 25 mA. Untuk kecerahan yang lebih besar, transistor buffer/daya dapat digunakan seperti yang pernah dibahas pada perancangan led berjalan 10 tahap disini.


SELAMAT MENCOBA
Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

HP: 081331339072
Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (13) android (12) antares (3) arduino (16) artikel (5) attiny (2) attiny2313 (18) blog (1) bluetooth (1) cmos (2) crypto (2) dasar (41) display (3) esp8266 (3) euro2020 (11) gcc (1) iklan (1) infrared (2) Input Output (3) iot (23) jam (6) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (15) komputer (3) komunikasi (1) kontrol (7) lain-lain (8) lcd (2) led (13) led matrix (6) line tracer (1) lm35 (1) memory (1) metal detector (4) microcontroller (56) mikrokontroller (10) mikrotik (5) ninmedia (2) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (66) pcb (2) praktek (2) project (33) proyek (1) python (1) radio (13) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (1) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telepon (9) televisi (135) television (21) transistor (2) troubleshoot (3) tulisan (81) tutorial (80) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika