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

Jumat, 05 Agustus 2011

Bermain Dengan Dot Matrix "LoveHurt"


=== REMAKE 2020 BISA DIBACA DISINI ====





  =======================================================




Siapkan bahan-bahan seperti berikut:





Attiny 2313
Led matrix 7x5
R 10K
Diode 4148
PCB lobang
Header 2x5 buat ISP programmer (optional - Bisa diprogram di Breadboard)
Socket 20 untuk ATtiny, dan soket 14 ( dibelah dua ) buat tempat Led matrix

rangkaiannya seperti ini :




Kemudian komponen dirangkai diatas PCB lobang, ato bisa juga memakai bahan lain( disesuaikan dengan tempat yg mau di pake, misale kotak hadiah , papan tripleks dan lain sebagainya)




letakkan LED MATRIX sesuai dengan SOCKET IC yg dibelah tadi



karena ga ada baterai ( punya tempatnya doang) jadi pake adaptor 3 Volt aja



Untuk kreasi text dalam Led Matrix 7 x 5 , bisa gunakan panduan excel di link ini








Script code dalam Bahasa C /WinAvr seperti berikut:


#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h> 
#include <string.h>
#include <avr/eeprom.h>

//Progmem simpannya di FLASH memory

const char love1[] PROGMEM =
{
0b0011110,
0b0100001,
0b1000010,
0b0100001,
0b0011110

};

const char love2[] PROGMEM =
{
0b0001100,
0b0010010,
0b0100100,
0b0010010,
0b0001100

};

const char L[] PROGMEM ={0x7f, 0x7f, 0x40, 0x40, 0x20}; 
const char O[] PROGMEM ={0x3e, 0x7f, 0x41, 0x41, 0x3e};
const char V[] PROGMEM ={0x3f, 0x7e, 0x40, 0x20, 0x1f};
const char E[] PROGMEM ={0x7f, 0x7f, 0x49, 0x49, 0x41};
const char H[] PROGMEM ={0x7f, 0x7f, 0x08, 0x08, 0x7f};
const char U[] PROGMEM ={0x3f, 0x7f, 0x40, 0x40, 0x3f};
const char R[] PROGMEM ={0x7f, 0x7f, 0x11, 0x29, 0x46};
const char T[] PROGMEM ={0x03, 0x03, 0x7f, 0x03, 0x02};

const char creature[]={0x4e, 0x31, 0x35, 0x31, 0x4e}; //simpan di memory/RAM aja

uint8_t EEMEM tengkorak[5]= {0x1e, 0x75, 0x61, 0x75, 0x1e}; //simpan di EEPROM

uint8_t EEMEM pacman[5]= {0x26, 0x67, 0x67, 0x7f, 0x3e}; //simpan di EEPROM


char dotnya[5],scrolnya[7];



void tulis(uint8_t lama)
{
  uint8_t a,b;

for(a=0 ; a<lama ; a++)
{
 for(b=0 ; b<5 ; b++)   
  
{

PORTB = ~(1<<b) ;
PORTD = dotnya[b];
            _delay_ms(2);

     
}

}



}


void geser(uint8_t lama)
{
  uint8_t a,b;

 for(a=0 ; a<11 ; a++)   
  
{

  if( a<6) 
   { 
 for(b=0 ; b<(5-a) ; b++)  dotnya[b]=0x80;
              for(b=(5-a); b<5 ;b++) dotnya[b]=scrolnya[b-5+a];
 
 tulis(10);
             
             }
  else if (a==6) tulis(lama);

  else 
             {  for(b=0 ; b<11-a ; b++) dotnya[b]=scrolnya[a-5+b];
   for(b=(11-a); b<11 ;b++) dotnya[b]=0x80;  
 
                tulis(10);
              }

          }
 
   
                
     

 
}

void naik (uint8_t lama)

{
{  uint8_t q,step=0;
  
  
  while(step!=16)
   {
if( step <8)
  {   
for(q=0 ; q < 5 ; q++) dotnya[q] = scrolnya[q] << (7 - step) ; 

           tulis(10);
        } 
   
    else if (step == 8)
  {    
        tulis(lama); 

       }      
else 
  {   
         for(q=0 ; q < 5 ; q++)  dotnya[q] = scrolnya[q] >> (step - 7) ;  
          
  tulis(10);

     step++; 

}    

}




}


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

PORTD =0; // Set all pins low
PORTB =0b11111; //matikan layar
    
    


while(1)
{
// yang ini nulis langsung 
  
     strncpy_P(dotnya,love2,5);
     tulis(20);
     strncpy_P(dotnya,love1,5);
     tulis(40);
strncpy_P(dotnya,love2,5);
     tulis(20);
     strncpy_P(dotnya,love1,5);
     tulis(40);
     strncpy_P(dotnya,love2,5);
     tulis(20);
     strncpy_P(dotnya,love1,5);
     tulis(40);     

//yang ini pake function geser 

strncpy_P(scrolnya,L,5);
     geser(50);
strncpy_P(scrolnya,O,5);
     geser(50);
strncpy_P(scrolnya,V,5);
     geser(50);
strncpy_P(scrolnya,E,5);
     geser(50);
strncpy_P(scrolnya,H,5);
     geser(50);
strncpy_P(scrolnya,U,5);
     geser(50);
strncpy_P(scrolnya,R,5);
     geser(50);
strncpy_P(scrolnya,T,5);
     geser(50);

//geser ambil dari RAM

strncpy(scrolnya,creature,5);  //tanpa _P karena ambil di RAM
     naik(50);

//ambil dari eeprom ..mengirit..

     eeprom_read_block((void*)&scrolnya,(const void*)&tengkorak, 5); 
naik(50);

     eeprom_read_block((void*)&scrolnya,(const void*)&pacman, 5); 
geser(50);

}

return 0;
}


Script code diatas dibuat dalam mode FLASH, RAM, dan EEPROM, jadi ketika download program ke IC harus memprogram FLASH dulu kemudian dilanjutkan dengan EEPROM.
FLASH extensinya .hex sedangkan isi EEPROM extensinya .eep




hasil akhirnya seperti di video berikut :





SELAMAT MENCOBA
Share:

Kamis, 04 Agustus 2011

Hardware Pemrograman AVR

Microcontroller AVR memiliki beberapa mode programming diantaranya parallel, serial dan JTAG. Mode programming paling umum adalah mode serial melalui port SPI (serial peripheral interface). Port SPI berupa MOSI, MISO dan SCK. Untuk programming AVR diperlukan juga control terhadap port Reset dari IC AVR.

STK200/300

STK 200/300 merupakan standar programming paling mudah dari seri AVR, dimana memanfaatkan port parallel/LPT atau serial dari komputer/PC . Biasanya kita akan kesulitan menemukan port ini di PC/Laptop generasi terbaru. Secara umum rangkaian yg digunakan menggunakan komponen sederhana seperti yg dirancang oleh ponyprog berikut :

http://www.lancos.com/e2p/avrisp-siprog.gif

untuk software programmer/downloader file hex menuju chip AVR, dapat menggunakan software umum seperti avrdude, ponyprog, avrisp dsb.

STK200/300 versi USB ASP

Beberapa developer AVR di dunia maya menggratiskan (open source) programmer berbasis usb. Hal hasil ada beberapa programmer yang bisa dibuat sendiri dengan memanfaatkan avr lain sebagai kontroller. Jangan kawatir, ada beberapa yang sudah dijual dan siap pake.

http://www.fischl.de/usbasp/bilder/usbasp_print.jpghttp://arduino-direct.com/sunshop/images/products/detail_114_TinyISP-1.jpg
UsbAsp & TinyAsp

Untuk lebih jelasnya penggunaan USB ASP dalam AVRSTUDIO / ATMEL STUDIO silahkan buka : https://www.aisi555.com/2021/08/usb-asp-isp-programmer-untuk-avr.html


STK500

Seri programmer yang satu ini umum digunakan pada PC yang menggunakan port USB. Keuntungan dari programmer jenis ini adalah kemudahan programming langsung dari AVR STUDIO. Jenis programmer yang paling umum dijual dipasaran seperti seri DT-HiQ buatan innovative.








Secara umum port output dari STK200/300/500 memiliki konfigurasi header ke port spi seperti berikut:

http://www.siphec.com/microcontroller/ISPheader.gif

Image Hosted by PicturePush - Photo Sharing


Jika menggunakan breadboard ada trick yg digunakan untuk menghubungkan header ISP, salah satunya dengan memasukkan kabel jumper ke header isp dan kemudian di isolasi.

Image Hosted by PicturePush - Photo Sharing

cara lain adalah dengan memakai "perantara" pin header 2x5 yg disusun di atas pcb lobang seperti gambar berikut:

Image Hosted by PicturePush - Photo Sharing
ingat : umumnya programmer mendapat suply tegangan dari luar/rangkaian yg mau diprogram
jadi jangan bingung kalo dicolokin tanpa rangkaian dan PC ga detect apa-apa


Dengan cara diatas maka menyusun port ISP ke breadboard bukan menjadi masalah lagi.

Share:

Rabu, 03 Agustus 2011

DOT MATRIX


Pada dasarnya DOT matrix adalah Display LED yg disusun sedemikian rupa sehingga untuk menghidupkan led ke (x,x) dibutuhkan kombinasi tegangan antara Pin baris & kolom








Penanda kaki nomer satu adalah tulisan marking, paling kiri no 1....paling kanan no 7
Menyebrang ke kanan atas no 8 sampai ke kiri atas itu nomer 14

Beberapa kaki memang tidak dipakai jadi dibarkan tidak terhubung



Kemudian untuk mempermudah kontrol dan menghemat pin maka diperlukan proses scanning ( biasanya kolom...) sedangkan pada baris diberikan bit sesuai huruf/karakter yang akan ditampilkan yang bersesuaian dengan posisi scanning.

Scanning untuk kolom dimaksud memberikan "1" high ( untuk common katoda) atau"0" untuk common anoda , untuk kolom lainnya diberi nilai negasi dari kolom yg diberi nilai 1 tadi .....begitu selanjutnya untuk kolom berikutnya sampai kolom terakhir dari rangkaian led matrix..dan berulang dari depan lagi. Proses ini dilakukan sangat cepat sehingga mata kita melihatnya tetap sebagai suatu karakter yg diam.

misalnya ingin menampilkan huruf A , secara umum digambarkan sebagai berikut:


0000000
0000000
0000000
0000000
0000000
0000000
0000000


dari gambar diatas logikanya seperti ini :

- saat kolom pertama ( scan kolom 1 = 1 / high/2.4 v) maka bit yg diberi pada baris berupa "1110000", sehingga jika ketemu 1 vs 1 ga ada arus mengalir, jadi LED mati, jika 1 ketemu 0 maka arus mengalir, led menyala

- begitu juga untuk kolom kedua, ketika kolom kedua diberi tegangan maka pada baris bit yg diberikan adalah "1101011"

- Dan seterusnya, ketika kolom nya mencapai ujung maka akan diulang ke kolom 1 lagi

- Untuk melakukan scanning biasanya dilakukan dengan memanfaatkan shift register, atau paling sederhana dengan menggunakan IC 4017 yang di cascade menjadi led berjalan yang panjang. (buka di sini )




Share:

Selasa, 02 Agustus 2011

Jam Sederhana Dengan Attiny 2313

Kali ini kita akan menggunakan 4 buah 7 segment untuk membuat jam sederhana


"wahhh..kalo banyak 7 segmentnya, ngabisin banyak port dong ?"



Jangan khawatir, kita pake teknik " SCANNING", artinya kita hidupin segment satu persatu, tiap segment diparalel saja...tp kita hidupin dengan memberikan switch/saklar ke common port 7segment yg dikontrol oleh port micro ..dan scanningnya cepetttt...sehingga mata kita melihatnya seperti nyala biasa aja.

jadi untuk bikin 7-segment 4 buah, diperlukan 7 port display(diparalel) + 4 port control

rangkaiannya seperti berikut :




klik untuk memperbesar gambar

Biasanya untuk display yg agak besar, kita perlu transistor untuk mengatur scanning, tp karena contoh kali ini memakai segment yg kecil maka tidak memerlukan kontrol memakai transistor ( coba pake transistor dijamin nyalanya redup !!)


Prinsip jam kali ini menggunakan prinsip DELAY, jadi tidak terlalu akurat.
Sebenernya mau seh membagi ilmu untuk jam yg super akurat, tapi ntar aja yahh..soalnya memerlukan pengetahuan mengenai "Timer/Counter" dari microcontroller

source code nya sebagai berikut :

#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>

int jam=0, min=0, detik=0; //variable global untuk menyimpan data2 waktu

void segmen (int angka)

{

switch (angka)
{

case 0 : { PORTB =0b1000000; break ; }
case 1 : { PORTB =0b1111001; break ; }
case 2 : { PORTB =0b0100100; break ; }
case 3 : { PORTB =0b0110000; break ; }
case 4 : { PORTB =0b0011001; break ; }
case 5 : { PORTB =0b0010010; break ; }
case 6 : { PORTB =0b0000010; break ; }
case 7 : { PORTB =0b1111000; break ; }
case 8 : { PORTB =0b0000000; break ; }
case 9 : { PORTB =0b0010000; break ; }
case 10 : { PORTB =0b1111111; break ; } //blank biar ga berbayang
}


}


void clock (void) //fungsi penambah waktu

{

detik ++; //jika fungsi dipanggil maka var detik ditambah

if ( detik == 60) // tambahkan menit jika 60 detik
{ detik=0; //untuk kembali ke 0
min++;
}

if ( min == 60) // tambahkan jam jika 60 menit
{ min = 0; //untuk kembali ke 0
jam++ ;
}

if (jam == 24) jam=0; //untuk kembali ke 0


}



int main(void)

{

int counter=0; //variabel delay
int digit; //variabel digit yang ditampilkan


// Port untuk display 7 segment
DDRB |= (1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(1<<PB5)|(1<<PB6);
//port untuk scanning ( PD0-4) dan dot ":" (PD6)
DDRD |= (1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3) |(1<<PD6);
//tombol untuk nambah jam/menit
DDRD &= ~(1<<PD4) & ~(1<<PD5) ;

PORTD = (1<<PD6) ; // blink untuk ":"


while(1)

{



counter++ ; //bikin delay nambah terusss

// sesuaikan nilai max counter dengan detik yg pas, tentunya tidak akurat
if(counter == 30) { counter =0 ; clock(); }

// nilai 1/2 dari counter untuk blink ":"
if(counter == 15) PORTD ^=(1<<PD6) ;

else{

segmen(10); // kasi display "mati' agar tidak berbayang

//digit pertama

digit = jam/10;
PORTD |= (1<<PD0); // 7 segment no1 hidup..yg laen mati
PORTD &= ~(1<<PD1) & ~(1<<PD2) & ~(1<<PD3) ;
segmen(digit);
_delay_ms(5);

//digit ke 2

segmen(10);
digit = jam%10;
PORTD |= (1<<PD1); // 7 segment no2 hidup..yg laen mati
PORTD &= ~(1<<PD0) & ~(1<<PD2) & ~(1<<PD3) ;
segmen(digit);
_delay_ms(5);

//digit ke 3

segmen(10);
digit = min/10;
PORTD |= (1<<PD2); // 7 segment no3 hidup..yg laen mati
PORTD &= ~(1<<PD1) & ~(1<<PD0) & ~(1<<PD3) ;
segmen(digit);
_delay_ms(5);

//digit ke 4

segmen(10);
digit = min%10;
PORTD |= (1<<PD3); // 7 segment no4 hidup..yg laen mati
PORTD &= ~(1<<PD1) & ~(1<<PD2) & ~(1<<PD0) ;
segmen(digit);
_delay_ms(5);



}

if (bit_is_set(PIND, PIND4)) //tombol nambah jam
{
jam++;
if(jam==24) jam =0;
_delay_ms(100);

}

if (bit_is_set(PIND, PIND5)) //tombol nambah menit
{
min++;
if(min==60) min=0;
_delay_ms(100);

}



}

return 0;

}



jika ingin mengetest/kalibrasi delay detik, ganti salah satu digit untuk menampilkan detik

//digit pertama

digit = detik/10;
PORTD |= (1<<PD0); // 7 segment no1 hidup..yg laen mati
PORTD &= ~(1<<PD1) & ~(1<<PD2) & ~(1<<PD3) ;
segmen(digit);
_delay_ms(5);

//digit ke 2

segmen(10);
digit = detik%10;
PORTD |= (1<<PD1); // 7 segment no2 hidup..yg laen mati
PORTD &= ~(1<<PD0) & ~(1<<PD2) & ~(1<<PD3) ;
segmen(digit);
_delay_ms(5);




Bagaimana dengan jam akurat ? disini nih kuncinya ...menggunakan xtal 4Mhz

/* ===================
GUNAKAN XTAL 4MHZ dan 2 buah capacitor 22pf
dan sambungkan seperti gambar di petunjuk awal
di bagian menggunakan xtal dan ubah dusebit

rangkaian tetap sama seperti jam_sederhana
hanya tambahan xtal pada kaki 4 dan 5 serta 
masing kaki xtal dihubungkan ke GND oleh
capacitor 22pf

*/

#define F_CPU 4000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

int jam=0, min=0, detik=0;

void segmen (int angka)

{

  switch (angka)        
          {

case 0 :  { PORTB =0b1000000; break ; }
        case 1 :  { PORTB =0b1111001; break ; }
        case 2 :  { PORTB =0b0100100; break ; }
        case 3 :  { PORTB =0b0110000; break ; }
        case 4 :  { PORTB =0b0011001; break ; }
        case 5 :  { PORTB =0b0010010; break ; }
        case 6 :  { PORTB =0b0000010; break ; }
        case 7 :  { PORTB =0b1111000; break ; }
        case 8 :  { PORTB =0b0000000; break ; }
        case 9 :  { PORTB =0b0010000; break ; }
        case 10 : { PORTB =0b1111111; break ; }  //blank biar ga berbayang
 }


}


ISR(TIMER1_COMPA_vect) 




  detik ++;

  if ( detik == 60)  
     {  detik=0;
   min++;
}  

  if ( min == 60)
      { min = 0;
   jam++ ;   
       }
  
  if (jam == 24) jam=0;
          

}



int main(void)

{

int digit;


   TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
   TIMSK |= (1 << OCIE1A); // Enable CTC interrupt 
   OCR1A  = 62499; //compare the CTC A 
   TCCR1B |= (1 << CS11)|(1 << CS10); // Start timer at Fcpu/64



DDRB  |= (1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(1<<PB5)|(1<<PB6);
DDRD  |= (1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3) |(1<<PD6);

DDRD  &= ~(1<<PD4) & ~(1<<PD5)  ;


sei();


while(1)

{




if(TCNT1 < 31250) PORTD |=(1<<PD6) ; 
else PORTD &=~(1<<PD6) ; 


segmen(10);
digit = jam/10;
PORTD |= (1<<PD0);
PORTD &= ~(1<<PD1) & ~(1<<PD2) & ~(1<<PD3) ;
segmen(digit);
_delay_ms(5);

segmen(10);
digit = jam%10;
PORTD |= (1<<PD1);
PORTD &= ~(1<<PD0) & ~(1<<PD2) & ~(1<<PD3) ;
segmen(digit);
_delay_ms(5);

segmen(10);
digit = min/10;
PORTD |= (1<<PD2);
PORTD &= ~(1<<PD1) & ~(1<<PD0) & ~(1<<PD3) ;
segmen(digit);
_delay_ms(5);

segmen(10);
digit = min%10;
PORTD |= (1<<PD3);
PORTD &= ~(1<<PD1) & ~(1<<PD2) & ~(1<<PD0) ;
segmen(digit);
_delay_ms(5);




if (bit_is_set(PIND, PIND4))
   {
     jam++;
if(jam==24) jam =0;
     _delay_ms(100);

   }

if (bit_is_set(PIND, PIND5))
   {
     min++;
if(min==60) min=0;
 _delay_ms(100);

   }



}

return 0;

}











hasilnya dapat dilihat seperti berikut :



Share:

Senin, 01 Agustus 2011

Perkenalan AVR STUDIO

Untuk melakukan programming ke Chip AVR diperlukan software developer dan juga software downloader. Sedangkan untuk Hardware downloader dibahas di posting sebelumnya. Kali ini kita gunakan software komplit buatan atmel (si empunya avr) plus WINAVR untuk coding dalam bahasa C.

Asumsikan bahwa hardware programmer sudah terpasang dan terinstall driver nya dengan benar. Pada contoh dibawah kita gunakan programmer berbasis STK500 dan Chip yg dipakai ATTiny2313.

Buka AVR studio , pastikan WINAVR sudah terinstall sehingga bisa menggunakan bahasa GCC. Pilih NEW PROJECT sehingga muncul halaman pada gambar dan pilih juga folder yang digunakan, sebab semua file akan ditempatkan di folder tersebut



pilih jenis simulator dan IC yang digunakan
standar yg digunakan adalah AVR SIMULATOR dan sesuai IC yang digunakan yaitu ATTINY2313





untuk mengecek apakah programmer & hardwarenya sudah siap digunakan, pastikan menggunakan com port yg sesuai dengan com port programmer. Kemudian lakukan langkah berikut ini:

Set frekuensi programmer ke frekuensi yang 1/4 lebih rendah dari frek oscillator dari avr.
Dari pabriknya, AVR ( kali ini diambil contoh attiny2313) secara default menggunakan internal oscilator 8 MHZ dan clocknya di bagi 8 (clock div /8) sehingga CPU bekerja di 1MHZ
sehingga set programmer pada setting yg 1/4 lebih kecil yaitu 57.6khz



lakukan "READ SIGNATURE" untuk mengecek koneksi programmer & ATtiny2313

Jika hasil compile script di developer window anda anda sukses, maka lakukan download file HEX ke chip AVR sesuai gambar berikut :

file hex ada di : /folderanda/default/namaproject.hex




Dari pabriknya AVR memiliki setting clock internal sebesar 1 Mhz, jadi jika menggunakan clock external seperti xtal oscilator perlu dilakukan setting fusebit seperti contoh pada gambar berikut:



Mudah bukan ?
Share:

BASIC OUTPUT & INPUT dengan ATTINY 2313

Siapkan bahan2 sesuai skematik berikut ini :



dan jangan lupa programmer AVR nya ...

PROJECT 1 LED BLINK

#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=0b1 ; // Inisialisasi bahwa port B0 adalah output , jika pake port B5 ya inisialisai jadi DDRB=0b100000;



while(1)

{

PORTB=0b1; //port B0 = 1 atau nyala

_delay_ms(1000); //delay

PORTB=0b0; //port B0 = 0 atau mati

_delay_ms(1000); //delay

}

return 0;




PROJECT 2 LED BLINK

Gunakan 2 LED di port B#0 dan B#5
Kita akan memperkenalkan operasi bit untuk inisialisasi rangkap

#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>


int main(void)

{



DDRB |= (1<<PB5)|(1<<PB0) ; // inisialisai menggunakan operasi bit

PORTB |= (1<<PB5) ; // operasi bit PORT B#5 = 1
PORTB &= ~(1<<PB0) ; //operasi bit PORT B#0 =0

while(1)

{

PORTB ^=(1<<PB5) ; // operasi bit toggle atau NEGASI/KEBALIKAN dari posisi bit sebelumnya
PORTB ^=(1<<PB0) ;

_delay_ms(1000);



}

return 0;

}




PROJECT - MEMBACA TOMBOL

kali ini kita akan membaca tombol dan kita gunakan untuk mengatur nyala matinya LED
kita memanfaatkan syntax " if (bit_is_set(PIN#, PIN##)) "

#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>

int main(void)

{



DDRB |= (1<<PB5)|(1<<PB0) ; //inisialisasi port B#5 & B#0 sebagai output
DDRB &= ~(1<<PB1) & ~(1<<PB2) ; //inisialisasi port B#1 & B#2 sebagai input

PORTB |= (1<<PB5) | (1<<PB0); //kita SET LED NYALA semuanya

while(1)

{


if (bit_is_set(PINB, PINB1)) // membaca jika port input B#1 di set atau HIGH / 1 ( posisi awal di ground /LOW )
{
PORTB ^=(1<<PB5) ; //TOGGLE LED di PORT B#1
_delay_ms(500);

}

if (bit_is_set(PINB, PINB2)) // membaca jika port input B#2 di set atau HIGH / 1 ( posisi awal di ground /LOW )
{
PORTB ^=(1<<PB0) ; //TOGGLE LED di PORT B#2
_delay_ms(500);

}
}

return 0;

}



Share:

Minggu, 31 Juli 2011

BERKENALAN DENGAN AVR MICROCONTROLLER

avr-chip.jpg (230×191)
Lupakan MC 89S51 karena sudah outdate, walau masih tersedia di pasar
kenapa ??

1. 89c51 memang dasar sekali, tapi untuk fungsi2 yang memerlukan RAM, EEPROM, COUNTER, ADC,PWM dsb dibutuhkan komunikasi ke IC tersendiri

2. AVR merupakan teknologi MC yang langsung memiliki beberapa fungsi sekaligus dalam 1 chip (Harvard architecture) RAM, EEPROM, ADC, PWM COUNTER, UART, SPI, I2C dsb. gabung dalam 1 IC tinggal pilih IC MC yang sesuai dengan kebutuhan

3. Pemrograman secara SPI, bisa mencoba produk 200 rb-an di http://www.innovativeelectronics.com/

4. AVR yang cocok buat belajar :
- ATtiny 2313(15rb) ==> umum, kecil, simple, realible
- ATMega 8515(35rb) ==> jika butuh kapasitas agak besar
- ATMega 8535 (40rb) ==> tambah ADC 8 ch
- ATMEGA128(70rb) ==> jika butuh I/O yang banyak & memori gede

5. Bikin Progam "Hello world" , dengan menyalakan LED berjalan bolak-balik dengan MC AtTiny 2313, menggunakan AVR studio(gratis) & WInAVR(krack) sehingga pemrograman full dalam bahasa C (GCC)

6. Hubungkan PORTD dari attiny2313 dengan LED 8 buah ( tambahkan Resistor 470 ohm tiap led untuk pembatas arus)


#include <avr/io.h>
#include <avr/delay.h>


int main (void)
{
// set PORTD sebagai output
DDRD = 0xFF;
int i ;


while(1) {
for(i = 1; i <= 128; i = i*2)
{
PORTD = i;
_delay_ms(1000);
}
for( i = 128; i > 1; i -= i/2)
{
PORTD = i;
_delay_ms(1000);
}

}
}



Download file "hex" menuju AVR melalui SPI port , alat yg digunakan bisa beragam...googling aja banyak kok yg gampang + murah bahan2nya

Hasilnya :



Share:

BIKIN PCB MURAH MERIAH tapi KUALITAS OK !



untuk membuat PCB home made, ada bermacam cara
bisa didapat di instructable.com , seabrek cara dibeber disana
tapi yang menurut saya mengeluarkan uang paling sedikit cara yg satu ini

1. Desain PCB melalui software CAD semacam Eagle layout atau sebangsanya
Tinggal googling aja, banyak tersedia EAGLE Layout Editor + kracknya

2. Print Hasil Layout PCB dengan LASER PRINTER, keatas kertas MAJALAH BEKAS. yang dipakai adalah kertas majalah (biasanya majalah bisnis) yang tipis & mengkilat. Majalah / Buletin TV kabel contoh yg paling gampang

3. Bila tidak ada printer laser, print di kertas biasa, kemudian Lakukan PhotoCopy diatas kertas majalah tadi

4. siapkan PCB polos ( 1 layer saja), bersihkan dari kotoran menggunakan kertas gosok halus

5. Panaskan SETRIKA, kemudian setrika kertas majalah yg sudah ada gambar PCB nya tadi ke atas tembaga PCB , tekan2, mungkin diperlukan trial & error beberapa kali dan perkirakan transfer sudah merata baru kita boleh selesai setrika.

6. Rendam PCB tadi di air hangat ( dingin juga boleh) sampai kertas tipis tadi mengelupas, hati2 agar tidak merusak jalur PCB. Pastikan semua kertas yg ada di LUAR JALUR bersih , sedangkan yang di atas jalur tidak masalah jika ada sisa kertas ( asal tidak meninggalkan serat2 berlebihan) . perbaiki jalur2 yang mungkin rusak/ tipis dengan spidol permanen.

7. Siap di etching ( pake Ferry Clorit ataupun larutan HCL + H202)

8. Untuk ferry clorit, gunakan air hangat (jangan panas), perlu goyang2 tempat/ wadah etchingnya, tambahkan feri clorit ke larutan jika kekuatan oksidasinya berkurang, larutan sisa bisa disimpan & dipakai lagi untuk proses etching di lain waktu ( tambah feri clorit baru sedikit saja).

9. HCL yg umum dijual = 30 %, H202 < 5 % , jika kondisi seperti ini bisa di gunakan komposisi 1:1 atau 3:4 , ingat tuang HCL ke H202, jangan sebaliknya. jika komposisi H202 > 10 %, perlu penambahan air agar tidak terlalu cepat proses oksidasinya ( merusak masking )

10. HCL + H202 hanya sekali pake, sebab tidak bisa disimpan dalam botol

11. setelah proses etching dirasa selesai, bilas PCB dengan air hangat atau air mengalir (kran)

12. PCB siap di bor, setelah semua lubang komponen di bor, bersihkan masking dengan Aceton / thiner CAT A. Agar PCB tampak bersih & tidak beroksidasi dengan udara, bisa dilaminasi dengan lapisan perak (mahal), liquid tin ( mahal & jarang ada), atau di lapisi ( tipis) dengan cat semprot (lacquer) transparan ( 10 ribu juga dapet)

13. PCB siap di solder
Share:

Sabtu, 23 Juli 2011

PAKET BELAJAR MICROCONTROLLER DASAR

Kami Bisa Bantu Anda Belajar Microcontroller Melalui Praktek Langsung


Paket terdiri dari :


1. BreadBoard / Project Board
2. AVR ATTINY 2313
3. Programmer AVR USB DT-HiQ
4. LED ( untuk simulasi running LED)
5. 7 Segment (untuk belajar JAM)
6. LED MATRIX 7x5 ( untuk belajar bikin text)
7. Resistor, tempat baterai, push button dan kelengkapan pendukung lainnya
8. Buku belajar AVR yang dijual UMUM (selama stok kosong diganti 1 chip attiny2313)
9. CD programmer + CD tutorial


TARGET :

-Menguasai teknik merangkai microcontroller di breadboard/project board
-Menguasai dasar seting pemrograman microcontroller
-Mengasah ketrampilan dasar elektronika berbasis microcontroller
-Cocok buat anda yg baru pertama kali belajar MicroController


Q: KENAPA MEMAKAI BREAD BOARD  / PROJECT BOARD?
A:
AGAR TIAP PRAKTEK DAPAT DIBONGKAR PASANG PADA SATU TEMPAT KERJA SAJA
LEBIH MENGENAL DASAR PERAKITAN YANG LEBIH MENDALAM DAN LANGSUNG MENUJU KE INTI SYSTEM MICROCONTROLLER


Modul2 yang bisa dikerjakan dengan paket Microcontroller

BASIC Input output



RUNNING LED



Teks Led Matriks - LOVE HURT



JAM DIGITAL





HARGA ?
550 ribu sudah ongkos kirim seluruh Indonesia

MENERIMA JUGA PERMINTAAN TUTOR/KURSUS ATAU PROJECT BELAJAR LAINNYA 


Cara Transaksi


Melalui Transfer rek Mandiri / BCA (no rek via PM/sms )

Pengiriman Lewat JNE atau Paket Pos



GARANSI BIMBINGAN 24 JAM SAMPAI BISA !



TESTIMONI



Original Posted By erwin4838 
maaf gan baru sempet OL,btw makasih gan paket tutorialnya dah sampe dan dipacking dengan baik,kalo nanya2 lewat sms juga responya cepet,pokokya recomended seller,btw kalo ada yg ane ga ngerti tolong bantu ya gan



Original Posted By Prince_of_Bima 
sory bos baru ngasih testi, kelupaan terus 

 respon cepet, barangnya cepet juga nyampenya



Original Posted By n30p4Tr10t 
Barang udah sampe gan. Matur nuwun mas hehe!



TRUSTED SELLER!!



Original Posted By happyarto 
Agan yang satu ini mantab deh

ane beli 1 paket belajar microcontroler
1 hari langsung smpe

ane emang gk ngerti sm skali apa yang namanya microcontroller
ane rakit failled terus2an.. smpe jebol ATTiny nya...
terus2an dipandu smpe akhirnya dikirimin lagi itu AT tini nya gratis...

so yg mau belajar micro sm agan yang satu ini tepat sekali dah....

Jangan Ragu-ragu bwt Ahocool agan yg atu ini








CONTACT US



HP: 08155737755
Mail : ahocool@gmail.com
ym :ahokleng
fb: facebok.com/nyoman.yudi
twiter: @ahocool



Share:

PAKET BELAJAR ELEKTRONIKA DIGITAL DASAR

Apakah anda baru berkenalan dengan Elektronika Digital ?
Apakah anda Ingin Mempraktekkan Tutorial di Blog Ini ?
Anda Dapat Membeli Paket Belajar dari Kami






ISI PAKET BELAJAR:

1. IC NE555 : Clock Generator
2. CMOS 4017 : Ring Counter / LED BERJALAN
3. CMOS 4026 : Counter + Driver 7 segment
4. 7 Segment common cathode
5. R, C, LED, buzzer + Tempat baterai
6. Bread Board / Project Board
7. Buku Petunjuk


TARGET :

-Menguasai teknik merangkai di breadboard/project board
-Menguasai dasar clock, shift register, LED, 7 segment dan counter
-Mengasah ketrampilan elektronika digital sebelum melangkah ke microcontroller
-Cocok buat anda yg baru pertama kali belajar Elektronika DIGITAL
-Petunjuk praktek ada di wesite ini

Contoh Praktek pada video berikut :



HARGA ?
200 ribu sudah ongkos kirim seluruh Indonesia



Cara Transaksi


Melalui Transfer rek Mandiri / BCA (no rek via PM/sms )

Pengiriman Lewat JNE atau Paket Pos

CONTACT US


HP: 08155737755
Mail : ahocool@gmail.com

fb: ahocool1@gmail.com
twiter: @ahocool


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 (74) 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 (5) 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