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, 17 Mei 2013

DHT-11: Sensor suhu dan kelembaban murah meriah

courtesy of : http://www.candrian.gr/index.php/dht-11-one-wire-bus/

Sensor DHT-11 merupakan sensor suhu & kelembaban versi LOW COST dengan hasil yang "cukup". Jika membutuhkan hasil yang lebih stabil maka kita perlu menggunakan sensor buatan sensirion SHT-11 dan seri sejenis.


Spesifikasi:

Supply Voltage: +5 V
Temperature range :0-50 °C error of ± 2 °C
Humidity :20-90% RH ± 5% RH error
Interface: Digital


  



Data bus sensor ini bukan TWI / I2C melainkan bus tersendiri dimana nilai 1 & 0 dibedakan melalui LEBAR PULSA HIGH

sebelum lanjut lebih mendalam, sebaiknya bagi yang belum menguasai penulisan ke LCD agar mempelajarinya disini.


skematik yang kita gunakan adalah sebagai berikut:






Lanjut kita akan bahas scriptnya, tapi hanya dibagian DHT11 nya, untuk detail LCD harap membaca posting sebelumnya (LCD & ADC/termometer LM35 terutama dibagian ITOA)

seperti sumber link diatas , 1 PIN I/O akan berfungsi sebagai Output dan Input bergantian, untuk langkah pertama akan dikirimkan perintah START oleh micro ke DHT 11



jadi kita kirim pulsa Low 18ms dan High 40us, lalu kita tunggu sebentar sampai ada response/jawaban dari DHT 11 berupa pulsa low - high selebar 54us & 80us



setelah itu hasil pengukuran akan dikirimkan sensor menggunakan format 8bit sebanyak 5 kali


scriptnya seperti yang dibawah ini :


void baca_sensor()
{

char dum;  // variabel sementara

suhu=0;
humi=0;
counter=0;

DDRD|=(1<<PD3); //PD3 sebagai output
_delay_ms(250);

PORTD &=~(1<<PD3); // nolkan PD3
_delay_ms(18); //tunggu 18 ms

PORTD |=(1<<PD3); // naikkan PD3
_delay_us(40); //tunggu 40us


DDRD &=~(1<<PD3); //PD3 sebagai input

//tunggu response dari DHT11

while(counter <100)
{
_delay_us(1);
counter++;
if (bit_is_set(PIND, 3)) break;
}

counter=0;

while(counter <100)
{
_delay_us(1);
counter++;
if (bit_is_clear(PIND, 3)) break;
}


//baca data setelah response, lihat script di pembahasan selanjutnya untuk routine hitung()

//8 bit pertama ( puluhan kelembaban )
humi=hitung();
//8 bit kedua( satuan kelembaban ), tidak usah di baca karena nilai selalu 0 untuk DHT11
hitung();
//8 bit ketiga ( puluhan suhu )
suhu=hitung();
//8 bit keempat ( satuan suhu ), tidak usah di baca karena nilai selalu 0 untuk DHT11
hitung();

//8 bit ke 5 tidak perlu dihitung 
//tulis lcd
lcd_gotoxy(9,0);
itoa(suhu,&dum;);
lcd_puts(&dum;);

lcd_gotoxy(9,1);
itoa(humi,&dum;);
lcd_puts(&dum;);



}
pada script diatas ada trick menggunakan variabel counter dan delay 1us, ini cara yg paling gampang dan menyederhanakan proses counter terhadap lebar pulsa
Setiap bit yang dikirim dimulai sinyal Low sepanjang 54uS , kemudian dikuti 24uS sampai 70uS sesuai bit yang diwakilinya. 
Bit '0' : ~54uS Low  kemudian ~24uS High
Bit '1' : ~54uS Low kemudian ~70uS High

Pada akhir paket data yg diberikan oleh DHT-11 akan muncul sinyal Low sepanjang 54uS dan kemudian bus menjadi high selamanya dan masuk ke sleep mode.

Script berikut menyederhanakan perhitungan dengan trick counter dan delay, dimana jika counter melebihi 24 , maka kita anggap nilainya 1 dan sebaliknya

uint8_t hitung(void)
{

uint8_t a,counter,hasil;

counter=0;
hasil=0;

for (a=8;a>0;a--) // 8 kali tiap perhitungan
{


while(counter <100) // deteksi saat LOW ( tidak ada perhitungan)
{
_delay_us(1);
counter++;
if (bit_is_set(PIND, 3)) break; //tunggu sampai high dan keluar loop
}

counter=0;

while(counter <100)
{
_delay_us(1);
counter++; // counter mendeteksi lebar pulsa
if (bit_is_clear(PIND, 3)) break; //jika low maka keluar dari loop
}

// perhitungan 8 bit decimal dengan geser-geser bit
//jika lebih 25us =1 , kurang < 25 us = 0
 
if(counter > 25) hasil += (1 << (a-1)) ; 

counter=0;

}

return hasil;


}

mudah bukan ? dan hasilnya lumayan mengecewakan jika dibanding dengan sensor yg paten sekelas SHT 11



SELAMAT MENCOBA



Share:

Rabu, 15 Mei 2013

TUTORIAL : Memanfaatkan ICP (INPUT CAPTURE PIN) sebagai penghitung lebar pulsa

parallax-ping-ultrasonic-sensor-large.jpg (552×348)


Berawal ketika mendapatkan sensor ultrasonic untuk ranging/deteksi jarak, jenis Ping)) (buatan paralax) dan berdasarkan datasheet diketahui bahwa sensor memiliki response terhadap jarak setelah diberikan trigger seperti gambar dibawah ini :



Setelah sinyal mendapatkan perintah melalui pulsa 10us pada pin SIG kemudian bagian Transmit dari ping)) akan mengeluarkan sinyal burst 20us dengan frekuensi 40khz, dan ketika mendapatkan halangan sebuah benda didepannya maka suara ultrasonic ini akan dipantulkan kembali dan kemudian dapat dibaca oleh sensor penerima ultrasonic.Penghitungan jarak berbanding terbalik dengan lama sinyal echo atau pantulan yang ditangkap oleh sensor, sehingga kita perlu menghitung lebar pulsa yang diterima balik oleh penerima ultrasonik.

Salah satu fungsi yang digunakan adalah fasilitas INPUT CAPTURE PIN (ICP) yang selalu dimiliki oleh fasilitas counter dari AVR. Maksudnya ICP adalah pin ini akan menangkap (melalui interupt) perubahan logic yg diberikan kepadanya. Saat capture terjadi maka sebuah register yaitu ICR akan mengambil timestamp dari sebuah timer yang sedang berjalan yaitu pada register TCNT . Prescaller dari timer masih berfungsi seperti halnya pada tutorial mengenai timer

Untuk mencobanya, perhatikan PIN dari ATTINY2313 berikut :



ICP berada paka pin no 11 (PD6) dan dapat dihubungkan menjadi input dari suatu frekuensi / sinyal pulsa TTL yang akan diukur. Permasalahannya adalah ketika ICP hanya mendeteksi satu sisi perubahan logic yaitu rising (0-1) atau falling (1-0) . Cara yang biasa dilakukan untuk mendapatkan frekuensi dari sinyal :

1. Mendeteksi 2 buah timestamp dan kemudian mencari selisihnya
2. Memanfaatkan pin INT (external interupt) sebagai pendeteksi edge yang arahnya berlawanan dengan ICP

sebelumnya kita akan memanfaatkan LCD 16x2 sebagai output dan tombol sebagai input pulsa yang akan kita baca lebarnya. Perhatikan terlebih dahulu tutorial menulis di LCD karena output akan kita tulis di LCD.




scriptnya seperti ini, kita akan membaca lebar dari ICP pada counter 16bit, dimana nilai yg muncul adalah 0-65335 , dimana tiap angka mewakili :

tick dari TCNT = 1 / (frekuensi xtal / prescaler) = prescaler / frek xtal

Code:
/* ====================

ICP TEST

ATTINY2313

ahocool@gmail.com

www.aisi555.com

=====================*/



#define F_CPU 4000000UL //frek xtal

#include <avr/io.h>

#include <avr/interrupt.h>

#include <string.h>

#include <util/delay.h>

#include "lcd.h" //baca dulu tutorial menulis di LCD



//variabel tulisan

char text1[]= "   LEBAR PULSA";

char text2[]= "     START      ";

char clear[]= "                ";



//fungsi sederhana untuk merubah angka ke ASCII

void reverse(char s[]) 

{ 

   int c, i, j; 

    

   for (i = 0, j = strlen(s)-1; i < j; i++, j--){ 

      c = s[i]; 

      s[i] = s[j]; 

      s[j] = c; 

   } 

} 

void itoa(uint16_t n, char s[]) 

{ 

   uint16_t i, sign; 

    

   if ((sign = n) < 0) // record sign 

      n = -n;         // make n positive 

   i = 0; 

   do {   // generate digits in reverse order 

      s[i++] = n % 10 + '0'; // get next digit 

   } while ((n /= 10) > 0); // delete it 

   if (sign < 0) 

      s[i++] = '-'; 

   s[i] = '\0'; // add null terminator for string 

   reverse(s); 

}  



//tulis menulis di LCD , kreasi sendiri oprekan pfleury library

void tulis(uint8_t pos,uint8_t posx,uint8_t posy,uint16_t tulisan)



{ 

char dum;



if(pos == 1) lcd_gotoxy(posx,posy);

itoa(tulisan,&dum);

lcd_puts(&dum);



}



//saat capture terjadi

ISR(TIMER1_CAPT_vect) 

{ 

   

   uint16_t capture;

   capture = ICR1; //pindahkan nilai hasil capture

   lcd_gotoxy(0,1);

   lcd_puts(clear);

   tulis(1,0,1,capture);  //hasil capture BCD tulis di LCD



//yang dibawah ini gunakan jika ingin menampilkan detik sebenarnya

//hilangkan yg diatas dan buka blok yg dibawah jika mau

/*    tulis(0,1,1,(capture / 62500) ); 

  lcd_putc(',');

   tulis(0,6,1,(capture % 62500) ); 

   lcd_puts(" detik");

*/

}



//pendeteksi edge logic yang lainnya 

SIGNAL (SIG_INT0)

{



 TIFR |= (1<<ICF1); //clear interrupt-flag

 TCNT1=0;

 lcd_gotoxy(0,1);

 lcd_puts(text2);

}



int main(void)

{



//PIN OUTPUT ke LCD    , liat skematik

DDRD  |= (1<<PD4)|(1<<PD5)|(1<<PD3); 

DDRB  |= (1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3);



//Input tombol paralel di ICP dan INT0

  

//yang ini menyatakan kalau INT0 akan mendeteksi ketika pulsa turun



   MCUCR |= (1<<ISC01) ; // faling edge

   GIMSK |= (1<<INT0);



//yang ini menyatakan kalau ICP akan mendeteksi ketika pulsa naik  

//silahkan baca di datasheet ..lengkap broo

 

   TIMSK |=(1<<ICIE1); //enable input capture interrupt 

   TCCR1B |=(1<<ICNC1)|(1<<ICES1)|(1<<CS11)|(1<<CS10); 



//Noise canceller, with 64 prescaler , rising edge icp



 sei();//hidupkan interupt



lcd_init(LCD_DISP_ON);

lcd_gotoxy(0,0);

lcd_puts(text1);



while(1)



{

}



return 0;

}




Mudah bukan ? selanjutnya penjelasan diatas dapat digunakan ke applikasi penghitung frekuensi, phase sinyal dan  membaca ranging dari sensor pengukur jarak ultrasonic seperti PING)))





Share:

Jumat, 10 Mei 2013

Komputer 8-bit: Revolusi berawal dari microprocessor



Pada tulisan sebelumnya kita dapat merunut kembali awal dari dunia komputer dimulai dari penciptaan IC dan microchip oleh Bob Noyce dan kawan-kawan yang kemudian mendirikan Intel. Dari sinilah sebenarnya revoulusi bermula, ketika para engineer berhasil mengkreasikan rangkaian logic yang tersusun pada prosessor komputer jaman itu menjadi sebuah rangkaian logic ukuran micro ( 10 pangkat minus 6) yang memiliki kekuatan komputasi yang tidak berbeda. Para engineer ini menyadari suatu saat akan ada engineer jenius lainnya diluar sana yang akan mengetahui cara menggunakan dan kekuatan microprosessor ini.

Intel mengeluarkan microprosessor 4bit 4004 dan kemudian 8 bit 8080 pada awal tahun 70an, disusul dengan MOS (pecahan motorola) yang berkreasi dengan versi 6800/6502 dengan harga lebih murah. Inilah ic microprocessor yang dapat dikatakan pioneer dijamannya diawal era 70an. IC ini tidak dapat melakukan apa-apa sebelum dirakit dan perintah berupa bahasa mesin diberikan kedalamnya. Tiap microprocessor memiliki opcode dan instruction set tersendiri yang merupakan bahasa mesin dari tiap perintah yang oleh pengguna ingin diberikan kepadanya. Disinilah timbul keterkaitan antara para desainer IC dengan para desainer system komputerdimana mereka memiliki mimpi yang sama padahal tidak berhubungan secara langsung.

opcode / bahasa mesin dari datasheet MOS 6502


Dan benar saja ALTAIR 6800 membuka segalanya dengan KIT komputer micro mereka yang memiliki sebuah rancang bangun minimal (minimum system) . Rancang bangun minimum system sebuah komputer adalah memiliki sebuah otak yang bernama microprocessor, sebuah tempat penyimpanan data-data sementara yang bernama RAM, kemudian memiliki juga kontrol Input-Output dan sebagai tambahan diberikan ROM sebagai penyimpan data program yang akan dibaca saat menghidupkan komputer.

Minimum system dari sebuah komputer mini


Janganlah dikira ini mudah sebelum para jenius dibidang software membuat bahasa pemrograman. Benar saja, semua perintah yang diberikan kedalam microprocessor harus diberikan melalui kode binner - hexa kedalam microprocessor, seperti halnya perintah pertama yang diberikan oleh steve wozniak kedalam komputer apple 1 nya (dicuplik dari manual komputer APPLE 1 yang bisa diunduh disini)




Lihatlah kode perintah pada petunjuk kedua (SECOND) dimana yang dimasukkan adalah kode opcode untuk memerintahkan komputer APPLE 1 menampilkan karakter ascii secara terus menerus pada layar TV. Begitu susahnya dan hanya orang yang mengetahui opcode yang benarlah yang dapat menjalankan suatu program pada komputer jaman "batu" ini. Sampai muncullah intrepreter bahasa pemrograman BASIC yang dibuat oleh bill gate pada komputer ALTAIR dan kemudian diterapkan oleh steve wozniak pada komputer APPLE. Tentu saja setelah itu para engineer yang bergerak dibidang software menjadi lebih tertarik untuk membuat software-software yang menarik, game yang asyik dan berbagai jenis aplikasi yang tidak terbatas oleh kemampuan otak manusia.

Berikut ini sebuah video youtube yang menampilkan acara komputer "BIT AND BYTES" episode pertama yang akan menggambarkan generasi komputer 8bit pertama dan bagaimana primitif nya komputer yang mereka pakai. Dan jangan ketawa, karena itulah awal dari segala kemajuan teknologi komputer saat ini. Tanpa mereka maka iphone yang kalian pegang tidak akan pernah ada !!



Share:

Rabu, 08 Mei 2013

Komputer 8-bit : Revolusi yang berhasil membawa komputer ke "rumah"


Adalah mimpi dari beberapa penghobi elektronika yang tergabung pada club "HOMEBREW COMPUTER CLUB" di palo alto - california (yang kemudian menjadi silicon valley), mimpi itu adalah membawa komputer yang segede rumah dan hanya dimiliki oleh korporasi besar menjadi dapat dibawa kerumah. Hanya sebuah mimpi ketika suatu artikel pada majalah popular electronics ditampilkan pembahasan KIT elektronika yang dapat dibeli dan kemudian dirakit sebagai "Komputer 8-bit". Ketika pertemuan mingguan para kutu buku itu menjadi sangat riuh karena semua membicarakan tentang KIT ALTAIR 8800 buatan MITS pada tahun 1975. Mulailah mereka mendapatkan gambaran mimpi mengenai komputer rumah, walau hanya dapat mengerjakan program  dengan input berupa tombol toogle dan output berupa LED merah berjejer, tapi itulah komputer 8 bit pertama yang dapat menjalankan perintah berdasarkan bahasa pemrograman mesin seperti halnya komputer mainframe yang biasanya dapat disewa secara time-sharing terminal.




Saat itu seorang jenius bernama steve wozniak sedang mengerjakan beberapa proyek kalkulator di perusahaannya yaitu HP, atas bujukan steve job yang bekerja di perusahaan game ATARI mengajaknya untuk menjawab tantangan bos ATARI (yang pada saat itu ngetop dengan game PONG) untuk membuat game serupa pong yang bernama breakout, dengan tantangan merancang hardware dengan jumlah IC kurang dari 50. Saat itu steve wozniak memang sedang tertarik dengan game pong dan dia berhasil membuatnya sendiri pada pesawat TV dirumahnya dan kemudian berhasil membuat game breakout dengan ic yang kurang dari 50 buah. Woz juga (yang kemudian memiliki patent tentang menulis karakter di TV) berkreasi untuk membuat sebuah terminal yang dapat menghubungkan ARPANET (cikal bakal internet) via modem dengan pesawat televisi dan sebuah keyboard ASCII.


Sampailah berita bahwa ada seorang programmer bernama Bill Gates yang membuat bahasa BASIC pada ALTAIR dan mempersingkat proses pemrogramannya. Woz yang saat itu melihatnya mendapatkan sebuah ide brilian untuk menggabungkan alat terminal arpanet nya ke dalam sebuah komputer 8bit. Dan berkutatlah dia siang malam untuk membuat komputer pertama (yang memiliki keyboard dan layar monitor) dan steve jobs bertugas untuk menjualnya di toko elektronik. Awalnya mereka hanya menjual pada beberapa orang akan tetapi belum berbentuk rakitan, hanya berupa PCB tersolder yang kemudian oleh penjual ditoko diberikan power suply dan kotak / box yang terbuat dari kayu atau ada yang menaruhnya di dalam tas koper.


"Ini bisa dijual" kata steve jobs, tapi steve yang satunya mengatakan "belum sempurna". Dan memang akhirnya woz berhasil menyempurnakannya menjadi sebuah komputer "color" yang tak ada tandingannya saat itu yaitu APPLE II. Wah ...mereka kaya...steve jobs yang berjiwa bisnis berhasil mendatangkan investor, woz merancang software dasar dan 5 tahun kemudian APPLE INC menjadi perusahaan FORTUNE 500 dengan harga saham yang terus merangkak naik. Luar biasa ...





Apple II merupakan komputer 8 bit pertama dambaan setiap orang pada masanya. Dengan bundling software yang sangat revolusioner yaitu VISICALC (mbahnya excel - spreadsheet), penjualan bak kacang godog di layar tancap. Walau pesaing bermunculan seperti Commodore PET, Radio shack TRS -80, dan yang paling berat adalah ketika raksasa komputer IBM mengeluarkan IBM PC, tetap saja APPLE II memiliki penjualan yang fantastis sampai akhir era 80-an. 

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