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

Minggu, 10 Juni 2012

Operasi geser Byte pada Win-AVR GCC untuk AVR microcontroller

Byte, bit, mega byte, giga byte ...itu hanya susunan 101010101010 loooo..
ah..cuma 2 angka ...eitt..jangan sepelekan...ini adalah penemuan paling brilian abad ke 20 yg memungkinkan kita bermain game , PC, internet blaa..blaaa....tanpa berlama-lama langsung kita goyang teory & operasi byte pada microcontroller dan bahasa C (win Avr)


"ingat , Micro AVR itu 8 bit ! , jadi semua data berpola 00000000-11111111" 


Kita akan mengambil contoh AVR yg paling sering digunakan pada blog ini yaitu ATTINY 2313
attiny2313dip.jpg (877×525)

ukuran memory FLASH (program) adalah 2kbyte (2048 byte), RAM 128 Byte dan EEPROM 128 byte juga.
Port input/output berjumlah 18 (Max) dengan register I/O A, B  dan D (paling umum digunakan register I/O B & D)IO port B berjumlah 8 (PB0-PB7) dan D berjumlah 7(PD0-PB6)  sedangkan portA jarang digunakan karena berhubungan dengan xtal dan reset.

attiny2313isp.jpg (530×291)


Operasi byte berguna saat melakukan perubahan register, memory dan juga input output. Semisal kita ingin melakukan setting PORT D menjadi output semua, maka kita tuliskan di listing seperti ini :

DDRD=0b1111111;
atau
DDRD=0x7F;
atau
DDRD=127;


begimana kalo ingin membuat port D0 input, port D2 output port D6 output ...gampang ...kita bikin aja seperti ini :

DDRD=0b1000010;

tapi tiba-tiba ditengah tengah program, ada pin yg ingin kita ubah menjadi fungsi yg berbeda tanpa menghiraukan bit yg lainnya? sebenernya bisa aja kita pake cara yg tadi...tapi percaya deh, cara ini lebih gampang dan akan berguna suatu saat nanti

semisal....kita ingin hanya memperhatikan port D3 sebagai output , yg laen gua ga peduli ...begini caranya: 

GESER YUKKK....

kita memanfaatkan angka 1 dimana 1 secara biner juga dipanggil 0b0000001. Jika kita ingin merubah port D3 sebagai output maka kita perlu menuliskan :

DDRD=0b0001000; 

hubungan antara 0b0000001 dan 0b0001000  adalah bergesernya bit 1 dari paling kanan ke 3 posisi disebelah kiri. Secara aritmetika binner dan bahasa C , operasi ini dapat dipanggil dengan :

 (1<<3)

artinya angka 1 digeser 3 kali ke kiri...dapet deh.. trus gimana jika kita ingin mengubah jadi input..ya sama aja kita geser aja nilai 0 ke kiri 3 kali (0 <<3) , tapi cara ini tidak elegan menurut para programmer. 

nah ... operasi diatas hanya bisa dilakukan jika nilai yg laennya 0 dan dilakukan di awal inisialisasi program, jika dilakukan ditengah2, kita perlu melakukan operasi laen yaitu operasi exclusive or (XOR) dan negasi AND. Cara ini efektif jika kita ingin merubah suatu register di posisi selaen awal program (semisal berubah ditengah2)

semisal kita pengen ngidupin led di port 4 dan 6  aja, tanpa menghiraukan port laen, kita tulis seperti ini :       

PORTD |=(1<<4) | (1<<6); 


sedangkan jika kita ingin mematikan LED di port 2 & port 5 maka yg kita tulis seperti ini (cara ini yg disarakan):

PORTD &=~(1<<2) & ~(1<<3); 


nah...hal ini berfungsi banget jika inisialisai register2 yg rumit didalam AVR, seperti contoh inisialisai timer berikut :


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


jadi kita tidak pusing-pusing lagi menyusun bit satu persatu, hanya perlu mencari nama register yg perlu di on / off ( 1/ 0)   kan ...beress dahhh...simple bukan ?


SELAMAT MENCOBA

Share:

Senin, 04 Juni 2012

BERMAIN DENGAN TV PART#2

Setelah hanya bermain dengan HSYNC ( horizontal scanline) saja pada posting sebelumnya, maka pertanyaan akan muncul gimana jika pengen menampilkan gambar ditengah layar TV.

standar TV analog PAL memiliki teknik scanning line sebanyak 625 line, dengan teknik penggabungan penembakan elektron garis ganjil dulu dilanjutkan dengan line genap. seperti gambar dibawah ini :



untuk memberikan pembeda antara awal scan genap dan ganjil , dilakukan dengan memberikan pulsa yg berbentuk 0 - 0,3v dan dengan durasi 'short' selama 2us dan 'long' yang artinya 32 us. Agak ribet memang , tp lama-lama juga bakalan ngerti. kalo dilihat secara osciloscop seperti ini :


*)keterangan : us = micro second

Jadi untuk VSYNC ganjil, aturannya seperti ini :

- Dimulai dari baris ke 623, pulsa sebanyak 6x (0v selama 2us , 0,3v selama 32us ) selajutnya dinamakan LONG SYNC
- Setelah itu penanda start vsync 5x (0v selama 32us , 2us untuk level 0,3v) selanjutnya dinamakan SHORT SYNC
- Diakhiri dengan long sync sebanyak 5x
- Tidak semua baris tampil di tabung TV, umumnya tabung kelihatan mulai baris ke 50


Sedangkan untuk VSYNC GENAP, sebagai berikut:

- Dimulai dari baris ke 311, dengan LONG SYNC 5x
- Short Sync 5x
- Diakhiri dengan LONG SYNC 4x
- Beda antara baris yg berdempetan (Ganjil & Genap) adalah 312

nah sekarang kita ingin membuat garis vertikal ....seperti gambar :




programmingnya seperti berikut :



#define F_CPU 16000000UL

#include <avr/io.h>

#include <util/delay.h>

#define SYNC  PORTB=0

#define ABU   PORTB=0b10

#define ITEM  PORTB=0b01

#define PUTIH PORTB=0b11


int line;
void hsync(void)
  //sync  
   SYNC;
   _delay_us(4);
   ITEM
   _delay_us(8); 

   if(line == 50 || line == 100 || line == 150|| line == 200 || line == 250) ITEM
   else  ABU;  
   _delay_us(50);
line++;
}

void vsync(uint8_t ganjilgenap)
{
uint8_t a,b;
if(ganjilgenap == 0) b=6;
else b=5;
for(a=0; a<b ; a++) //6x atau 5x long sync
{
SYNC;
_delay_us(2);

PORTB=1;
_delay_us(30);
}
for(a=0; a<5 ; a++) //5x short sync
{
SYNC;
_delay_us(30);

PORTB=1;
_delay_us(2);
}

if(ganjilgenap == 0) b=5;
else b=4;
for(a=0; a<b ; a++) //5x atau 4x long sync
{

SYNC;
_delay_us(2);
PORTB=1;

_delay_us(30);
}

if(ganjilgenap == 0) line=5;
else line=317;
}
int main(void)
{  
  line=622;
  //Inisialisasi port input

   DDRB =0b11;  
   while(1)
   {   
   if(line == 622) vsync(0);  //genap
   else if(line == 310) vsync(1); //ganjil

   else hsync();

   }
}

selanjutnya dengan penggabungan antara VSYNC dan HSYNC kita bisa menggambar diatas TV, tentunya dengan keterbatasan timing dari AVR, susah juga kadang menemukan timing yg pas. dengan menggunakan delay.h tidak bisa dijamin delay yg bener sebab tiap perintah /syntax dari GCC memerlukan waktu eksekusi yg memakan waktu juga . begitu pula dengan menggunakan counter interrupt, timing nya terbatas untuk interupt yg pas digunakan, sebab jika CTC 1us maka hampir semua program didominasi oleh interupt timer.

kalo yg kayak gini mau ? 



kalo mau...contact aja aku ... atau mau lanjut ke part ke 3
Share:

Sabtu, 02 Juni 2012

BERMAIN DENGAN TV ... PART#1


sebenernya sudah sejak dulu pengen maenin AVR buat bikin karakter di TV. Baru kesampean sekarang dan ubek-ubek google aku baca2 di mari: http://www.rickard.gunee.com/project.../pic/howto.php

nah...ternyata tidak segampang yg ku kira, banyak teory analog yg mesti dikuasai. Salut deh buat yg pertama ngerancang TV ..trus yg pertama bikin VIDEO GAME otaknya pasti tokcer banget .

sebelum ke skematik dan listing, kita perhatikan dulu bagaimana gambar TV (PAL) itu terbentuk. Gambarannya seperti berikut :



gambar di scan oleh electron secara bergantian per baris, ganjil dulu baru baris genap ( kelembaman mata membuat terlihat sebagai gambar)  dengan total scanline 625 untuk PAL. 






Dari sebuah raster sebesar 64us, 4 us pertama sinyal berupa 0v, 8 us kemudian ada jeda (biasanya untuk colorbust) sinyal 0,3v (black blank level). selanjutnya sisanya 58us merupakan data gambar. beruntung sekali level dari sinyal composite maksimal 1 V (warna putih), sehingga dengan pembagian resistor sederhana dapat di peroleh level hitam dan putih hanya dengan menggunakan 2 buah resistor












dan...percobaan pertama adalah membuat gambar seperti ini :



jadi dikiri bikin kotak abu2, ditengah garis item, di kanan kotak putih


Kita rangkai AVR ATTINY 2313 dengan PORT B0 disambung ke R 1K dan PORT B1 menuju resistor 470ohm , seperti gambar diatas. Ujung kedia resistor menuju ke port composite / AVin dari tv. Clock yg digunakan xtal 16MHz - 20MHz




klik untuk lebih jelas

SCRIPT :


#define F_CPU 16000000UL  //clock xtal
#include <avr/io.h>
#include <util/delay.h>

#define SYNC  PORTB=0
#define ABU   PORTB=0b10
#define ITEM  PORTB=0b01
#define PUTIH PORTB=0b11



int main(void)

{  
   //Inisialisasi port yg digunakan
   DDRB =0b11;  
   while(1)
   {   

  //sync  horiz 
   SYNC;
   _delay_us(4);

 // blanking
   ITEM;
  _delay_us(8);  

   ITEM;
   _delay_us(5);
   ABU;
  _delay_us(20);
   ITEM;
  _delay_us(1);
   PUTIH;
   _delay_us(20);
   ITEM;
  _delay_us(7);    

 }


}


Dengan merubah dikit..dikit, terutama di susunan delay dari raster kita dapat membikin gambar seperti ini :




bersambung ke part ke 2
Share:

Kamis, 24 Mei 2012

Kontrol Suhu dan Kelembaban

DIJUAL
KONTROL SUHU & KELEMBABAN


Cocok untuk kontrol tetas telur, inkubator, greenhouse, pertanian jamur, rumah walet dsb


VERSI LCD 




DENGAN DATA LOGGER ke PC



jadi data-data suhu & kelembaban bisa disimpan ke PC/Laptop untuk diolah menjadi berbagai keperluan (*harga khusus)

VERSI 7 SEGMEN



VERSI PCB , BISA DIRAKIT DI ALAT LAIN





PRINSIP KERJA:



1. Sensor akan mengambil suhu + kelembaban dari suatu ruangan/kandang
2. Pengguna melakukan setting range suhu + kelembaban yg diinginkan
3. Jika suhu kurang dari range, maka relay akan diaktifkan dan menghidupkan pemanas yg digunakan , semisal bola lampu , jika melebihi range maka relay akan memutus pemanas.
4. Untuk kelembaban prinsipnya sama dengan suhu, tetapi relay akan memutus blower udara/sprinkler air
5. Alat mengambil data tiap 10 detik
6. Untuk pertanian jamur, prinsip suhu terbalik sebab memerlukan suhu yg dingin ( mengaktifkan pendingin )



CONTOH PENGGUNAAN :


Hatchery Burung





HASIL TETAS TELOR BEBEK 80 % di PETERNAKAN DAERAH BOGOR












HARGA :


750 ribu untuk suhu + kelembaban
900 ribu untuk versi LCD


KOK MAHAL YA ?

Alat ini menggunakan sensor yang paten buatan amerika , dijamin pengukuran akurat ...


ADA VERSI MURAH ?

untuk pengontrolan SUHU saja berbasis LM35 dan 7 Segment Display harga hanya 200ribu saja






WAKTU PENGERJAAN :




Max 1 minggu 











HUBUNGI KAMI :




HP: 081331339072
Mail : ahocool@gmail.com
ym :ahokleng
twiter: @ahocool
lokasi: SURABAYA
Share:

Senin, 21 Mei 2012

Catatan Penting Mengenai AVRISP MK-II Programmer


Ada yang khusus dari programer jenis AVRISP MK-2 yg terbaru, dimana instalasi drivernya langsung dari AVR STUDIO 4 versi 4.19 keatas. Jadi Instal AVR STUDIO sampai selesai dulu (sampe ada instalasi jungo usb). Setelah itu baru ditancapkan programmer ke port USB PC dan diberi tegangan supply. Jika instalasi benar, maka LED merah dari programmer akan menyala jika di hubungkan ke PC


(klik biar tambah jelas)


“GUNAKAN CLOCK PROGRAMMING MODE dan TARGET SETING = 6.478 KHz”


Setelah beberapa kali terjadi kesalahan, maka didapatkan kesimpulan bahwa setting dari  programming mode harus kecil saja.



(klik biar tambah jelas)

AVR STUDIO versi 4.19 keatas telah memiliki compiler GCC yg terintegrasi (AVR TOOLCHAIN), tetapi sebaiknya tetap menggunakan  WIN AVR , dengan melakukan perubahan di :

 PROJECT ==> CONFIGURATION OPTIONS ==> CUSTOMS OPTIONS 

dan lakukan seting folder AVR-GCC dan Make seperti gambar diatas.


SELAMAT MENCOBA

Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

HP: 081331339072
Mail : ahocool@gmail.com

Site View

Categories

555 (6) 7 segmen (3) adc (4) amplifier (2) analog (10) android (11) antares (3) arduino (14) attiny (1) attiny2313 (17) blog (1) bluetooth (1) cmos (2) crypto (2) dasar (35) display (3) esp8266 (3) gcc (1) iklan (1) infrared (2) Input Output (3) iot (16) jam (6) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (12) komputer (3) komunikasi (1) kontrol (4) lain-lain (8) lcd (2) led (9) led matrix (6) line tracer (1) lm35 (1) memory (1) metal detector (4) microcontroller (55) mikrokontroller (7) mikrotik (5) ninmedia (2) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (39) pcb (2) praktek (2) project (33) proyek (1) python (1) radio (3) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (1) sharing (3) signage (1) sinyal (1) sms (6) software (18) tachometer (2) telepon (7) televisi (73) television (5) transistor (1) troubleshoot (3) tulisan (60) tutorial (78) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika