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

Senin, 28 November 2011

KIT & Komponen Metal Detector MK-II

PERHATIAN : 
HANYA UNTUK PRAKTEK SAJA !


Buat yang berminat membuat metal detector MK2 (pembahasannya disini), ada berita bagus..
Kamu dapat membeli bahan-bahannya melalui kami

yang kamu dapat :

1. Komponen Lengkap + Lilitan Sensor


2. PCB METAL DETECTOR MK-2


Harga


Murah saja ... 150 Ribu (belum ongkos kirim)


Cara Transaksi


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

Pengiriman Lewat JNE atau Paket Pos

HUBUNGI KAMI



HP: 085733889569 , 087882045949
Mail : ahocool@gmail.com
ym :ahokleng
fb: ahocool1@gmail.com
twiter: @ahocool



Share:

Jumat, 25 November 2011

METAL DETECTOR MK-II

Metal detector ini menggunakan prinsip BFO atau "beat frequency oscillator" dimana terdapat 2 lilitan sebagai pengirim dan penerima. Karena lilitan memiliki ukuran yg sama, maka jika terjadi gangguan medan magnet akan menyebabkan osilasi terjadi (melalui transistor) dan membuat speaker mengeluarkan suara

Hasil googling menuntun menuju ke koleksi rangkaian metal detektor di sini : http://www.discovercircuits.com/S/s-metal.htm

setelah mempertimbangkan bahan2 yg umum ada di pasaran, akhirnya dapet rangkaian yg ini : http://talkingelectronics.com/projec...ectorMkII.html



komponen dari rangkaian diatas umum ada di pasar genteng surabaya, cuman BC338 aja yg ga ada, tp bisa diganti dengan BC337. Kumparan kawat email berukuran 0.5 mm, bisa dibeli di toko2 yg jual peralatan tamiya ato yg biasa gulung trafo/dinamo dan bisa juga pake bekas trafo/balast lampu neon. Butuhnya 70 & 50 lilitan berdiameter 8cm, jadi butuh kira-kira 30 meter' karena jualnya per ONs jadi beli 1 ons aja cukup banyak sisanya.

lilitan 70 merupakan receiver, sedangkan lilitan 50 merupakan transmiter, diletakkan berdampingan kemudian di isolasi biar rapi.



jangan lupa ujung kawat lilitan dikupas pake cutter baru deh disolder

kemudian komponen dirangkai diatas breadboard




WARNING : JANGAN MENGERJAKAN DI ATAS MEJA BESI !!
(2 jam mencari kesalahan di breadboard ehh ternyata sensornya mendeteksi logam dari meja...bunyi terus tuh alat...wakakakak)


hasilnya seperti video berikut, jangan lupa puter2 Trimpot 1K untuk mengatur sensitifitas dari kumparan..






SELAMAT MENCOBA

nb: Jika berminat, KIT nya bisa didapatkan disini
Share:

Rabu, 28 September 2011

Text to Bit Converter untuk merancang karakter dot matrix


Jika mengalami kebingungan untuk mendesain karakter dot matrix, saya kasi tools yg mungkin bermaanfaat untuk merubah karakter ke bit.





Mudah-mudahan membantu praktek belajar menulis di dot matrix yang tersedia di paket belajar mikrokontroler
Share:

Minggu, 25 September 2011

Langkah Awal Instalasi DT-HIQ USB AVR ke PC

"Gimana nehh....kok ga detect apa-apa pas dicolokin ? "

SMS seperti ini sering meluncur dari pembeli paket belajar microcontroller dasar sesaat setelah paketnya datang. Kesalah-pahaman seperti ini muncul karena alat tidak mengambil power supply dari port USB melainkan mengambil tegangan dari rangkaian target atau bisa juga hanya menancapkan baterai/tegangan 3 - 5 v ke header pin 2 (+) dan pin 4 (-).




Jika USB-ISP mendapatkan tegangan dari rangkaian atau dari baterai, maka PC akan mendetect hardware baru



Pilih “Locate and Instal driver software” dan arahkan instalasi driver ke DVD installer yg didapat di paketan programmer USB-ISP





Ikuti langkah-langkah sampai USB-ISP terdeteksi oleh PC dan mendapatkan COM PORT tertentu
Dikarenakan software AVR STUDIO hanya mendeteksi port COM terbatas (sampai COM9) maka perlu dilakukan perubahan COM PORT secara manual pada control panel รจ device manager seperti gambar berikut:


(klik untuk memperbesar)

Klik kanan pada USB ISP Device, kemudian pilih properties, Port setting, Advance dan kemudian pilih com port antara 4-9 ( 1-3 biasanya digunakan oleh PC/Laptop). Jika terdapat keterangan (IN-USE) tidak menjadi masalah asal perangkat yg memiliki com port yg sama sedang tidak terpasang.
Share:

Selasa, 13 September 2011

Belajar Menulis di LCD Matrix


Kali ini kita akan membahas tentang LCD matrix
Umumnya LCD matrix yg beredar berbasis chipset HD44780 buatan hitachi



Lcd berbasis HD44780 mempunyai 2 mode interface 4 bit ato 8 bit
kali ini kita akan membahas yg 4bit karena kita pake attiny yg pin nya dikit
menulis ke LCD gampang-gampang susah, ada tricknya tersendiri asal sesuai datasheet

tapi kali ini kita akan bikin paling gampang, dengan memanfaatkan library yg paling banyak dipake buatan si PETER FLEURY linknya disini

sedangkan librarinya dapat download disini


pertama siapkan skematik berikut ini



dari gambar, potensio/trimpot fungsinya untuk mengatur kontras LCD, jika tidak perlu diatur, bisa diganti dengan R 100 ohm


selanjutnya buat project di AVR studio, jangan lupa mengekstrak librarynya si fleury yaitu file lcd.h dan lcd.c

karena file lcd.h nya default, kita bahas bagian2 yg dapat disesuaikan sesuai desain yang kamu bikin. Edit file lcd.h dengan notepad

Quote:

#define XTAL 1000000 sesuaikan nilai dengan frek clock, default attiny2313 adalah 1Mhz

#define LCD_LINES 2 jumlah line LCD
#define LCD_DISP_LENGTH 16 jumlah karakter per line


#define LCD_IO_MODE 1 mode 0=8bit, 1=4 bit

selanjutnya adalah definisi pin yang dipake, berikut ini hasil edit yang sesuai skematik diatas

#define LCD_PORT PORTB /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 1 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 2 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */
#define LCD_RS_PORT PORTD /**< port for RS line */
#define LCD_RS_PIN 4 /**< pin for RS line */
#define LCD_RW_PORT PORTD /**< port for RW line */
#define LCD_RW_PIN 5 /**< pin for RW line */
#define LCD_E_PORT PORTD /**< port for Enable line */
#define LCD_E_PIN 6 /**< pin for Enable line */


selanjutnya jangan lupa untuk menambahkan source lcd.c , seperti pada gambar berikut:




selanjutnya adalah routine/function yg dipake oleh library peter fleury


void lcd_init ( uint8_t dispAttr )

inisialisasi display


Parameter yang dipake untuk dispAttr :

LCD_DISP_OFF
display off LCD_DISP_ON display on, cursor off LCD_DISP_ON_CURSOR display on, cursor on LCD_DISP_ON_CURSOR_BLINK display on, cursor on flashing



void lcd_clrscr ( void )


Clear display LCD




void lcd_home ( void )


Set cursor ke posisi home



void lcd_gotoxy ( uint8_t x, uint8_t y )


Set cursor ke posisi tertentu



Parameters:

x
posisi horizontal , 0 paling kiri
y
posisi vertikal, 0 baris paling atas


void lcd_putc ( char c )


menampilkan sebuah karakter di LCD



void lcd_puts ( const char * s )


menampilkan String di LCD



void lcd_puts_p ( const char * progmem_s )


Display string jika memakai Progmem



void lcd_command ( uint8_t cmd )


Jika mengirim command/perintah setting



sekarang kita lanjut ke sciptnya yukkk...
kali ini kita akan menulis sesuatu ke LCD :

#include <stdlib.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "lcd.h"




int main(void)
{


DDRD |= (1<<PD4)|(1<<PD5)|(1<<PD6); //Port RS, R/W, En
DDRB |= (1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3); //DATA port 4 bit



lcd_init(LCD_DISP_ON); //inisialisasi
lcd_clrscr(); //bersihkan layar


lcd_puts("=== Test LCD ===\n"); //tulis baris 1 dan geser ke bawah


lcd_puts("1234567890@#$%?+"); //tulis baris 2


while(1)

{


}

return 0;

}

sedangkan yang lebih keren..kita bikin teks LCD nya geser...geserr seperti gambar + video





Share:

Selasa, 09 Agustus 2011

Kit Pemancar FM 1 Transistor Untuk Pemula

Mau belajar bikin pemancar radio FM sederhana?
Apakah mengalami kesulitan karena bahan-bahan susah dicari?
Mungkin kami bisa bantu kamu menyediakan kompenennya...



KABAR BARU ..TERSEDIA JUGA KIT PEMANCAR AM dengan IC 555

Pemancar FM atau FM transmitter untuk player mp3/mmc umumnya dijual murah, terutama produk dari china..tapi kalau bikin sendiri kenapa tidak? Jika merakit sendiri akan mengasah ketrampilan solder menyolder buat kalian yang baru mengenal dunia elektronika.

Dipasaran ada juga yang menjual KIT pemancar dengan PCB yang sudah jadi , tetapi tidak seru ahh..mending bikin yang seperti ini, lebih klasik dan terlihat sangar! Perlu diketahui jika memakai KIT PCB yang tinggal solder maka kamu akan melewati ilmu "membaca gambar skematik". Tentunya akan mengurangi proses penyerapan ilmu elektronika.

Paket KIT terdiri dari :

1. PCB POLOS 5x10 cm dan PCB lobang 2x3 cm

http://www.blind-summit.co.uk/wp-content/uploads/2006/06/make-your-own-pcb-boards.jpg

PCB polos sebagai "groundplane" atau dasar ground/pentanahan untuk mengurangi interferensi/gangguan, sedangkan PCB lobang untuk menempatkan komponen. PCB lobang akan diletakkan diatas PCB polos

2. Transistor NPN  general purpose seperti 2N3904, 2N2222 dsb

405-454-home.jpg (129×129)

Transistor sebagai penguat sinyal oscillator

3. Kapasitor 10nF, 1uF, 10pF

capacitors.jpg (434×234)
berfungsi sebagai filter sinyal audio dari input

4. Resistor 10K, 27K dan 470 ohm

http://electronicrepairguide.com/four%20band%20resistor.jpg
digunakan untuk penahan arus listrik, dan jika digabung dengan kapasitor dapat berfungsi sebagai osilator

5. Kasitor Trimmer 20pF

http://shop.rabtron.co.za/catalog/images/trimcap.jpg
nilai kapasitansinya dapat diubah-ubah, cocok sebagai penala frekuensi yg akan dipancarkan

6. Lilitan kawat email (induktor)

http://www1.picturepush.com/photo/a/6275074/220/6275074.jpg

Lilitan induktor jika digabungkan dengan kapasitor akan menghasilkan resonansi frekuensi. Lilitan ini digunakan bersama-sama kapasitor untuk menghasilkan frekuensi FM.

7. Konektor Baterai + Baterai 9V

http://www.superdroidrobots.com/images/TE-086-000.jpghttp://www.blasterstool.com/images/products/detail/energizer_9v__67602_std.jpg

8. Skematik & Petunjuk Perakitan


http://anarchy.translocal.jp/radio/micro/howtosimplestx_logo.jpg
Image Hosted by PicturePush - Photo Sharing



Harga



Murah saja ...75 Ribu (belum ongkos kirim)


Cara Transaksi


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

Pengiriman Lewat JNE atau Paket Pos

HUBUNGI KAMI


HP: 085733889569 , 087882045949
Mail : ahocool@gmail.com
ym :ahokleng
fb: ahocool1@gmail.com
twiter: @ahocool



Jika Kamu sukses merakit, bisa ngerjain orang serumah...karena pesawat TV bisa keluar suara MP3 dari pemancar yang kamu rakit


Share:

Senin, 08 Agustus 2011

PEMANCAR RADIO FM 1 TRANSISTOR

Kali ini kita selingkuh ke Analog dulu yuk , kita bikin Pemancar radio FM paling sederhana. Di inspirasi dari pertanyaan seorang anak SMA yg gagal meniru skematik pemancar FM di sebuah blog, kemudian dia meminta bantuanku untuk memperbaiki. Hasil googling dapet video youtube yg menuntunku menuju website jepang http://anarchy.translocal.jp/radio/micro/

Di salah satu bagian web jadulnya ada petunjuk membuat radio FM sederhana.
Gambar skematik seperti ini :



klik disini untuk gambar skematik lebih jelas

nah..ternyata ketika ku cek di kotak komponen punyaku ada beberapa yg cocok dan yang lainnya aku bikin dengan pendekatan nilai komponen dengan menggabungkan komponen2 berbeda



dari skematik di web asli, aku lakukan beberapa penyesuaian :

- R 27 Kohm aku buat dari gabungan R 10K + R 12 K , jadi nilainya mendekati
- Kapasitor 10pF aku buat dari seri 2 kasitor 22pF, jadi nilai sekitar 11pF
- Transistor yg kupakai transistor NPN umum 2N3904, ga bagus sebenernya respon frekuensi tinggi, tapi ga masalah
- Lilitan / Kumparan dibuat dari kabel jumper atau wrap kabel yang biasanya di gunakan untuk menyambung rangkaian di PCB lubang. Lilitan dibuat dengan melilitkan kabel 4-5 loop di obeng kecil, kemudian ujung2nya diluruskan biar gampang disolder. Kumparan ini bisa dibuat dengan kabel email, kabel dinamo tamiya ato kabel balast lampu neon. Ingat ujung kabel dikupas saat menyolder karena ada lapisannya
- Kapasitor trimmer/Varco aku pake yg ukuran 20 - 50 PF , bisa juga tidak dipergunakan tapi akan kesusahan ketika tuning lilitan
- PCB yang aku gunakan PCB lobang, sedangkan aslinya menggunakan PCB polos, sehingga Ground plane yg lebar akan memperkecil interfrensi. Jadi PCB lobang aku kasi groundplane pake timah yg disolder memanjang
- Batere yg dipake 3 buah AA, jadi tegangannya 4.5 V


Setelah berkutat beberapa lama dan ga suskses, akhirnya aku pikir lebih baik menunggu sape lewat tengah malem, biar siaran radio publik pada off, dan akhirnya berhasil mancar di range 90-102 MHZ. Aku gunakan mp3 player sebagai inputan audio

Trick tuning frekuensi sebagai berikut :

- Lilitan diusahakan lebar / kerenggangan seragam, semakin lebar/renggang maka frek semakin tinggi dan sebaliknya, jika versi tanpa varco / trimmer maka penentuan frekuensi menggunakan pengaturan jarak kerenggangan lilitan. Susah bangett...
- Putar2 varco dengan obeng trimmer, jika pake obeng biasa maka akan terpengaruh tangan yg nge-ground, pilih frek yg kosong di radio penerima, putar varco pelan2 sampe suara muncul. biasanya akan terjadi offset ketika obeng dilepas, kira2 frek turun 0.6 - 1 MHz. Contoh, misal frek yg diingini 94MHZ, maka radio dipanteng frek 95Mhz ketika muter2 varco sampe suara muncul
- Antena pemancar dapat dibuat dari kabel tunggal


dari hasil pemantauan siaran dapat diterima sampe jarak 15 meter (LOS / tanpa halangan)


Kalo agan beruntung , bisa ngerjain orang serumah lho ! TV nya bisa masuk suara dari pemancar nya...seru kan ?

SELAMAT MENCOBA!


Share:

Jumat, 05 Agustus 2011

Bermain Dengan Dot Matrix "LoveHurt"


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




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

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


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:

Kontak Langsung



12179018.png (60×60)
+628155737755

HP: 081331339072
Mail : ahocool@gmail.com

ANTI SPAM !



Blog Ini Mendukung Blogger Indonesia Yang Jujur dan Memberikan Informasi Sebenarnya, Bukan Menyampah Demi $Rp$ Yang Hanya Merendahkan Blogger Indonesia

Site View

Categories

555 (6) 7 segmen (3) adc (3) amplifier (1) analog (9) android (11) attiny (1) attiny2313 (16) blog (1) bluetooth (1) cmos (1) dasar (31) display (2) gcc (1) infrared (2) Input Output (3) jam (6) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (9) komputer (3) komunikasi (1) kontrol (2) lain-lain (8) lcd (2) led (9) led matrix (6) line tracer (1) lm35 (1) memory (1) metal detector (4) microcontroller (48) mikrokontroller (1) mikrotik (4) paket belajar (19) palang pintu otomatis (1) parabola (7) pcb (2) project (33) proyek (1) radio (3) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (1) sharing (2) sms (5) software (16) tachometer (2) telepon (7) televisi (31) transistor (1) troubleshoot (3) tulisan (36) tutorial (69) vu meter (1) vumeter (1) wav player (3) wayang (1) wifi (1)

Diskusi


kaskus
Forum Hobby Elektronika