Semua Akan Digital Pada Akhirnya... Dari Audio, Video, TV, Kontrol, Keuangan, Kesehatan dan Sebagainya. Blog Ini Ditujukan Buat Kamu Yang Ingin Belajar Dasar Digital Dan Yang selalu Bertanya, Kenapa Bisa Begini Dan Harus Begitu ?

  • 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

  • Kontrol Perangkat Rumah Dari Internet

    Internet Of Things sudah menjadi istilah yang semakin dikenal orang. Mau tahu bagaimana konsep, cara pembuatan dan pemanfaatannya ?

  • 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

Tampilkan postingan dengan label dasar. Tampilkan semua postingan
Tampilkan postingan dengan label dasar. Tampilkan semua postingan

Senin, 20 September 2021

Praktek Input/Output Led Matrix - Nostalgia Berbagi Ilmu 10 Tahun Yang Lalu

 


Sebelum negara api menyerang dan menjadi pusat produksi segala macam benda elektronika, Led Matrix yang disusun-susun dengan microcontroller sebagai otaknya, menjadi handalan banyak penggiat bisnis elektronika digital. Keleluasaan untuk mengkreasikan banyak karakter dan animasi menarik diatasnya membuat menjadi sasaran akhir mereka yang belajar microcontroler di era sebelum 2010. Namun ketika modul display led matrix siap pakai seperti : P10, P8 dan sebagainya, didukung dengan harga yang dibilang tak masuk akal murahnya, membuat para seniman teks digital menjadi dimanjakan. Cukup gunakan jari untuk mengimpor via smartphone, lalu plug and play saja.

Namun blog ini tetap bertujuan utama berbagi ilmu bagaimana cara kerja Led Matrix dan bagaimana menyusunnya menjadi display yang menarik. beberapa tulisan mengenai Led Matrix ada pada link berikut : 





Mengingat itu semua terutama video yg saya buat pada 2009 diatas membuat sedikit sentimentil dan emosional, karena banyaknya rekan mahasiswa bertanya ilmu Led Matrix yg saya bagi di forum kaskus (sebelum saya pindah ke blog ini). Ada yang dari jogja, semarang, bali, sampai aceh hingga gorontalo memesan komponennya ke saya dan berdiskusi mengenai cara membuat teks berjalan pada Led Matrix. Ini menjadi kebanggaan sendiri karena beberapa yg sukses belajar led matrix menjadikan tolak ukur keberhasilan telah dipahaminya  konsep dasar mikrokontroller dan siap untuk mendesain apapun setelahnya.

Kali ini saya akan menjelaskan kembali praktek lovehurt 2011 dengan sedikit penjelasan agar lebih mudah dimengerti, diawali dengan melihat bagaimana flowchart untuk menuliskan karakter pada sebuah Led Matrix.



Penjelasan :

Pada dasarnya Led Matrix adalah Led yang disusun berdasarkan konsep Row dan Column, dimana untuk menyalakan satu buah led diberikan tegangan 2.4 Volt pada R dan 0 Volt pada C. Jadi untuk menyalakan R5C3 harus terjadi forward voltage dari R5 ke C3 sehingga Led menyala.

Untuk membuat sebuah karakter misal huruf A, dapat menggunakan tools bantuan excel seperti dibawah ini :



File excel dapat diunduh disini.

Selanjutnya akan dilakukan proses scanning dari kolom C1 menuju C5 secara cepat, bergantian memberikan logic LOW pada 1 kolom dan Logic HIGH untuk kolom lainya, bersamaan juga merubah nilai PORT yang mewakilinya, seperti pada skematik praktek kita kali ini menggunakan PORT D sebagai Row dan PORT B sebagai Column nya.




Rangkaian diatas sudah disesuaikan dengan penomeran kaki Led Matrix  7x5 (warna merah)  ukuran 2 inch yang umum dipasaran. Bagaimana script untuk menampilkan huruf A seperti contoh excel diatas ?


#define F_CPU 1000000UL      // frekuensi clock internal 1Mhz
#include <avr/io.h> // definisi library standar IO port
#include <util/delay.h> // definisi include untuk delay

char huruf[]=
{ 0b1111110,
0b0001001,
0b0001001,
0b0001001,
0b1111110 };


int main(void)
{
 DDRD = 0b1111111; // untuk baris
 DDRB = 0b11111;  // untuk kolom

 PORTD =0; // Set all pins low
 PORTB =0b11111; //matikan semua led
    
    
 uint8_t a;
 
 while(1)
 { 


  //proses Scan dan tampilkan huruf
   for(a=0 ; a<5 ; a++)    
     
  {

   PORTB = ~(1<<a) ; //scan kolom active LOW
   PORTD = huruf[a]; //Tampilkan baris sesuai nilai array[kolom]
   _delay_ms(2);
   
  }     
 }	
}		

Permaianan kombinasi loop FOR akan sangat berguna dalam membuat animasi geser kanan atau kiri, seperti yang sudah saya jelaskan pada tulisan sebelumnya disini : https://www.aisi555.com/2012/12/script-break-down-episode-love-hurt.html. Atau jika kamu menggunakan arduino uno atau micro, dapat mempelajari pembahasan saya menyeluruh di tulisan saya disini : https://www.aisi555.com/2020/05/praktek-love-hurt-2020-remake-pake.html.


Yah jadi nostalgia deh sedikit mengenang masa lalu...yang penting saya bangga dapat berbagi ilmu bersama kalian pembaca setia blog ini.
Share:

Jumat, 17 September 2021

Lanjutan Praktek Dasar Input / Output - 7 Segmen Serta Penjelasan Blocking Delay

 



7-segmen Display , atau indikator tujuh-segmen, adalah suatu bentuk perangkat tampilan elektronik untuk menampilkan angka desimal. 7-segmen display yang banyak digunakan dalam jam digital, meter elektronik, dan perangkat elektronik lainnya untuk menampilkan informasi numerik. Pada umumnya 7 segmen merupakan kumpulan Led yang disusun sehingga terbentuk rangkaian yg dapat dipilih secara elektronik untuk menampilkan suatu digit desimal.



Dalam penjelasan praktek kali ini kita akan menggunakan 7 segmen komon anoda / positif dengan susunan rangkaian yang saya pakai masih menyambung dari praktek sebelumnya.




Untuk menampilkan angka digit 0 - 9 saat terjadi penekanan tombol, pola pikir yang digunakan sesuai dengan flowchart berikut ini :





Penjelasan:

  • Input tetap berupa tombol, posisi di PIN B#1.
  • 7 segmen dihubungkan pada output PORT D#0 sampai D#6.
  • Tiap segmen dihubungkan dengan kondisi nyala mati sedemikian rupa sehingga menampilkan digit angka 0,1,2,3,4,5,6,7,8,9 .
  • Tiap digit desimal segmen di masukkan kedalam Array Segmen[10] yang isinya susunan segmen penyusun digit dan kemudian ditampilkan sesuai variabel angka.
  • Ketika ada penekanan tombol maka variabel angka akan increment / nambah sampai kondisi angka >9 di reset kembali menjadi 0.


Scriptnya seperti berikut ini :

#define F_CPU 1000000UL      // frekuensi clock internal 1Mhz
#include <avr/io.h> // definisi library standar IO port
#include <util/delay.h> // definisi include untuk delay



//susunan segmen dari portD = GFEDCBA
//7 segmen common ANODA


uint8_t segmen[10]= {0b1000000, // 0
		     0b1111001, // 1
		     0b0100100, // 2
		     0b0110000, // 3
		     0b0011001, // 4
		     0b0010010, // 5
		     0b0000010, // 6
		     0b1111000, // 7
		     0b0000000, // 8
		     0b0010000}; // 9
int main(void)
{
   
   DDRD |= (1<<PD6) |(1<<PD5) |(1<<PD4) |(1<<PD3) |(1<<PD2) |(1<<PD1) | (1<<PD0) ; // 7 seg
   DDRB &= ~(1<<PB1);  //tombol
   
   uint8_t a =0;
   
    while (1) 
    {
		
		
		if(bit_is_set(PINB,PINB1)) { 
		      a++;	
		      if(a==10) a=0;
		      _delay_ms(300);
		    }
		
       PORTD = segmen[a]; //Tampilkan segmen
    }      }

Penjelasan :

  • Hal yang mungkin cukup spesial adalah array segmen[10] dengan 10 buah anggota, yang merupakan susunan segmen yang jumlahnya 7, sehingga sedemikian rupa untuk menampilkan digit 6, maka PORT D#0, D#2, D#3, D#4, D#5, D#6 diberikan logika 0 (ingat komonnya anoda /positif) sehingga segmen ini menyala. Sedangkan PORT D#1 diberikan logika HIGH (5 volt ) alias sama dengan commonnya dan menyebabkan LED segmennya mati.




  • Saat ada penekanan tombol pada PIN B#1 maka variabel angka akan berubah dan PORTD nilainya diubah sesuai angka binary yang diwakilkan oleh array segmen[angka], yang artinya jika angka bernilai 6, maka PORTD bernilai 0b0000010.  


Bagaimana jika saya ingin membuat perubahan digit berjarak 1 detik ? Kita akan bandingkan 2 tipe, yaitu dengan Blocking Delay serta dengan Timer Register.


BLOCKING DELAY

#define F_CPU 1000000UL      // frekuensi clock internal 1Mhz
#include <avr/io.h> // definisi library standar IO port
#include <util/delay.h> // definisi include untuk delay



//susunan segmen dari portD = GFEDCBA
//7 segmen common ANODA


uint8_t segmen[10]= {0b1000000, // 0
		     0b1111001, // 1
		     0b0100100, // 2
		     0b0110000, // 3
		     0b0011001, // 4
		     0b0010010, // 5
		     0b0000010, // 6
		     0b1111000, // 7
		     0b0000000, // 8
		     0b0010000}; // 9

int main(void)
{
   
   DDRD |= (1<<PD6) |(1<<PD5) |(1<<PD4) |(1<<PD3) |(1<<PD2) |(1<<PD1) | (1<<PD0) ;
   DDRB |= (1<<PB0); //led
   DDRB &= ~(1<<PB1);  //tombol
   
   uint8_t angka;
   
    while (1) 
    {
		
		
		for(angka=0 ; angka<10 ; angka++){
			
	                 PORTD=segmen[angka];
			_delay_ms(1000);
		}
		
		if(bit_is_set(PINB,PINB1)) PORTB |=(1<<PB0);
		else PORTB &= ~(1<<PB0);
		
		
    }
}

Penjelasan :

  • Loop for(angka=0 ; angka<10 ; angka++)  merupakan cara untuk melakukan pengulangan dan penambahan variabel angka secara satu persatu dari 0 sampai nilai maksimum 9. 
  • Delay 1000 mili second diberikan setiap loop for dan ini merupakan blocking delay atau menghentikan semua jalannya program mikrokontroller selama 1 detik.
  • Perintah dibawah loop For merupakan proses menunggu penekanan tombol dan perubahan LED pada Port B#0, dan karena terjadi blocking delay, maka penekanan tombol kadang tidak terbaca seperti animasi berikut.


 

  • Untuk mengatasi blocking delay maka dapat memanfaatkan fasilitas timer pada microcontroller.


Non Blocking Delay Menggunakan Timer



#define F_CPU 1000000UL      // frekuensi clock internal 1Mhz
#include <avr/io.h> // definisi library standar IO port
#include <util/delay.h> // definisi include untuk delay
#include <avr/interrupt.h> // library interupt timer



//susunan segmen dari portD = GFEDCBA
//7 segmen common ANODA


uint8_t segmen[10]= {0b1000000, // 0
		     0b1111001, // 1
		     0b0100100, // 2
		     0b0110000, // 3
		     0b0011001, // 4
		     0b0010010, // 5
		     0b0000010, // 6
		     0b1111000, // 7
		     0b0000000, // 8
		     0b0010000}; // 9

uint8_t angka=0;


ISR(TIMER1_COMPA_vect) // interupt jalan independen tiap selang 1 detik

{
 PORTD = segmen[angka];
 angka++;
 if(angka==10) angka=0;

}


int main(void)
{
   
   DDRD |= (1<<PD6) |(1<<PD5) |(1<<PD4) |(1<<PD3) |(1<<PD2) |(1<<PD1) | (1<<PD0) ;
   DDRB |= (1<<PB0);
   DDRB &= ~(1<<PB1);  
   
      TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
      TIMSK |= (1 << OCIE1A); // Enable CTC interrupt
      OCR1A  = 15625; //compare the CTC A for 1 second
      TCCR1B |= (1 << CS11)|(1 << CS10); // Start timer at Fcpu/64
   
    sei();  //mulai membaca interupt
    while (1) 
    {
		//penekanan tombol
		
		if(bit_is_set(PINB,PINB1)) PORTB |=(1<<PB0);
		else PORTB &= ~(1<<PB0);
	
		
    }
}


   

Penjelasan :

  • Mikrokontroler memiliki fasilitas counter & timer internal, dan akan berjalan secara independen.
  • Tiap tick/clock akan diatur sedemikian rupa sehingga counter didalamnya dapat melakukan delay sesuai nilai yang ditentukan, semisal contoh diatas tiap 1 detik atau clock counter 15625 maka akan men-trigger fungsi interupt  ISR(TIMER1_COMPA_vect).
  • Hasilnya pada loop utama saat penekanan tombol tidak akan terpengaruh seperti pada animasi berikut ini.




Selamat Mencoba ...
Share:

Penjelasan Proses Input Output Dan Register I/O Pada Microcontroller AVR

 



Proses Input dan Output pada sebuah microcontroller dapat dipastikan melibatkan perubahan dan akses pembacaan dari REGISTER I/O . Ini tentu saja bertujuan untuk memudahkan pengaksesan dari semua Port atau Pin I/O pada microcontroller,  dengan cara menautkannya secara hardware pada sebuah alamat memory tertentu. Inilah memory khusus yang dinamakan Register I/O. Perhatikan datasheet dari IC kesayangan saya dibawah ini ATTiny 2313 dimana saya mencuplik Register I/O untuk Port B.




  • PORTB (0x18) : Merupakan Register untuk merubah nilai dari port B ketika berfungsi sebagai output
  • DDRB (0x17) : Merupakan Register untuk merubah arah data tiap Pin pada Port B apakah akan menjadi input atau output
  • PINB (0x19) : Merupakan Register untuk membaca (walau menulis bisa namun jarang) data yg didapatkan pada tiap tiap Pin B apakah bernilai 1 (5Volt) atau 0


Jadi ke 8 buah kaki yang diberi nama PORTB pada microcontroller ATTiny 2313 secara hardware terkoneksi pada 3 buah Register input output seperti gambar diatas. Perhatikan gambar rangkaian berikut ini dimana saya akan menempatkan sebuah LED pada Port B#0 dan sebuah Switch / Tombol (kalau beli di online namanya Tactile Switch)  pada  Port B#1







Penjelasan Rangkaian : 

  1. Vcc terhubung ke tegangan catuan 5 Volt, untuk ATTiny 2313 bisa menggunakan catuan baterai 3 volt atau menggunakan tegangan 5volt yg didapatkan dari downloader USB ASP.
  2. R1 mutlak diperlukan sebagai pengaman LED, nilai berkisar 100 s/d 470 ohm.
  3. Switch diberikan Resistor Pull Down 10Kohm agar mendapatkan default tegangan 0 volt atau Logic LOW saat tidak ada penekanan tombol, dan ketika terjadi penekanan tombol maka PIN microcontroller yg terhubung akan tersambung dengan VCC (5 volt) dan berarti mendapatkan logic HIGH.
  4. AVRISP merupakan header standar menuju programmer ISP seperti yg saya jelaskan sebelumnya disini : https://www.aisi555.com/2021/08/usb-asp-isp-programmer-untuk-avr.html


Bagaimana Flow Chart untuk menghidupkan dan mematikan ( Led Kedip)  LED di PortB#0 ?


Catatan :

Delay merupakan fungsi / routine khusus yg pada compiler atau IDE programming microcontroller yg sudah tersedia dan siap pakai. Pada intinya delay merupakan timer yg BLOCKING yang artinya menghentikan semua proses dan menunggu sampai counternya selesai sesuai nilai waktu yg diberikan. Jadi ingat delay ini sangat tidak disarankan untuk proses yang kompleks karena akan mengehentikan semua proses pada microcontroller.


Scriptnya seperti ini : 


#define F_CPU 1000000UL // frekuensi clock internal 1Mhz
#include <avr/io.h> // definisi library standar IO port
#include <util/delay.h> // definisi include untuk delay


int main(void)

{



	DDRB=0b00000001 ; // Inisialisasi bahwa port B#0 Output
    


	while(1)

	{

		PORTB=0b1; //port B#0 = 1 atau nyala

		_delay_ms(1000); //delay 1 detik
			

		PORTB=0b0; //port B#0 = 0 atau mati

		_delay_ms(1000); //delay 1 detik


	}
	
}

Penjelasan :

  • Langkah pertama adalah menentukan arah data dari PORT B#0 menjadi output dengan perintah DDRB=0b00000001. Ini oleh compiler GCC akan diterjemahkan menjadi menuliskan ke alamat memory Register 0x17 dengan nilai berupa 0b00000001
  • Untuk menyalakan LED di PORT B#0 maka dilakukan penulisan di alamat register PORTB (0x16)  dengan nilai 0b00000001. Agar lebih menyingkat dan lebih bergaya bahasa C yg benar dapat ditulis sebagai :  PORTB = 0x1.
  • Untuk mematikan LED cukup memberikan nilai 0 pada PORTB .


Lalu bagaimana jika Output LED saya tempatkan pada port 5 dan 6 ? Sebaiknya harus membaca penjelasan operasi geser byte disini : https://www.aisi555.com/2012/06/operasi-geser-byte-pada-win-avr-gcc.html. Jadi untuk melakukan blink atau kedip bergantian pada 2 buah LED secara simplenya scriptnya seperti berikut:



#define F_CPU 1000000UL // frekuensi clock internal 1Mhz
#include <avr/io.h> // definisi library standar IO port
#include <util/delay.h> // definisi include untuk delay


int main(void)

{

        // Inisialisasi bahwa port B#5, B#6 Output
DDRB |= (1<<PB5) | (1<<PB6) ; while(1) { PORTB |=(1 << PB5) ; //port B#5 nyala                 PORTB &=~(1 << PB6); //Port B#6 Mati         _delay_ms(1000); //delay 1 detik
		PORTB |=(1 << PB6) ; //port B#6 nyala
                PORTB &=~(1 << PB5); //Port B#5 Mati
        	_delay_ms(1000); //delay 1 detik
} }


Penjelasan :

  • Untuk melakukan SET BIT pada bit tertentu pada sebuat BYTE, maka bisa melakukan operasi geser Byte seperti contoh diatas   DDRB |= (1<<PB5) | (1<<PB6) dimana nilai yg dirubah pada bit ke 5 dan ke 6 saja dengan nilai bit = 1.
  • Jika susah untuk memahami, cukup dengan mengikuti polanya saja, dimana ketika ingin meng "CLEAR" ataui memberikan nilai 0 pada bit tertentu bisa menggunakan pola penulisan        PORTB &= ~(1<<PB5) & ~(1<<PB6) , dimana artinya Port B#5 dan Port B#6 diberikan nilai 0 pada masing-masing bit, tanpa merubah nilai bit disebelahnya yang tidak ikut dalam proses.


 
Bagaimana Flow Chart untuk menerima input pada PIN B#1 dan berinteraksi dengan LED di PORT B#0 ?




Scriptnya sederhana saja seperti berikut :


#define F_CPU 1000000UL // frekuensi clock internal 1Mhz
#include <avr/io.h> // definisi library standar IO port
#include <util/delay.h> // definisi include untuk delay


int main(void)

{
        DDRB |= (1<<PB0) ;   //Port B#0 Output
        DDRB &= ~(1<<PB1) ;  //Pin B#1 Input
while(1)      { if (PINB & (1 << PINB1)) PORTB |=(1 << PB0); // PB#0 Nyala else PORTB &= ~(1 << PB0); //Port B#0 Mati     }  
             }


Penjelasan :

  • if (PINB & (1 << PINB1))  , script ini berarti melihat apakah PIN pada microcontroller diberikan nilai 1 atau SETBIT. Ini merupakan macro standar pada basa GCC - Winavr, yang kemudian disempurnakan lagi menjadi  :  bit_is_set(PINB, PINB1) untuk nilai logic 1 dan bit_is_clear(PINB, PINB1) untuk nilai logic 0. 
  • Kita tidak perlu dipusingkan dengan proses pembacaan pada Register dengan alamat 0x16, ini sudah dipermudah dengan bahasa GCC-Winavr yg sudah menterjemahkan semua nama Mnemonic menjadi alamat registernya.
  • Ingat pada bahasa GCC WINAVR , istilah PORT untuk output, sedangkan PIN untuk input 


Untuk berikutnya silahkan dicoba menjalankan script berikut dan perhatikan apa yg terjadi :



#define F_CPU 1000000UL // frekuensi clock internal
#include <avr/io.h> // definisi standar io port
#include <util/delay.h> // definisi include untuk delay


int main(void)

{


	DDRB |= (1<<PB0) ;   //Port B#0 Output
	DDRB &= ~(1<<PB1) ;  //Pin B#1 Input
	
 bool pencet =false;

	while(1)

	{


		if (bit_is_set(PINB,PINB1) ) {
			
			 if(pencet == false) pencet = true;
			 else pencet = false;
	   		 
			_delay_ms(200);
		}

       if(pencet == true) PORTB |= (1<<PB0);
	   else  PORTB &= ~(1<<PB0);
	


	}
	
}


Script diatas menggunakan variabel boolean   bool pencet =false;  merupakan jenis variabel yg bernilai 1 atau TRUE dan 0 atau FALSE.  Silahkan cari di google atau di blog ini pun sudah dibahas bagaimana cara men - "toogle" atau merubah kondisi dari state BIT sebelumnya dengan teknik yg lebih cepat.  


Selamat Mencoba !
Share:

Kamis, 22 Juli 2021

Kenapa Komunikasi Infra Merah Untuk Remote Menggunakan Modulasi 38Khz ?

Radiasi Infra Red atau disingkat  IR merupakan cahaya yang tidak dapat kita lihat, yang membuatnya bagus untuk media komunikasi. Sumber IR ada di sekitar kita contohnya : Matahari, bola lampu, atau apa pun yg mengeluarkan panas atau berpendar sangat terang dalam spektrum IR. 



Saat Anda menggunakan remote TV, LED IR digunakan untuk mengirimkan informasi ke TV Anda. 


Jadi, bagaimana penerima IR di TV Anda mengambil sinyal dari remote Anda di antara semua IR sekitar? Jawabannya adalah bahwa sinyal IR dimodulasi. Memodulasi sinyal seperti menetapkan pola ke data Anda, sehingga penerima menjadi tahu apa yg disampaikan..


Skema modulasi umum untuk komunikasi IR adalah sesuatu yang disebut modulasi 38kHz. Ada sangat sedikit sumber alami yang memiliki keteraturan sinyal 38kHz, sehingga pemancar IR yang mengirimkan data pada frekuensi tersebut akan menonjol di antara IR sekitar. Data IR termodulasi 38kHz adalah yang paling umum, tetapi frekuensi lain dapat digunakan.


Saat Anda menekan tombol pada remote, transmisi LED IR akan berkedip sangat cepat selama sepersekian detik, mentransmisikan data yang disandikan ke peralatan Anda.


Setiap pulsa dihidupkan dan dimatikan pada frekuensi 38kHz


Jika Anda menghubungkan osiloskop ke LED IR remote TV Anda, Anda akan melihat sinyal yang mirip dengan sinyal di atas. Sinyal termodulasi ini persis seperti yang dilihat oleh sistem penerima. Namun, tujuan dari perangkat penerima adalah untuk mendemodulasi sinyal dan mengeluarkan bentuk gelombang biner yang dapat dibaca oleh mikrokontroler. Ketika Anda membaca pin OUT dari TSOP382 dengan gelombang dari atas, Anda akan melihat sesuatu seperti ini:




Dengan mengontrol jarak antara sinyal termodulasi yang ditransmisikan, bentuk gelombang dapat dibaca oleh pin input pada mikrokontroler dan diterjemahkan sebagai aliran bit serial.


Di bawah ini adalah pandangan konseptual tentang cara kerja pasangan penerima pemancar IR.



Terima kasih kepada SBProjects.com untuk gif dan sumber daya IR yang luar biasa!



Arduino atau mikrokontroler lainnya dapat dihubungkan ke salah satu ujung sistem untuk mengirimkan data (sisi kiri) atau menerima data (sisi kanan).


Sumber: sparkfun

Share:

Selasa, 08 Juni 2021

[ Komponen ] LED - Dasar dan Cara Penggunaan Yang Benar

Pada akhir tahun 1800an, Thomas Edison menemukan bola lampu pertama yang layak dan kemudian dapat dikomersilkan. Bola lampu seperti ini bekerja dengan mengalirkan arus dengan jumlah besar melalui sebuah filamen tipis yang pada dasarnya adalah hanya sebuah kabel. Filamen menjadi begitu panas sehingga mulai berpijar dan memancarkan cahaya. Proses ini sangat tidak efisien - kurang dari 5% energi yang dihasilkan bola lampu berubah  menjadi cahaya - sisanya berubah menjadi panas.




Sumber cahaya yang jauh lebih efisien dari bohlam adalah dioda pemancar cahaya (Light Emiting Diode) atau LED.  LED pada dasarnya mengandung dua semikonduktor khusus yang ditempel bersama, dan ketika Anda mengalirkan  tegangan yang cukup besar, cahaya akan terpancar dalam proses yang disebut elektroluminesensi.



Memang ada sedikit panas yang dihasilkan, tapi keseluruhannya proses ini jauh lebih efisien dan Anda dapat  mendapatkan banyak sekali cahaya dari alat yang kecil sekali. Rata-rata, ini bertahan selama lebih dari 10 tahun digunakan terus-menerus, sehingga Anda dapat melihat  mengapa mereka begitu populer. Kini kita punya senter LED, lampu jalan LED, papan iklan LED bahkan bola lampu LED.  Tapi Anda tidak perlu menjadi sebesar Sony untuk membuat sirkuit LED.

Tulisan saya akan menunjukkan Anda dasar bagaimana menggunakan LED dalam praktek keseharian  Pertama, dapatkan sejumlah LED yang Anda dapat membelinya di penjual elektronik mana saja, tapi kini online shop menjual dengan amat murah dan Anda  dapat mendapat beragam jenis hanya dengan beberapa rupiah, paling sebiji cuman 150 rupiah untuk ukuran 1.5 mm.




Saya sarankan untuk membeli resistor 330 ohm sejumlah yg sama  LED sebagai pengaman arus berlebih. Jadi setiap LED mempunyai 3 hal penting yang perlu Anda ketahui :  Polaritas, tegangan maju dan tingkat arus maksimal.  

Mari mulai dengan polaritas, pada dasarnya ini berarti bagaimana cara Anda memasang LED di  sirkuit. Semua LED mempunyai dua kaki, sebuah "anoda" dan sebuah "katoda", Anoda dan katoda kadang-kadang disingkat A dan K. Anoda adalah sisi arus konvensional  akan mengalir ke dalam LED. Dengan kata lain, Anda menyambung sisi positif sumber tenaga / baterai  ke anoda.  Katoda adalah di mana arus konvensional keluar dari dalam LED. Jadi Anda akan menyambung sisi negatif sumber tegangan dengan katoda.


Untuk LED 5mm standar seperti ini, ada dua cara mudah untuk mengetahui polaritas  Anoda memiliki kaki yang lebih panjang dan katoda memiliki kaki yang lebih pendek. Kalau Anda juga perhatikan dengan hati-hati, Anda akan melihat satu sisi plastik diasah rata / mendatar.  Sisi yang rata adalah katoda dan sisi yang bundar adalah anoda.  Jadi pada contoh ini saya sambung sisi positif catu daya ke anoda dan  sisi negatif catu daya ke katoda dan LED menyala sesuai harapan.



Jika Anda mendapati polaritas LED di sirkuit keliru, jangan khawatir, untuk proyek tegangan rendah  LED yang terbalik menghalangi aliran arus dan tidak menyala. 

Mari lanjut kita bahas tentang tegangan maju / forward sebuah LED. Semua LED perlu tegangan tertentu untuk dapat melewatinya, dengan arah yang benar. Sebelum setiap arus listrik dapat mengalir dan mulai memancarkan cahaya,  LED putih superbright yang saya gunakan di gambar diatas mempunyai tegangan maju 3 volt, jadi kita perlu sekitar  3 volt sebelum LED dapat melakukan hal yang menarik yaitu menyala. 

Dengan suplai diatur ke 0 volt, LED tetap padam  Dengan suplai diatur ke 1,5 volt, masih tidak cukup untuk menyalakan LED  Tapi seiring kita mendekati 3 volt, LED mencapai kecerahan penuh.


Setiap LED punya tegangan maju yang sedikit berbeda dan di sini ada beberapa  panduan kasar besar tegangan yang dapat digunakan dari LED yang berbeda. Ketika LED menyala, akan ada penurunan tegangan konstan relatif di dalamnya.

Berikutnya, mari bicara soal batas arus maksimal LED. Misalnya percobaan saya diatas, saya menggunakan fitur spesial catu daya saya untuk membatasi arus yang mengalir  melalui LED hingga maksimal 30mA, yang kira-kira sebesar arus yang dapat ditanggung LED ini. Tapi apa yang terjadi jika saya melewati batas?  




Saya akan mengatur catu daya hingga 7,5 volt dan saya akan hilangkan semua batas arus. Mari kita lihat apa yang terjadi!  Jadi jika Anda melewati angka tengangan maju secara signifikan, arus dalam jumlah sangat besar  akan mengaliri LED dan tidak ada yang dapat menghentikannya dari meledakkan dirinya sendiri.  

Jelas jangan lakukan ini di rumah, sebenarnya mungkin bagi LED untuk meledak, melontarkan serpihan  plastik dan logam kecil ke wajah Anda. Anda tidak ingin berakhir tampak seperti ini! Jadi sebuah baterai kotak 9 volt cukup untuk  membunuh LED secara instan - ada sesuatu yang diperlukan untuk membatasi arus hingga batas aman. 




Angka arus setiap LED dapat berbeda-beda  Misalnya, modul LED berdaya tinggi ini dapat menanggung 100 miliampere, tapi umumnya  LED 5mm standar yang biasanya anda gunakan di rumah memiliki nilai 20 miliampere.  Jadi apa yang Anda lakukan jika Anda ingin membatasi arus dan tak punya catu daya bagus yang dapat diatur? Anda dapat gunakan benda yang disebut resistor! Untuk LED sebagai lampu indikator perangkat tegangan digital TTL, yang biasanya ada pada level 5 volt maka resistro 330 ohm lazim digunakan. Untuk baterai 9V dan catuan aki motor anda 12 volt maka resistor yg dipilih adalah 1 Kilo Ohm. Jangan salah pilih ya, karena sangat berpengaruh pada tingkat kecerahan dan keawetan LED. 

Share:

Senin, 11 Januari 2021

Mana Yang Lebih Membunuh - Arus Apa Tegangan Listrik ?

 


BERBAHAYA !!

JANGAN DITIRU SEMUA YANG ADA DITULISAN BERIKUT INI 


Memang pertentangan mengenai mana yang membunuh anda saat kesetrum, apakah arus atau tegangan nya, menjadi abadi seperti halnya kisah mana duluan ayam sama telur .... Kalau dipikir - pikir , dibayangkan, saat apes dan listrik  harus membunuhmu,  ya gak menjadi soal bagian mana yang mengantarmu ke pangkuan ilahi, tapi yg lebih penting , kenapa sampe bisa kesetrum ? Bagi seorang ilmuwan youtuber macam mehdi, ini harus dibuktikan secara teori dan praktek. Yaaa tersengat lalu terbakar sedikit itu kulit demi keilmuan tetap saja harus dibuktikan.



Ketika suatui power suply kemudian elektrodanya di konsletkan, maka arus yang mengalir akan maksimum dengan tegangan mendekati nol. Ini sesuai dengan hukum listrik OHM dimana arus berbanding terbalik dengan tegangan (  V = I x R ) . Dan jangan terkejut kalau hasilnya konektor akan menimbulkan panas saat di konsletkan seperti gambar diatas.  



Bahkan ini juga yang menjadi prinsip pengelasan listrik dan secara ajaib walau konektor dipegang tangan,  kita terhindar dari kesetrum akibat proses konsleting tegangan yang menghasilkan percikan api tadi. Ini dikarenakan arus sepenuhnya mengalir pada konektor sedangkan tubuh bita memiliki resistansi lebih besar sehingga tidak merasakan nya (walau ada juga mengalir dikit). 



Karena tidak berasa apapun saat dipegang tangan, mari kita coba menggunakan lidah yg resistansinya lebih rendah....dan jangan percaya 100% kepada layar 7 segmen pada power suply, nanti kayak mehdi yang seharusnya dia mencari 1 volt...ehhh nyatanya masih ada di 11 volt...terjungkallah dia akhirnya ! Tapi kalau memang benar 1 volt yang dibuktikan dengan voltmeter sehingga lebih valid..ya aman aja kok ...(itu buat mahdi yang memang kuat kesetrum, bukan penulis yg takut kesetrum!)



Jadi berdasarkan hukum ohm, dengan sumber tegangan 1 volt dan resistansi tubuh sebesar 10.000 ohm maka arus yang mengalir pada tubuh sebesar 0.1 mili amper.  Sehingga jika ingin mengalirkan arus 1 Ampere menuju tubuh maka dibutuhkan tegangan 10.000 volt. Inilah hubungan timbal balik antara arus dan tegangan yaitu arus tak akan mengalir tanpa adanya perbedaan tegangan antara kedua titik. Begitu juga kalau tak ada arus yang mengalir pada suatu konduktor, maka tegangan tidak akan hadir pula.

Tegangan dan arus sama-sama dapat membunuh seperti Analogi kejadian Gempa yang terjadi jauh di laut samudra tidak akan kamu rasakan getarannya, tapi akibat setelahnya yaitu Tsunami yang bisa membunuhmu. 



Kerjasama yang berbahaya antara arus dan tegangan juga bisa membunuhmu seperti percobaan diatas, dimana tegangan suplay diatur pada 4 volt dan kemudian dialirkan pada seutas kabel tipis dan terjadilah PANAS beserta API. Kebakaran pun bisa mengakibatkan bencana yang tidak kalah menakutkan. 



Jadi kesimpulannya jangan lagi mengucapkan bahwa arus listrik lebih membunuh daripada tegangan listrik. Begitu juga sebaliknya, mereka BEKERJASAMA !


SEKALI LAGI JANGAN DICOBA APAPUN YANG SAYA TULIS DIATAS !

Share:

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:

Rabu, 30 Desember 2020

Dioda sebagai penyearah arus AC ke DC

 



Youtuber lainnya selain Electroboom yang merupakan favorit saya, adalah Great Scott yang khas dengan aksen nya seperti orang dari eropa timur. Sejak lama scott membedah segala hal berhubungan dengan rangkaian elektronika. Kali ini saya akan mengurai video dasar elektronikanya mengenai komponen semikonduktor DIODA.



Komponen dioda paling sering kita temui di rangkaian elektronika yang berhubungan dengan power supply, semisal di adaptor penurun tegangan PLN ke DC, anda akan menemukan 4 buah dioda yang dijejerkan mengubah input PLN yang berupa arus AC menjadi tegangan DC, yang akan dipergunakan berbagai keperluan pencatuan daya. Komponen ini juga ditemukan di berbagai circuit board, seperti pada gambar diatas dioda SMD dipasang sebagai pengaman tegangan terbalik. Kenapa bisa digunakan sebagai pengaman? karena sifat dioda yang mengalirkan arus pada satu arah saja dan menghambat arah arus sebailknya.


Bayangkan jika suatu rangkaian listrik DC dialiri tegangan yang terbalik...dijamin wuzzz..keluar jin nya.



Jadi apabila tegangan dan arus yang diberikan  tidak melebihi arus dan tegangan rating dari jenis dioda tersebut, maka akan mengamankan rangkaian setelahnya. Jika tidak maka arus reverse yang diberikan melewati batas rating akan menyebabkan dioda panas dan putus.



Yang perlu diperhatikan dalam mendesain rangkaian yang menggunakan dioda adalah adanya voltage drop yang umumnya 0.7 volt dan dengan disipasi daya sesuai rangkaian diatas sekitar 5 miliwatt. Jika arusnya semakin besar tentunya arus yang mengalir pada dioda akan menghasilkan panas sehingga diperlukan pemilihan dioda sesuai dengan arus maksimum yang mungkin dialirkan. Jika melebihi rating arus maka yang terjadi yaitu dioda kepanasan dan putus.



KIta lakukan percobaan menggunakan transformer penurun tegangan PLN 220V AC menjadi 15 volt AC, sehingga tegangan sinusnya dapat dibaca osciloscope. Ketika dioda dibias forward terhadap tegangan AC tadi maka osciloscope menunjukkan hasil pemotongan setengah dari sinus, sehingga hanya siklus saat tegangan positif yang dikeluarkan oleh dioda. Ini belum DC murni sehingga untuk meratakan arusnya menjadi positif diatas , kita perlukan komponen yg dapat menyimpan tegangan beberapa waktu yaitu kapasitor yang telah dibahas pada tulisan sebelumnya. 



Jadi sesuai gambar diatas, saat ditambahkan kapasitor maka akan muncul DC murni pada osciloscope. Sayangnya ketika ada beban diberikan terhadapnya, maka akan terjadi discharge sedikit pada kapasitor yang menyebabkan tegangan DC nya menjadi bergerigi. Lalu bagaimana mempercepat geriginya agar tidak terasa saat digunakan ? Kita guanakan FULL BRIDGE RECTIFIER !



Hasil dengan menggunakan 4 dioda dalam rangkaian FULL BRIDGE RECTIFIER menyebabkan gerigi dari output DC semakin berkurang (jangan lupa tambahkan kapasitor), sehingga layak digunakan sebagai catuan daya untuk rangkaian DC.


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 (15) android (12) antares (3) arduino (21) artikel (11) attiny (3) attiny2313 (19) blog (1) bluetooth (1) cmos (2) crypto (2) dasar (45) digital (1) display (3) esp8266 (25) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (44) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (16) komputer (3) komunikasi (1) kontrol (7) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroller (12) mikrotik (5) mqtt (1) ninmedia (3) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (78) pcb (2) power (1) praktek (2) project (33) proyek (1) python (3) radio (15) 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) telegram (2) telepon (9) televisi (145) television (28) transistor (2) troubleshoot (3) tulisan (83) tutorial (80) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika