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

Selasa, 24 Juni 2014

[ PROJECT ] Intercom PTT (push to talk) memanfaatkan kit amplifier





INTERCOM ...jadul amat sih boz...kata salah satu teman di kantor saya yg baru. Tapi capek juga kalau mesti turun tangga atau menghabiskan urat tenggorokan 'teriak' kalau ada keperluan mendesak dari lantai 1 ke lantai 2. Masalah yang agak terlalu "gampang" bagi penggemar elektronika...tinggal beli kit intercom atau wireless handy talkie. Ehhh ternyata di toko elektronika sebelah adanya cuman kit preamp mic dan kit amplifier OCL 100 watt. kata yang jualan " Jadul amat mas cari intercom, napa ga pake HP aja ?" ...iya juga sihh..di playstore android ada juga app nya kok dengan search kata kunci "PTT (push to talk)"...masa bodooo...kita ini orang elektronika...solder aja !!




Dan gambar diatas menunjukkan daftar belanjaan kami. Ada kit preamp + mic condenser, kit amplifier, push button DPDT, speaker kecil dan adaptor 12v. Mulailah merangkai dengan sangat gampang , tujuan pertamanya mengetest mic --> preamp --> ampli --> speaker ...setelah tersambung hasilnya mengecewakan, mic condensernya kurang sensitif terhadap suara atau mungkin pre-amp nya kurang gede. Sang arsitek yg bernama deni pun ga kalah akal dengan bimbingan master aisi555 kemudian dimanfaatkanlah speaker sebagai microphone. Kok bisa bos ? ya bisa lah..wong dalemannya mic sama aja dengan speaker.





Bagaimana dengan koneksi dan perkabelan nya ? ya perhatikanlah dengan seksama gambar dibawah ini, warna-warni dari koneksi menunjukkan hubungan yang berbeda dan hanya dibutuhkan 5 buah pasang kabel. Power suply dan bagian preamp/ampli bisa diletakkan dimana saja.

Klik pada gambar dibawah biar tambah jelas





Keterangan:


  • Speaker B dan switchnya di letakkan berjauhan dengan rangkaian utama, menggunakan sambungan 5 kabel ( 12v adaptor, suply 12v ke kit, input Mic preamp, output Amplifier, dan Ground)
  • Hubungkan kabel dengan warna sama dan nama yg sama. Hanya gunakan 1 Baterai/adaptor saja, jangan salah ya ... yg kodenya panah 12V itu nyambung .
  • Tekan switch untuk berbicara didepan speaker, otomatis speaker lawan akan terdengar suara juga



Prinsipnya adalah memanfaatkan switch DPDT untuk memilih speaker apakah sebagai input atau output dan juga memutus arus supply dari adaptor ke pre-amp/amplifier (agar lebih awet). Video demonya dapat dilihat pada video youtube berikut :





Jika alat ini diberikan box yg bagus bisa dipasang di depan gerbang/ pintu disebelah bel pintu sehingga bisa menyapa tamu yang akan berkunjung dan bisa saja mengusir marketing kartu kredit yg iseng ke rumah. Kalau ditambah kamera video kecil bagus juga tuh.


TIPS :

  • Untuk menghasilkan suara lebih jernih tanpa dengung maka pada output adaptor cukup diberi regulator tegangan 78xx (dalam contoh ini 7812), kecuali adaptornya memang sudah bagus outputnya semisal adaptor switching.
  • Switch DPDT seperti contoh yg digunakan aslinya memiliki latch/kunci atau kata lain bukan toggle yg akan kembali setelah di lepas. Jadi modifikasi kawat/besi pengait dengan menariknya dan kemudian cukup diletakkan disamping untuk menjadikannya toggle switch.



SELAMAT MENCOBA !!



.
Share:

Senin, 09 Juni 2014

[Tutorial] 4 Led Matrix dengan Mega8535/16




Bahan-Bahan:


  • ATMega 8535/16/32 
  • 4 buah Led matrix 7x5
  • 3 bh Resistor 10K
  • 2 Tombol tactile switch
  • Breadboard / projectboard
  • Kabel secukupnya



Dasar yg harus dikuasai:

Dasar I/O, Led Matrix Lovehurt ,  Counter/Timer


Skematik :



Klik untuk lebih jelas, baca keterangan pada gambar


Script Jam Led matrix


#define F_CPU 1000000UL //ubah sesuai clock micro
#include <avr/io.h>
#include <util/delay.h>
#include <avr/eeprom.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h> 
#include <string.h>

//ARRAY UNTUK MENYIMPAN DATA ANGKA
const char textset[] PROGMEM  = 
{0x7f, 0x41, 0x7f, //0
0x80, 0x80, 0x7f, //1
0x79, 0x49, 0x4f, //2
0x49, 0x49, 0x7f, //3
0x0f, 0x08, 0x7f, //4
0x4f, 0x49, 0x79, //5
0x7f, 0x49, 0x79, //6
0x01, 0x01, 0x7f, //7
0x7f, 0x49, 0x7f, //8
0x4f, 0x49, 0x7f, //9
};



char titik_dua = 0x14;  // :
char blk = 0x80; // BLANK
char fulltext[22] ; //ARRAY TAMPILAN led matrix
char detik,menit,jam; //variabel jam

void cleartext(void)  // MEMBERSIHKAN datanya menjadi kosong
{  uint8_t i;

     
  for(i=0 ; i <20 ; i++)
    { fulltext[i] = 0 ; }  

}

void ubah_angka(char angka1, char angka2, char angka3, char angka4)
{
//routine mengubah angka waktu ke tampilan led matrix
uint8_t a,b;
//jam
  b=angka1*3;          
  for(a=b; a<b+3; a++) strncat_P(fulltext,&textset[a],1); //spasi
  strncat(fulltext,&blk,1);

  b=angka2*3;          
  for(a=b; a<b+3; a++) strncat_P(fulltext,&textset[a],1);
  strncat(fulltext,&blk,1);   strncat(fulltext,&blk,1);

 // untuk tampilan titik dua berkedip
  if(detik%2 == 0)strncat(fulltext,&titik_dua,1);
  else strncat(fulltext,&blk,1);
  
  strncat(fulltext,&blk,1);   strncat(fulltext,&blk,1);

//menit
  b=angka3*3;          
  for(a=b; a<b+3; a++) strncat_P(fulltext,&textset[a],1); 
  strncat(fulltext,&blk,1);

  b=angka4*3;          
  for(a=b; a<b+3; a++) strncat_P(fulltext,&textset[a],1);

 
}


//routine untuk scanning & menulis ke led matrix
void tulis_text(void)
{
uint8_t a;
int b,speed;

a=0;
speed=5;//UBAH NILAI speed sesuai kedip dan kecerahan yg diinginkan



while(a<21)

 {


for(b=0;b<speed;b++ ) 
{
   
if(a<8 ) 

{

PORTD = ~(1<<a) ;
PORTC =0b11111111;
PORTB =0b1111;

}
 
 else if(a>=8 && a<16)
{
   
   PORTC = ~(1<<(a-8)) ;
PORTD =0b11111111;
PORTB =0b1111;

}
else if(a>=16 && a<21)
{
   
   PORTB = ~(1<<(a-16)) ;
PORTD =0b11111111;
PORTC =0b11111111;

}

PORTA=fulltext[a];
_delay_us(50);   

   PORTA=0x80;  //biar tidak berbayang


 }

a++;
 } 


  
 }


ISR(TIMER1_COMPA_vect) //vector interupt untuk 1/2 detik

{ 
detik++; //dibuat 1/2 detik agar mudah menampilkan : kedap kedip

if(detik==120) // 1 menit
  {
     menit++;

 if(menit==60) //1 jam
 {
   jam++;

if(jam==24)jam=0; // 1 hari

       menit=0;
     }
    detik=0;
} 


cleartext();
ubah_angka(jam/10, jam%10, menit/10, menit%10); //tampilkan


}


void init_timer(void)
{

 TCCR1B |= (1 << CS11)|(1 << CS10); // Set up counter dengan prescale 64
  //Baca datasheet untuk mencari konfigurasi prescaler micro yg sesuai
  TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode       
  TIMSK |= (1 << OCIE1A); // Enable CTC interrupt
  OCR1A = 7812; // nilai atas dari TCNT1, untuk perhitungan 1 detik

sei();   //hidupkan interupt


}
int main(void)
{
//bagian ini sesuaikan dengan port micro yg kamu gunakan
 DDRA = 0b11111111; // portA = data text dot matrix
 DDRC = 0b11111111; //scanning kolom
 DDRD = 0b11111111; //scanning kolom
 DDRB = 0b11001111; //scaning, PB5 & PB4 sebagai tombol
 
jam = 10; 
menit = 23;

init_timer();

while(1)
 {
    tulis_text();

  //ini untuk pembacaan tombol  
if (bit_is_clear(PINB, PINB4)) // membaca tombol jika port input B#4 di clear LOW / 0 
        {
         
           menit++;
           if(menit>=60) menit=0;
          _delay_ms(200);

        }
    
if (bit_is_clear(PINB, PINB5)) // membaca tombol jika port input B#5 di clear LOW / 0 

        {
         
            jam++;
            if(jam>=24) jam=0;
            _delay_ms(200);

        }


 }

return 0;
}



Hasil







SELAMAT MENCOBA 



.
Share:

Minggu, 08 Juni 2014

Dukun Fusebit Mengalahkan Fusebit Doctor !


Pernah mengalami masalah ic tidak response setelah mengubah fusebit clock pada microcontroler AVR ? 
Anda lupa clock yg digunakan atau Xtal yang akan disolder entah kemana ?
Duit cekak di penghujung bulan sementara tugas sudah deadline ?



DUKUN FUSEBIT AKAN MEMBANTU ANDA !



Anda tidak perlu menggunakan Fusebit Doctor yg dijual dipasaran atau rangkaian njlimet lainnya




Cukup Menggunakan Praktek dasar timer 555 yang ada disini



Dengan Menggunakan Rumus  Frequency = 1.44 / [C*(R2 + 2*R1)] 
Maka buatlah clock dengan frekuensi 500khz- 1Mhz dan hubungkan dengan kaki output (3) dari timer 555 menuju  XTAL1 pada ic microcontroller AVR anda.



Putar-putar VR/ Trimpot sehingga memiliki resistansi berkisar 20k - 30 k ohm dan hubungkan avr ke isp programmer seperti biasa ( disarankan menggunakan stk500/avrisk mk2, rangkai micro seperti biasa dan jangan lupa di beri vcc/gnd/pull up di rst). Jika Read signature berhasil maka lakukan perubahan Fusebit seperti biasa (ubah ke default internal RC saja)

Contoh ubah fusebit di avrstudio 4



Syarat dan ketentuan:

  • IC microcontroller dalam keadaan BAIK, hanya fusebit clock nya saja yg salah atau lupa
  • Port SPI masih dalam posisi ENABLE, jika tidak maka perlu HVPP (high Voltage Parallel Programming) atau menggunakan universal programmer (All-7/All-100) yg biasanya ada di toko yg melayani pengisian EEPROM Player DVD/TV




TUNGGU APALAGI ... 
SELAMAT MENCOBA !!
Share:

Sabtu, 29 Maret 2014

Elektronika Untuk Anak - Jurang Generasi Orangtua vs Anak



Senangnya melihat anak-anak ini meluangkan waktu dengan robot lego (walau berharga jutaan rupiah), si ortu pun jadi terkurangi bebannya karena anak-anak bisa menghabiskan waktu dengan lebih baik daripada menonton acara alay di tv. Salah satu teman penulis yg mempunyai 2 orang anak SD baru saja pulang dari jalan-jalan ke luar negeri dan membawakan oleh-oleh anaknya berupa robot rakitan. Dan karena kebingungan harus memulai darimana dan takut kalau mainan yang mahal ini nantinya rusak, akhirnya di kontaklah penulis dan ditodong untuk mengajarkan anaknya bagaimana cara bermain-main dengan robot ini. Tentunya bagi penulis sangat mudah karena sudah tersedia software bawaan yg cukup mudah dengan GUI yg sangat interaktif. Dan apa yg terjadi dengan si anak ? yahh karena tanpa tantangan yang berarti dalam 1 minggu mainan robot yang mahal itu hanya menjadi pajangan di lemari.


Teringat pada jaman dulu ketika penulis masih kecil di tahun 80-an, mungkin mainan dengan pelepah pisang adalah favorit penulis walau akhirnya di ujung SD lebih tertarik dengan warna warni LED, tapi tetap saja lebih asyik bermain perang-perangan bersama teman. Begitu juga dengan teman penulis yang ceritakan diatas juga menghabiskan masa kecil tahun 80-90 an dengan bermain gundu/neker/kelereng sampai dikatakan menjadi juragan gundu karena punya 1 kaleng biskuit yang berisi ratusan gundu. 



Bagaimana dengan dunia elektronika jaman 80-90an ? Seingat penulis, Indonesia pada jaman itu hanya berkutat di dunia audio dan radio (walau mungkin di lingkungan kampus era digital mulai ramai), dengan pengalaman penulis yang berlomba dengan teman sekelas untuk merakit amplifier OCL 150 watt dan mencobanya ke speaker segede gaban sampai transistor Jengkol 2N3055 mengeluarkan asap! Bagi yang mempunyai uang lebih dan kurang hobby menyolder biasanya memiliki radio break (HT/ CB) atau mungkin kalo didesa terpencil bisa tetap bercuap-cuap juga (bisa disebut moyangnya whatsapp ) menggunakan intercom dengan kabel kawat yg di bentangkan di sekeliling desa. 



Jadi dapat dibayangkan kesenjangan antara orang tua dan anak dan hal ini bisa menjadi sangat menjengkelkan bagi kedua pihak. Sang ayah masih terbayang-bayang dengan masa kecil yang hanya menunggu hari minggu pagi untuk menonton si unyil atau kartun polisi akademi, sedangkan sang anak termanjakan dengan gadget , game console, komputer dan internet yang dapat dinikmati kapan saja. Hobby elektronika pun menjadi relatif mahal dengan munculnya modul siap pakai atau robot rakitan yang  bagi beberapa orang  demi prinsip "sayang anak" akhirnya dituruti juga . 

** gambar wajah sengaja di tutup sesuai UU perlindungan anak


Berbagai prestasi "semu" dari anak-anak SD dalam hal elektronika banyak diekspose media, seperti anak SD pencipta robot , juara lomba line follower dan sebagainya. Umumnya judul berita akan dibuat hiperbola dan sedikit miris karena kalau dipikir anak SD tentu belum menguasai prinsip elektronika secara baik dan guru pembimbinglah yang lebih berperan. Lalu apakah ini salah ? Tidak ! yang salah adalah ketika guru menuntut anak didik yang terlalu berlebihan dan cenderung agak "berbohong" dengan mengatakan bahwa ini adalah kreasi ciptaan mereka. Sebaiknya (menurut pendapat penulis) tetap diberikan porsi kejujuran dengan menjelaskan bahwa anak-anak ini merakit, memprogram dan menjalankan kreasi mereka dengan bantuan guru dan diingat siswa hanya sebagai peserta lomba merakit , bukan menciptakan ! 



Seiring dengan bertambahnya umur maka kemampuan anak akan berkembang. Pada usia SD sebaiknya dimulai dengan bermain LED menggunakan IC diskrit semacam 555 + 4017 dan ini pas buat mereka. Jika ini kurang menarik cobalah orang tua mengajak anak berkreasi dengan kombinasi input dan output semisal sensor sederhana dengan limit switch yg akan mengeluarkan suara sirene atau lampu alarm kedap-kedip (Flip Flop) saat jendela terbuka. Sesuatu yg bergerak akan sangat disenangi oleh anak-anak semisal menambahkan lampu LED + sirene pada  mobil-mobilan atau pada sepeda yang anak miliki. 

Ketika sudah mencapai umur SMP-SMA ini adalah saat yg tepat untuk mengajarkan elektronika yang sudah lumayan maju. Walau penulis sangat benci dengan modul siap pakai tapi kenyataannya modul ini dapat juga menjadi "penolong" agar anak-anak tidak menjadi cepat bosan. Microcontroller sekelas AVR dan arduino cukup menjadi awal menuju ke elektronika digital jaman sekarang. Mungkin ortu yg jadul dengan IC TTL/CMOS nya dapat juga menyelipkan ilmu-ilmu lawas agar anak-anak menjadi lengkap ilmunya. Ingat bahwa anak jaman sekarang lebih gampang menyerap hal baru sehingga jangan heran mereka akan cepat bosan jika kurang tantangannya . Yah mau bagaimana lagi karena pilihan yg dimiliki anak jaman sekarang jauh lebih beragam daripada jaman 80-an ketika hanya beberapa pilihan dan itupun sudah dianggap seru sekali !


Ketika beranjak kuliah semua hal dapat terjadi bagi sang anak, mungkin dia akan menjadi pengejar wanita atau kutu buku tapi hal ini bisa dianggap sebagai perkembangan yg wajar selama masih menghargai norma -norma. Satu hal yg mungkin akan berguna bagi mereka adalah nilai " kejujuran " karena tidak jarang peserta lomba robotika di tingkat universitas lebih memalukan daripada lomba line follower tingkat SD. Tidak perlu saya sebutkan siapa yang pernah melakukan ini tapi pada intinya tetap uang yang berbicara. Siapa yg bisa belanja motor dan kontrol yg lebih mahal biasanya akan juara ! Mungkin hanya keberuntungan akan mengalahkan robot "berduit". Sekali lagi ini sah-sah saja karena kita sadar hidup di lingkungan yang seperti tidak sadar bahwa hal ini akan merusak nasib bangsa. "Toh nantinya lulus kebanyakan jadi makelar produk buatan zhensen atau beijing, bisa kaya kok !" ....tidak bermaksud menjadi sok suci, tapi kapan lagi ada sebuah lomba robot dengan tingkat komponen lokal 100 % ? Haruskah anak kita membuat mainan senapan dari pelepah pisang yang diimpor dari malaysia ?

Tentunya tulisan ini merupakan isi hati dari penulis yang mungkin saja berseberangan dengan pendapat pembaca. Jika  YA berkeberatan silahkan diskusi sehat dimulai di bagian komentar dibawah. Semoga kita dapat nyambung (terutama dalam hobby elektronika) dengan anak-anak dan menjadikan hubungan ortu-anak menjadi lebih berkualitas.



-=ditulis di STO Tandes Surabaya=-

Share:

Selasa, 18 Maret 2014

[TUTORIAL] Clinometer (pengukur ketinggian) Sederhana Memanfaatkan ADC




Persiapan sebelum memulai project :

  • Tutorial ADC dapat dibaca disini
  • Dasar menulis ke LCD dapat dilihat disini

Bahan-bahan yang dibutuhkan :
  • Minimum System / ATmega 8535/ ATmega 16
  • Display LCD 16 x 2 
  • Potensiometer linear (nickel) 10K ohm(2 buah)
  • Resistor 1K (2 buah)

Project ini adalah request dari anak SMA yang mendapatkan tugas matematika dimana gurunya cukup "Gila" untuk menantang anak didiknya membuat alat clinometer atau pengukur ketinggian. Sang murid mencari di google dan didapatkan rangkaian yg menggunakan acelerometer tapi kendalanya harga yang mahal dan dia pun kesulitan mengerjakannya. Solusi saya cukup sederhana dengan memanfaatkan putaran sudut yg dikonversikan ke putaran potensiometer (variable resistor) yang kemudian dirubah ke dalam level tegangan dan dibaca ADC.


Gambar diatas merupakan ilustrasi trigonometri dari sebuah clinometer dengan mencoba memanfaatkan rumus trigonometri. Keuntungan rumus diatas adalah tidak perlu menentukan jarak pengamat ke benda yang diukur,akan tetapi karena mengandalkan rumus tangen maka dari grafik tangen berikut terjadi sedikit anomali pengukuran jika sudut mendekati kelipatan 90 derajat, dimana tangent 90 adalah tak berhingga !.

grafik tangen yang tidak linear sedikit mempengaruhi keakuratan


Pemilihan potensiometer yang akan digunakan sebagai penerjemah dari sudut ke tegangan (menggunakan prinsip pembagian tegangan) juga perlu diperhatikan karena pada umumnya potentiometer yg dijual dipasaran adalah potentiometer audio yg bersifat logaritmik. Jadi potentiometer yang dipilih adalah berjenis "wire wound" atau yang umum di pasaran bernama "potensiometer nikel".



Output dari project kali ini menggunakan lcd 16x2 yang akan menampilkan nilai sudut alpha, beta dan nilai hasil pengukuran ketinggian.



Perputaran sudut pengukuran vs tegangan yg dihasilkan dapat menggunakan rumus pembagian 10 bit adc (0 - 1023) sehingga didapat sudut yang mewakili per bit. Tentunya potensiometer tidaklah terlalu linear karena banyak faktor dan untungnya kita hanya menggunakan sudut 0-90 derajat saja untuk alpha maupun beta. Saya mendapatkan untuk sudut 0-90 dapat menggunakan pembagian nilai bulat per bit ADC yaitu  "pembacaan adc / 3". Jadi sesuaikan dulu dengan respon nilai potensiometer yang kamu punya dengan sudut yang dihasilkan.

Untuk pengukuran tangen pada WinAvr akan digunakan library "math.h" dimana pengukuran sudut akan dirubah menjadi satuan radian. Rumus yang digunakan tentunya akan sangat memakan memory akibat nilai "float" yang digunakan. Hal ini kita akali saja dengan menggunakan unsigned integer 32 bit dengan pendekatan seperti berikut :

  • tana = tan((M_PI*adcalpha)/180)*1000;
  • tanb = tan((M_PI*adcbeta)/180)*1000;
  • tinggi= (tanb/tana) + 1 ;

Kita ingat juga konversi dari derajat ke radian digunakan rumus :


  • RADIAN = (PI * sudut ) /180 


Pengali 1000 pada rumus diatas digunakan untuk mendapatkan nilai float (pecahan / koma) menjadi ratusan sehingga pembagian menjadi agak bulat.


Skematiknya adalah sebagai berikut ini :

klik untuk memperjelas


Script selengkapnya seperti dibawah ini, diasumsikan bahwa tinggi pengamat 1 meter :


#define F_CPU 4000000UL
#include <string.h>
#include <avr/io.h>
#include <util/delay.h>
#include <avr/eeprom.h>
#include <math.h>
#include "lcd.h"

char derajat = 0xDF; // karakter derajat

void reverse(char s[]) //rutin untuk merubah angka ke ascii
   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[]) 
//rutin untuk merubah angka ke ascii
   uint16_t i;
   
   i = 0; 
   do {   // generate digits in reverse order 
      s[i++] = n % 10 + '0'; // get next digit 
   } while ((n /= 10) > 0); // delete it 

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


void initADC() //inisialisasi ADC
{
ADMUX=(1<<REFS0);// Aref=AVcc;
ADCSRA=(1<<ADEN)|(7<<ADPS0);
}


uint16_t ReadADC(uint8_t ch) //pembacaan ADC
{
   //Select ADC Channel ch must be 0-7
   ch=ch&0b00000111;
   ADMUX|=ch;

   //Start Single conversion

   ADCSRA|=(1<<ADSC);

   //Wait for conversion to complete
   while(!(ADCSRA & (1<<ADIF)));

   //Clear ADIF by writing one to it
   ADCSRA|=(1<<ADIF);

   return(ADC);
}

int main(void)
{

uint16_t baca1,baca2,tana,tanb,tinggi;
char dum;

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

   while(1)
   {
      initADC(); 

      baca1=ReadADC(6) / 3; //baca alpha
      if(baca1 <90){ //jika hasil tidak lewat 90 derajat

      lcd_gotoxy(0,0);
      lcd_putc(224); //ascii alpha
      lcd_puts(" =");

          itoa(baca1,&dum);
  lcd_puts(&dum);
 lcd_putc(derajat);
 lcd_putc(' ');
 
 }

 else{ //jika lebih 90 di warning
          lcd_gotoxy(0,0);
 lcd_putc(224);
 lcd_puts(" =max");
 }


     _delay_ms(100);

initADC();


     baca2= ReadADC(5) / 3; //baca beta

     if(baca2 <90){  // jika perhitungan < 90 derajat
 
 lcd_gotoxy(8,0);
 lcd_putc(226);
          lcd_puts(" =");

          itoa(baca2,&dum);
 lcd_puts(&dum);
 lcd_putc(derajat);
 lcd_putc(' ');
      }

      else{  //jika lebih 90 di warning
          lcd_gotoxy(8,0);
 lcd_putc(226);
 lcd_puts(" =max");
 }

      _delay_ms(100);
 lcd_gotoxy(0,1);
      

      if(baca1 <90 && baca2 <90){
          //PERHITUNGAN TINGGI
          tana = tan((M_PI*baca1)/180)*1000;
 tanb = tan((M_PI*baca2)/180)*1000;
 tinggi= (tanb/tana) + 1 ;
 
 lcd_puts(" TINGGI:");
          itoa(tinggi,&dum);
 lcd_puts(&dum);
 lcd_puts(" m");
 lcd_puts("        ");
 }

         else{
          lcd_gotoxy(0,1);
 lcd_puts(" TINGGI: Error !");
 }
   }
return 0;

}


SELAMAT MENCOBA  
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 (8) arduino (25) 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 (25) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (58) 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 (5) 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 (7) radio (17) raspberry pi (4) 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) 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)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika