Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

  • 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

  • Ayo Migrasi TV Digital

    Kami bantu anda untuk memahami lebih jelas mengenai migrasi tv digital, apa sebabnya dan bagaimana efek terhadap kehidupan. Jasa teknisi juga tersedia dan siap membantu instalasi - setting perangkat - pengaturan antena dan distribusi televisi digital ke kamar kos / hotel

  • 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

  • Node Red - Kontrol Industri 4.0

    Teknologi kontrol sudah melampaui ekspektasi semua orang dan dengan kemajuan dunia elektronika, kini semakin leluasa berkreasi melalui Node Red

Rabu, 05 Agustus 2015

Mau Tahu Bagaimana TRANSISTOR ditemukan ?




Dunia baru saja kembali ke periode damai setelah WW II berkecamuk dengan kemenangan ada dipihak Sekutu. Sepertinya peperangan menjadi salah satu unsur penting dalam perkembangan teknologi dunia dimana para ilmuwan dipaksa menciptakan sesuatu benda yang berguna untuk kepentingan perang dan pada akhirnya lebih membantu manusia saat di waktu damai. Perkembangan dunia telekomunikasi saat perang mendorong negara maju ber inovasi membuat perangkat telekomunikasi yang lebih ringkas. Salah satu pelopor dunia telekomunikasi yang saat itu berperan besar adalah Bell Laboratories di Amerika Serikat.



Untuk dapat menyampaikan pesan telepon melalui jarak yang jauh maka dibutuhkan perangkat amplifier sebagai penguat suara. Pada awalnya digunakan prinsip percepatan elektron pada tabung hampa yang kemudian lebih dikenal dengan TUBE AMPLIFIER. Tapi tabung ini seperti halnya bohlam lampu memiliki waktu pakai terbatas yang akan rusak setelah beberapa jam pakai. Begitu juga dengan daya listrik yang diperlukan sangat boros dengan efisiensi kecil karena banyak panas yan dihasilkan. Sehingga ketika perang dunia berakhir para ilmuwan pada Bell Laboratories  melakukan percobaan menciptakan penguat sinyal yang lebih handal dan "SOLID STATE".



Ilmuawan yang dikenal sebagai pelopor dan penemu dari transistor adalah John Bardeen, William shockley dan Walter Bratain. Para ilmuwan lainnya juga berperan karena penciptaan transistor meliputi banyak bidang keilmuwan diantaranya elektro, kimia, fisika, material dan mesin. Kerjasama berbagai bidang sains ini menghasilkan suatu alat yang pada awalnya tanpa nama yang sampai perlu diadakan voting untuk memilih nama yang sesuai.





Seperti yang ditulis pada gambar diatas kata transistor merupakan gabungan trans konduktasi dan resistansi variabel. Jadi alat ini dapat diatur tingkat konduktansi dan resistansinya dengan pengaturan sedemikian rupa, Secara lebih mudah dapat dibahas pada penjelasan berikut :


PRINSIP SEMIKONDUKTOR


Kristal yang menjadi perhatian para ilmuwan bell adalah GERMANIUM setelah ilmuwan bell berhasil menciptakan alat pemurni kristal Ge. Sifat dari germanium memiliki konduktivitas yang berbeda dengan konduktor dan isolator. Sifat lainnya meliputi reaksinya terhada panas dan cahaya.

Ketika germanium dipanaskan maka konduktivitasnya meningkat

 Bandingkan dengan kawat tungsten yang konduktivitasnya menurun saat dipanaskan


Efek cahaya terhadap konduktivitas Germanium



PRINSIP PENYEARAH KRISTAL


Gambar diatas merupakan radio "CRYSTAL" jaman dulu kala dimana terdapat alat yang bernama "CAT WISHKER" sebagai detektor sinyal RADIO menjadi AUDIO. Frekuensi tinggi dari modulasi AM akan di searahkan oleh gabungan kristal silikon dan kawat halus sehingga yang tertinggal hanya gelombang audio yang kemudian bisa didengarkan melalui earphone.



Ketika prinsip ini diterapkan pada kristal Germanium yang dihubungkan dengan tembaga maka prinsip penyearah dapat dilihat dari experimen diatas. Ilmuwan kemudian memanfaatkan prinsip ini untuk membuat RADAR yang membuat sekutu menang perang pada WW II. Pada masa damai ilmuwan Bell laboratories berusaha melakukan kontrol terhadap prinsip ini sehingga dapat melakukan penguatan sinyal kecil. Pada awalnya para ilmuwan berfokus pada efek medan dilapisan luar dari germanium (field efect) seperti halnya perlakuan pada tube amplifier. Akan tetapi percobaan ini kurang berhasil menghasilkan penguatan yang dapat diatur.

Percobaan field efek pada semikonduktor



EFEK TRANSISTOR



Gambar diatas menjadi salah satu "EUREKA MOMENT" dari trio penemu transistor. Jika anda sering menonton acara Ancient Aliens di History ch, mungkin saja akan dipercayai (oleh si rambut jeprak) bahwa trio ini mendapat bisikan dari mahluk ekstrateresterial. Tapi entahlah ... yg mereka temukan ini merupakan loncatan besar bagi seluruh dunia. Penemuan ini terjadi pada bulan desember 1947.

Pada gambar diatas terlihat kristal germanium diberikan 2 buah koneksi ke sumber tenaga. Yang sebelah kiri tembaganya langsung menyentuh ke kulit kristal Ge, sedangkan pada sebelah kanan salah satu ujung kawat tembaga diberikan isolator berupa lilin. Tambahan elektrolit berupa tetesan air diberikan diantara sambungan . Yang terjadi adalah kemudian dinamakan "TRANSISTOR EFFECT" dimana secara ajaib ketika rangkaian sebelah kiri diberikan sumber arus maka efek pada sebelah kanan (yang sebelumnya tidak nyambung) menjadi teraliri arus listrik.




Tentu saja air tidak bertahan lama karena menguap dan kemudian dipilihlah emas sebagai pengganti air, sedangkan isolatornya hanya diberikan jarak antara kawat dan permukaan kristal Ge. Transistor jenis ini selanjutnya disebut POINT-CONTACT Transistor.


Transistor pertama yg berhasil berfungsi pada Bell Laboratories





Perkembangan selanjutnya william shockley menemukan yang dinamakan junction transistor setelah kemajuan  pada proses pembentukan kristal Germanium.



Akhirnya transistor menjadi semakin kecil dan karakteristiknya semakin bagus . Penggunaan pada frekuensi2 tinggi pun dapat dicapai dengan daya yang kecil dan efisiensi panas sangat bagus dibandingkan amplifier tabung.

 Alloy Transistor bekerja pada frekuensi tinggi

Silikon transistor 

Wafer silikon yg dapat diproduksi masal




COURTESY




SUMBER



Share:

Jumat, 31 Juli 2015

Waktu Sholat dan Display Informasi Untuk Masjid - Usaha - Sekolah







PRODUK TERBARU DARI AISI555

SOFTWARE DISPLAY INFORMASI DENGAN PEWAKTU SHOLAT






FITUR :
  • Sebagai media informasi untuk ruang tunggu di berbagai lokasi. 
  • Memanfaatkan TV layar lebar sebagai media selain menampilkan siaran TV
  • Menampilkan TV/Video, Gambar , Text Berjalan dan Waktu
  • Keunggulan software pada Timer (pewaktu sholat) yang akan memberi informasi waktu sholat secara otomatis
  • 10 Menit sebelum Azan maka pewaktu akan hitung mundur dan akan stop (layar hitam) jika mencapai waktu sholat, dan akan kembali hidup setelah waktu yang ditentukan
  • Semua kontrol layout / posisi display dilakukan melalui software editor yang tersedia
  • Dapat di broadcast ke TV KABEL / CATV Hotel / TV Komunitas
  • Kini dengan Live Youtube sehingga dapat menampilkan Live Mekkah


KEBUTUHAN :

  • Komputer / PC , sebaiknya PC MINI sehingga bisa ditempel di bracket TV
  • TV tuner sebagai input saluran TV / TV KABEL / SATELIT
  • TV Layar lebar dengan input HDMI / VGA






contoh konfigurasi display (klik gambar untuk lebih jelas)




contoh software editor


 DEMO :


Silahkan download demo : https://goo.gl/Z3u5K4


KONTAK :

Untuk informasi harga dan penawaran silahkan hubungi kami :

 HP : 081331339072
 WA : 08155737755
 Mail : ahocool@gmail.com


Share:

Rabu, 15 April 2015

[ROBOTIS KIDSLAB] Memanjakan Anak atau Ikut Tren Mainan High-Tech ?


Hari dimana saya menyerah pada hobby elektronika yang super praktis akhirnya tiba. Saya membelikan anak teman saya "Robot Rakitan Mahal !" Padahal jika diteliti lagi pada tulisan-tulisan saya terdahulu maka dapat dilihat betapa bencinya saya kepada platform elektronika siap pakai, saya sangat menyarankan untuk selalu membuat sesuatunya dari "SCRATCH" ......yahh sudahlah, toh kali ini faktanya saya yang teracuni oleh robot mahal ini, padahal budget awal yang disepakati jauh dari kenyataan. Jadinya saya sedikit memaksa teman saya untuk upgrade budget...maafin saya ya...tapi ini WORTHED !

LEGO .....Kemahalan !  Line Tracer Lokal ......Keterlaluan ! (manualnya mungkin hanya dimengerti oleh yang buat). Robot Tamiya ...hanya mekanik saja.... Jadi apa yang sesuai keinginan agar anak SD-SMP mampu menyerap ilmu Elektronika + Mekanikal + Komputer ? Mungkin Produk dari ROBOTIS asal korea ini menjadi pilihan yang tidak terlalu mahal untuk ukuran sekarang.





Apa sih yang spesial ? Ini saya tunjukkan gambar buku petunjuknya yang seperti LKS ....Lego lewat brooo....






Paket robotik merek OLLO ini berbasiskan microcontroller yang diberi label CM-100 dimana dapat dioperasikan secara stand alone (8 buah project yang ter-install langsung) dan selanjutnya bisa di programkan sesuai keinginan melalui downloader dan console script.




Jadi endingnya....senanglah teman saya itu karena berhasil saya racuni setelah beberapa "approaching" dan akhirnya setuju melakukan upgrade budget setelah mendapat approval dari ibu negara.

Sayangnya karena paket robot ini sudah saya kirim jadinya saya tidak terlalu lama bermain-main ini...tapi ga apa lah..toh di youtube banyak yang sudah upload video nya..seperti yang ini ..







Ada yang berminat beli ? nitip saya boleh kok....heheheheh...
Share:

Rabu, 19 November 2014

[TUTORIAL & SCRIPT BREAKDOWN] RPM - TACHOMETER HONDA dengan ATTINY2313




Akhirnya balik lagi ke blog ini setelah beberapa waktu vakum. Dan kali ini menjawab beberapa request yang masuk untuk membahas lebih lanjut mengenai RPM - TACHOMETER untuk sepeda motor yang pernah dibahas disini . Sebenernya jika selalu mengikuti perkembangan blog ini maka tidak terlalu susah asal dasar pengetahuan timer dan interupt nya lengkap. 

Intinya pada project ini adalah mendeteksi RADIASI pulsa CDI ke BUSI dan dimasukkan ke PIN INTERRUPT dan kemudian dihitung jumlah pulsa yang muncul vs waktu. Dan didapatkanlah RPM yang diinginkan. Kali ini kita juga akan membuat animasi graph / level sehingga tidak bosan dengan angka-angka saja.

Perhatikan skematik dibawah ini dan bahan2nya bisa dilihat dari gambar berikut (klik untuk gambar lebih jelas)



Jangan lupa juga untuk menyediakan motor yang akan di "HIAS" yang kali ini meminjam motor anak buah saya yaitu HONDA SUPRA VIT. Saya memiliki pengalaman jika bebek honda lebih bocor sinyal CDI nya ketimbang motor lain. Jadi jika menggunakan motor lain maka disesuaikan pemilihan resistor sebelum transistor pembaca pulsa (2N3904) dan pengalaman lainnya ketika menggunakan sepeda motor Yamaha Vega maka transistor yg digunakan adalah PNP 2N3906 dengan tanpa menggunakan resistor pada basis dan VCC ke EMITOR sedangkan INTERUPT ke COLECTOR (dibalik).





Langsung aja kita bahas script nya biar ga bingung, agak panjang tapi ga rugi kok



>>>HEADER<<

Attiny 2313 yang digunakan adalah default yg memiliki clock 1MHz. 

#define F_CPU 1000000UL // sesuaikan clock yang digunakan !!
#include <avr/io.h>
#include <util/delay.h>
#include <avr/eeprom.h>
#include <inttypes.h>
#include <avr/interrupt.h>

// ini untuk animasi kata awal, ubah sesuai keinginan atau hapus jika tidak mau
uint8_t angka1=16 ;
uint8_t angka2=17 ;
uint8_t angka3=20 ;
uint8_t angka4=15 ;


uint8_t segstep=0; // untuk pindah segmen

uint8_t kalibrasi=3; // kalibrasi awal

uint8_t valid=0; // variabel untuk mengatasi noise ke tombol

int number=0; // variabel menyimpan jumlah counter



>>>PENERJEMAH ANGKA ke SEGMEN<<

7 segmen yang digunakan merupakan common Anoda sehingga untuk menyalakan segmen dibutuhkan logic "LOW" atau 0 volt / Ground. Untuk animasi dan huruf dapat dikreasikan sendiri dengan kombinasi "LOW" untuk segmen menyala dan "HIGH" untuk segmen mati.

void conv_segmen(uint8_t digit)
// Rutin ini merubah angka dan animasi ke segmen
{
    switch (digit)        
          {
//angka biasa
  case 0 :  
     {
         PORTB &= ~_BV(PB0) & ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB4) & ~_BV(PB5); //PORT YG NYALA
         PORTB |= _BV(PB6) ; //PORT YG MATI 
      break;
           }
  case 1 :
     {
         PORTB &= ~_BV(PB1) & ~_BV(PB2) ;
               PORTB |= _BV(PB0) |  _BV(PB3) | _BV(PB4) | _BV(PB5) | _BV(PB6) ;
      break;
           }
  case 2 : 
     {
         PORTB &= ~_BV(PB0) & ~_BV(PB1) &  ~_BV(PB3) & ~_BV(PB4) & ~_BV(PB6) ;
               PORTB |= _BV(PB2) |  _BV(PB5)  ;
      break;
           }  
  case 3 : 
      {
         PORTB &= ~_BV(PB0) & ~_BV(PB1) &  ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB6) ;
               PORTB |= _BV(PB4) |  _BV(PB5)  ;
      break;
           }
  case 4 :
     {
         PORTB &= ~_BV(PB1) & ~_BV(PB2) &  ~_BV(PB5) & ~_BV(PB6)  ;
               PORTB |= _BV(PB0) |  _BV(PB3) |  _BV(PB4) ;
      break;
           }
  case 5 : 
     {
         PORTB &= ~_BV(PB0) & ~_BV(PB2) &  ~_BV(PB3) & ~_BV(PB5)  & ~_BV(PB6)  ;
               PORTB |= _BV(PB1) |  _BV(PB4)  ;
      break;
           }
  case 6 : 
     {
         PORTB &= ~_BV(PB0) & ~_BV(PB2) &  ~_BV(PB3) & ~_BV(PB4)  & ~_BV(PB5) & ~_BV(PB6) ;
               PORTB |= _BV(PB1) ;
      break;
           }
  case 7 : 
     {
         PORTB &= ~_BV(PB0) & ~_BV(PB1) &  ~_BV(PB2)  ;
               PORTB |= _BV(PB3) |  _BV(PB4) |  _BV(PB5)|  _BV(PB6) ;
      break;
           }  
  case 8 : 
     {
         PORTB &= ~_BV(PB0) & ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB4) & ~_BV(PB5) & ~_BV(PB6);
      break;
           }
  case 9 : 
     {
         PORTB &= ~_BV(PB0) & ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB5) & ~_BV(PB6);
               PORTB |= _BV(PB4) ;
      break;
           }
  case 10 : //kosong
     {
    PORTB |= _BV(PB0) | _BV(PB1) |  _BV(PB2) |  _BV(PB3) | _BV(PB4) | _BV(PB5) | _BV(PB6) ;
      break;
           }
 //11 - 14 khusus untuk animasi level       
  case 11 : 
     {
         PORTB &= ~_BV(PB4); 
               PORTB |= _BV(PB0) | _BV(PB1) | _BV(PB2) | _BV(PB3) | _BV(PB5) | _BV(PB6);
      break;
           } 
   
   case 12 : 
     {
         PORTB &= ~_BV(PB4) & ~_BV(PB2); 
               PORTB |= _BV(PB0) | _BV(PB1)  | _BV(PB3) | _BV(PB5) | _BV(PB6);
      break;
           }
  case 13 : 
     {
         PORTB &= ~_BV(PB4) & ~_BV(PB2) & ~_BV(PB5); 
               PORTB |= _BV(PB0) | _BV(PB1)  | _BV(PB3) | _BV(PB6) ;
         break;
           } 
   
   case 14 : 
     {
         PORTB &= ~_BV(PB4) & ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB5); 
               PORTB |= _BV(PB0) | _BV(PB3) | _BV(PB6) ;
         break;
           }
// kebetulan nama pemilik motor seperti ini, ubah sesuai keinginan
   case 15 : //r
     {
         PORTB &= ~_BV(PB6)  & ~_BV(PB4) ; 
                       PORTB |= _BV(PB0) | _BV(PB1) | _BV(PB3) | _BV(PB2) | _BV(PB5) ;
         break;
           }  

   case 16 : //i
     {
         PORTB &= ~_BV(PB4); 
               PORTB |= _BV(PB0) | _BV(PB1) | _BV(PB3) | _BV(PB2) | _BV(PB5) | _BV(PB6)  ;
         break;
           }   
   
   case 17 : //b
     {
         PORTB &= ~_BV(PB3) & ~_BV(PB4) & ~_BV(PB5) & ~_BV(PB2) & ~_BV(PB6); 
               PORTB |= _BV(PB0) |_BV(PB1)  ;
         break;
           }   

   case 18 : //y
     {

         PORTB &= ~_BV(PB1) & ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB5) & ~_BV(PB6);
               PORTB |= _BV(PB4)| _BV(PB0);
      break;
           } 

   case 19 : //u
     {

         PORTB &= ~_BV(PB2) & ~_BV(PB3) & ~_BV(PB4) ;
               PORTB |= _BV(PB1)| _BV(PB0) | _BV(PB5) | _BV(PB6);
      break;
           } 

   case 20 : //0
     {
         PORTB &= ~_BV(PB3) & ~_BV(PB4) & ~_BV(PB2) & ~_BV(PB6); 
               PORTB |= _BV(PB0) |_BV(PB1) |_BV(PB5)  ;  
      break; 
     }


}

}




>>>ANIMASI LEVEL RPM<<

Nilai RPM akan diterjemahkan dari angka menjadi level / bar graph

void animasi(uint8_t posisi)

{

switch(posisi)  {  
       case 0 :{ angka4=10; angka3=10 ; angka2=10; angka1=10;
              break; }
       case 1 :{ angka4=11; angka3=10 ; angka2=10; angka1=10;
              break; }
       case 2 :{ angka4=12; angka3=10 ; angka2=10; angka1=10;
              break; }
       case 3 :{ angka4=12; angka3=11 ; angka2=10; angka1=10;
              break; }
       case 4 :{ angka4=12; angka3=12 ; angka2=10; angka1=10;
              break; }
       case 5 :{ angka4=12; angka3=12 ; angka2=11; angka1=10;
              break; }
       case 6 :{ angka4=12; angka3=12 ; angka2=12; angka1=10;
              break; }
       case 7 :{ angka4=12; angka3=12 ; angka2=12; angka1=11;
              break; }
       case 8 :{ angka4=12; angka3=12 ; angka2=12; angka1=12;
              break; }
       case 9 :{ angka4=13; angka3=12 ; angka2=12; angka1=12;
              break; }
       case 10 :{ angka4=14; angka3=12 ; angka2=12; angka1=12;
              break; }
       case 11 :{ angka4=14; angka3=13 ; angka2=12; angka1=12;
              break; }
       case 12 :{ angka4=14; angka3=14 ; angka2=12; angka1=12;
              break; }
       case 13 :{ angka4=14; angka3=14 ; angka2=13; angka1=12;
              break; }
       case 14 :{ angka4=14; angka3=14 ; angka2=14; angka1=12;
              break; }
       case 15 :{ angka4=14; angka3=14 ; angka2=14; angka1=13;
              break; }
       case 16 :{ angka4=14; angka3=14 ; angka2=14; angka1=14;
              break; }
       default :{ angka4=14; angka3=14 ; angka2=14; angka1=14;
              break; }
         }

}



>>>INISIALISASI COUNTER<<

Counter 0 adalah counter 8 bit, sedangkan Counter 1 adalah 16 bit. Silahkan membaca terlebih dahulu penjelasan mengenai counter dan timer disini.

void init_ctr(void) //COUNTER 0 8 BIT untuk pindah kolom 7 segmen
{
  
   
   TCCR0A |= (1 << WGM01); // Configure timer 0 for CTC mode
   TIMSK |= (1 << OCIE0A); // Enable CTC interrupt
   OCR0A   = 50; // Set CTC compare value  till blink disapear at 1MHz AVR clock, with a prescaler of 64
   TCCR0B |= (1 << CS01)|(1 << CS00); // Start timer at Fcpu/64
   
   
}


void init_ctr1(void) //COUNTER 1 untuk penghitung pulsa saat 600ms
{
   
   TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
   TIMSK |= (1 << OCIE1A); // Enable CTC interrupt 
   OCR1A  = 586; //compare the CTC A = 600ms =586
   TCCR1B |= ((1 << CS10) | (1 << CS12)); // Start timer at Fcpu/1024

}




>>>INTERRUPT TIMER<<


ISR(TIMER1_COMPA_vect) //interrupt timer 1 (16 bit)  untuk capture jumlah pulsa 

{ uint16_t rpm,anime; //variabel

anime=0;
rpm=0;

switch(kalibrasi) {  //Pemilih kalibrasi
      case 1 :{ 
          rpm=number/100;
    break; }

      case 2 :{ 
          rpm=number/10;
    break; }

      case 3 :{ 
          rpm=number;
    break; }

      case 4 :{ 
          rpm=number*10;
    break; }

      case 5 :{ 
          rpm=number*100;
    break; }
      
   case 6 :{ 
          anime=1;
    break; }
      
   case 7 :{ 
          anime=2;
    break; }

    }

  //Pemilih antara angka rpm atau animasi level
switch(anime) { 

case 0 : { //ANGKA RPM

OCR1A  = 586;
angka1 = rpm%10;

if(rpm>9) angka2 = ((rpm%100) - (rpm%10)) /10 ;
else angka2=10;

if(rpm>99) angka3 = ((rpm%1000) - (rpm%100)) /100 ;
else angka3=10;

if(rpm>999) angka4 = ((rpm%10000) - (rpm%1000)) /1000 ;
else angka4=10;
  
break ; }

case 1 : {  //ANIMASI MODE 1
OCR1A  = 100;
animasi(number/10);
  
break ; }
         
case 2 : {  //ANIMASI MODE 2
OCR1A  = 100;
animasi(number/50);

break ; }

  }


number=0;

}

ISR(TIMER0_COMPA_vect) // timer 0 (8 bit) untuk pindah kolom 7 segmen
{

//tiap segmen yg akan dinyalakan akan diberikan logic High

segstep++;

  switch(segstep) {  
      case 1 :{  conv_segmen(10);
              PORTD |= _BV(PD0);
                 PORTD &= ~_BV(PD1) & ~_BV(PD4) & ~_BV(PD5)  ;  
                    conv_segmen(angka4);
     break;
                  }
 
         case 2 :{  conv_segmen(10);
              PORTD |= _BV(PD1);
                 PORTD &= ~_BV(PD0) & ~_BV(PD4) & ~_BV(PD5)  ;  
                    conv_segmen(angka3);
     break;
                  }
         case 3 :{  conv_segmen(10);
              PORTD |= _BV(PD4);
                 PORTD &= ~_BV(PD1) & ~_BV(PD0) & ~_BV(PD5)  ;  
                    conv_segmen(angka2);
     break;
                  }
         case 4 :{  conv_segmen(10);
              PORTD |= _BV(PD5);
                 PORTD &= ~_BV(PD1) & ~_BV(PD4) & ~_BV(PD0)  ;  
                    conv_segmen(angka1);
     segstep=0;
     break; 
         }

                 }


}


>>>COUNTER INTERRUPT dari BUSI<<

SIGNAL (SIG_INT0) //INTERRUPT 0 menghitung pulsa dari radiasi CDI vs BUSI
{
number++;

}



>>>TOMBOL<<

void tombol(void)
{


if(bit_is_clear(PIND, PIND3)) //pembacaan pada pin D3

{ valid++;  //validasi penekanan
_delay_ms(10);
}

if( valid >= 50) //jika melebihi noise motor/getaran, ubah suai nilai ini
{ 

valid=0;
kalibrasi++; //ubah kalibrasi



if (kalibrasi >= 8) kalibrasi=1;

conv_segmen(10);


//Menulis nilai kalibrasi ke EEPROM 
eeprom_write_byte((uint8_t*)20, kalibrasi); 
_delay_ms(500);


  }
}


>>>MEMBACA EEPROM  nilai KALIBRASI<<

void baca_eeprom(void)
{

kalibrasi = eeprom_read_byte((uint8_t*)20);

if(kalibrasi == 0xFF) kalibrasi=3;


}



>>>MAIN PROGRAM<<

int main(void)
{

//Inisialisasi Interrupt
        GIMSK |= (1<<INT0) ; // inetrupt untuk hitung pulsa busi
   MCUCR |= (1<<ISC01)| (1<<ISC11); //fall edge 
//Inisialisasi PIN ATTINY2313 
 DDRD |= _BV(PD0) | _BV(PD1) | _BV(PD4) | _BV(PD5)  ; // segmen select / common scans
 DDRB |= _BV(PB0) | _BV(PB1) | _BV(PB2) | _BV(PB3) | _BV(PB4) | _BV(PB5) | _BV(PB6) ; // seg a,b,c,d,e,f,g
    
 DDRD &= ~_BV(PD3) ; // Input kalibrasi

init_ctr(); //hidupkan COUNTER0
sei();

_delay_ms(1000);


//tampilan kata ke 2, sesuaikan dengan kebutuhan atau hapus jika tidak mau

angka1=16 ;
angka2=1 ;
angka3=19 ;
angka4=18 ;


_delay_ms(1000);

init_ctr1(); //hidupkan COUNTER 1

baca_eeprom(); // baca nilai kalibrasi 



//muter terussssss
while(1)

{
tombol();

}


}




videonya....seperti dibawah ini





tips: Tegangan pada lampu depan/ langsung dari coil bisa berlebih jika akimu rusak/habis. Jadi usahakan mencari sumber tegangan yg tidak merusak regulator 7805


 Selamat Mencoba
Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (11) arduino (27) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (26) euro2020 (13) gcc (1) gsm (1) iklan (1) infrared (2) Input Output (3) iot (73) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (11) lorawan (2) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (8) radio (28) raspberry pi (9) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) telkomiot (4) transistor (2) troubleshoot (3) tulisan (93) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3) yolo (7)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika