"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 ...

Jumat, 25 September 2015

Penemuan Radio ... awal pertentangan antara kaum ilmuwan dan pebisnis




A short time before my lecture, a multi-millionaire proprietor of a very famous telegraph company telegraphed me with an urgent request to meet me. I replied that I had no time. In response he said that he is coming to meet me in person and within a short time he himself arrived with patent forms in hand. He made an earnest request to me not to divulge all valuable research results in today's lecture : "There is money in it -- let me take out patent for you. You do not know what money you are throwing away" etc. Of course, " I will only take half share in the profit -- I will finance it" etc. This multi-millionaire has come to me like a beggar for making some more profits. Friend, you would have seen the greed and hankering after money in this country, - money, money - what a terrible all pervasive greed ! If I once get sucked into this terrible trap, there wont' be any escape ! See, the research that I have been dedicated to doing, is above commercial profits. I am getting older - I am not getting enough time to do what I had set out to do -- I refused him.





Surat diatas dituliskan oleh Jagadish Chandra Bose, seorang ilmuwan penemu detektor radio "cohera", yang ditulisnya pada 1901 kepada rekannya penulis terkenal India Rabindranath Tagore. Bose risau akan terjepitnya posisinya sebagai ilmuwan didunia kapitalis yang hanya mementingkan uang...uang..uang. Tapi apakah sebenarnya yang ditemukan oleh bose ?

Cerita dimulai dari percobaan Michael Faraday mengenai "gaya" yang tak terlihat yang dihasilkan oleh aliran listrik. Faraday menemukannya tidak sengaja..ya dia hanya berhasil menemukannya tanpa mengetahui apa yang menyebabkan motor dinamonya dapat berputar. Penemuannya hanya digunakan pada pameran atau pada pesta-pesta orang kaya sebagai pertunjukan sulap.  Dan yang berhasil melakukan pemodelan matematikanya adalah ilmuwan jenius bernama James Clerk Maxwell. Rumus yang dimaksud mungkin sangat menakutkan bagi mahasiswa yg sedang mengambil mata kuliah elektromagnetik. Tapi banyak yang menyangsikan apakah teori dengan banyak Integral-Diferensial ini benar adanya ?




Gambar diatas merupakan ilustrasi percobaan Hertz yang membuktikan bahwa gelombang elektromagnetik itu ada dan memang dapat dikirimkan. Pemancar primitif ini bernama "spark gap" dengan prinsip bahwa aliran tegangan listrik tinggi  yang diloncatkan antara 2 buah  ujung akan menghasilkan gelombang elektromagnet yg selanjutnya dapat meradiasi sekitarnya. Dengan penerima berupa lingkaran tembaga, dapat diteksi adanya loncatan listrik diantara ujung lingkaran tembaga yang polanya persis dengan sumber. Diceritakan bahwa Hertz sampai harus membiasakan matanya di dalam gelap selama beberapa menit untuk dapat melihat loncatan listrik di penerima yang sangat kecil.


Sayang Hertz kemudian wafat tak lama kemudian pada usia yang masih sangat muda. Kesempatan penelitian selanjutnya diambil oleh Oliver Lodge dari Inggris. Begitupula di Amerika sang penemu motor induksi yaitu Nikola Tesla juga tidak kalah gencarnya melakukan penelitian tentang efek  elektromagnetik. Tesla memukau dunia dengan keberhasilannya mengendalikan mainan kapal laut dari jarak jauh menggunakan prinsip radiasi elektromagnetik. Disinilah Bose juga berperan dengan penemuannya detektor "cat wishker" atau kemudian dinamakan cohera yang dapat mendeteksi sinyal radio diudara. Tapi...yang menjadi pemenangnya adalah MARCONI ..kenapa ? 




Dari kesemua ilmuwan yang terlibat pada penelitian awal mengenai radio dan nirkabel ada seseorang yang namanya nantinya selalu tercantum sebagai penemu radio pada buku-buku pelajaran, dan dia bukanlah ilmuwan...ya dia hanya seorang yang cerdik saja dan mungkin mengakali para ilmuwan yang kurang pandai melihat segi bisnis. Kejadiannya bermula ketika marconi bekerja sama dengan kantor pos london untuk melakukan percobaan mengirim sinyal nirkabel diantara 2 gedung  kantor pos london dan berhasil (seperti gambar plakat diatas). Ujung-ujungnya marconi mematenkan semua penggabungan penemuan orang lain menjadi sebuah kotak kayu yang diberinama RADIO.


Gambar diatas mungkin ada di semua buku pelajaran sains anak SD dan dijelaskan bahwa penemu radio adalah marconi. Ya memang pemilik paten dan penerima hadiah nobel adalah dia (nobel 1909 bersama Karl Braun), akan tetapi jangan dilupakan jasa ilmuwan lainnya dong ? Kegemparan yang ditimbulkan marconi terjadi tidak hanya pada kantor pos london yang kebakaran jenggot karena marconi akhirnya membuat perusahaan sendiri (padahal sebelumnya ada perjanjian kerjasama), tapi terjadi juga pada kalangan ilmuwan. Para penemu mulai berlomba-lomba mematenkan bahkan pada titik koma di penemuan mereka. Kegilaan ini membuat beberapa ilmuwan mengalami kebingungan seperti halnya surat yg ditulis bose diatas. 

Kisah pertentangan antara ilmuwan dan pebisnis kapitalis lainnya dimulai dari kisah marconi ini. Tesla kemudian bertengkar dengan JP. Morgan tentang dimana harus ditempatkan "meteran" pada proyek listrik nirkabel  Wardenclyffe Tower , kemudian dilanjutkan frustasinya penemu radio "Superheterodyne" Edwin Armstrong dengan pemilik RCA David Sarnoff yang berujung bunuh diri -melompat dari apartemennya setelah kalah dari pengadilan mengenai hakcipta radio FM. Tak kalah tragisnya adalah ketika Sarnoff kembali mencuri ide  Philo T. Farnsworth sang pionir Televisi setelah Farnsworth menolak kerjasama yg ditawarkan dan kemudian  sejarah lebih memilih menyebutkan nama orang lain sebagai penemu televisi. Begitulah kenyataannya ... 





Share:

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

HP: 081331339072
Mail : ahocool@gmail.com

Site View

Categories

555 (7) 7 segmen (3) adc (4) amplifier (2) analog (10) android (11) antares (3) arduino (14) artikel (1) attiny (1) attiny2313 (17) blog (1) bluetooth (1) cmos (2) crypto (2) dasar (40) display (3) esp8266 (3) gcc (1) iklan (1) infrared (2) Input Output (3) iot (16) jam (6) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (12) komputer (3) komunikasi (1) kontrol (4) lain-lain (8) lcd (2) led (13) led matrix (6) line tracer (1) lm35 (1) memory (1) metal detector (4) microcontroller (55) mikrokontroller (7) mikrotik (5) ninmedia (2) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (42) pcb (2) praktek (2) project (33) proyek (1) python (1) radio (3) 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) solusi (1) tachometer (2) telepon (7) televisi (87) television (15) transistor (1) troubleshoot (3) tulisan (71) tutorial (79) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika