Sound Activations Untuk KRCI, KRPAi

Jumat, Desember 21, 2012 Tags

salam semuanya...
blog lagi sepi beberapa hari kemarin, maklum urus proposal dan tugas kuliah-kuliah yang benar-benar bikin puyeng. maklum sudah semester di ujung tombak katanya dosenku kalau untuk program studi-ku (curhat.com)...

he..he..he..proposal KRI, KRCI, 2013.  28 Desember terakhir dikirim, tapi kami belum sempat buat bahkan sampulnya juga belum ada,  he he he he,...soalnya bimbang sich, takutnya ntar nda bisa ikut lagi karena faktor dana, maklum kampusku banyak sekali uangnya bede....

tapi ngga` apa-apa, kali ini kalau kami ga` bisa ikut siapapun yang berkesempatan ikut di kontes KRI, KRCI tahun depan,...yang semangat yach..

ini ada rangkaian sound activations dari kami (Tim Robot Elektronika UNM), bisa lihat rangkaiannya dari schematic dibawah ini:





komponen-komponennya juga simple banget, kalau nda ada uang buat beli microphone yang tipe DCM, pakai saja microphone-nya headset handphone atau yang lain yang sudah ngga kepakai lagi..(manfaat-in barang bekas gitu dech )..

keluaran OP-Am yang pertama untuk membandingkan hasil out dari microphone ketika di berikan suara, kalau nilainya lebih tinggi dari input pada kaki (-), maka outputnya akan logika (1), dan OP-Am yang kedua membandingkan lagi nilai dari output OP-AM yang pertama dengan potensio yang bisa kita atur-atur sendiri nilainya...
setelah keluar dari OP-AM yang kedua, berikutnya masuk kedalam Data ADC dari Microkontroller ATMEGA 8 (itu yang ada di schematich), kalau pakai IC yang lain juga bisa-bisa saja...

sekian dari kami, salam robotika dan tetap maju indonesiaku....

Multiplexer 4051 Di Code Vision AVR

Minggu, Desember 09, 2012 Tags

Salam Buat Teman-Teman Robotika, Kali Ini mau share Tentang Baca Nilai ADC di IC Multiplexer 8 Chanel 4051, Mikrokontroller yang kami pakai yaitu ATMEGA 16, nah untuk skematichnya bisa dilihat seperti gambar berikut:

Nah sekarang saatnya penjelasan:
- Bahasa Program yang Kami Pakai yaitu C, untuk membuatnya compiler pakai Software CV AVR.
-IC ATMEGA 16, Crystal 12 MHZ, LCD 16x2 di PORTC ,jadi listingnya kayak gini:


/*****************************************************
Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 12,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega16.h>
#include <stdio.h>
#include <delay.h>
#include <math.h>
#include <stdlib.h>

// Alphanumeric LCD functions
#include <alcd.h>
#asm
.equ __lcd_port = 0x15 ;PORTC
#endasm

-sekarang, didefenisikan Port IC ATMEGA 16 yang terhubung ke IC MUX 4051

#define sel1 PORTA.1
#define sel2 PORTA.2
#define sel3 PORTA.3

-Buat Variable dengan Isi 8 bit, yang nantinya akan di tempati 8 kemungkinan data yang akan di terima dari 8 chanel multiplexer, yaitu mulai dari 0 - 7.

unsigned int mux[8];
char temp[8];

-Listing baca nilai ADC 10 Bit

#define ADC_VREF_TYPE 0x40
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

-sekarang buat variable untuk melempar data ke Mux dan di codekan dengan 3 digit, (kenapa mesti 3 digit?, karena selector IC MUX 8 chanel ini selector-nya ada 3, yaitu A, B, dan C, dimana masing-masing kondisi dari selector tersebut bernilai 0/1, sehingga kondisinya nanti data yang dilempar yaitu mulai dari 0,0,0 sampai dengan 1,1,1).


void selector(int a,int b,int c)
{
sel1=c;
sel2=b;
sel3=a;
}


void bacamux()
{
selector(0,0,0);
mux[0]=read_adc(0);

selector(0,0,1);
mux[1]=read_adc(0);

selector(0,1,0);
mux[2]=read_adc(0);

selector(0,1,1);
mux[3]=read_adc(0);

selector(1,0,0);
mux[4]=read_adc(0);

selector(1,0,1);
mux[5]=read_adc(0);

selector(1,1,0);
mux[6]=read_adc(0);

selector(1,1,1);
mux[7]=read_adc(0);

}

oh, iya input ADC-nya ada di PORTA.0, makanya listingya    read_adc(0), kalau pakai Port ADC yang lain silakan di ganti saja angka 0, didalm kurungnya sesuai urutan PORT input yang dipakai.

-Berikutnya buat variable untuk tampilkan nilai ADC yang terbaca ke LCD

void tampilmux()
{
bacamux();

itoa(mux[0],temp);
lcd_gotoxy(0,0) ;
lcd_puts(temp);
delay_ms(100);

itoa(mux[1],temp);
lcd_gotoxy(4,0) ;
lcd_puts(temp);
delay_ms(100);

itoa(mux[2],temp);
lcd_gotoxy(8,0) ;
lcd_puts(temp);
delay_ms(100);

itoa(mux[3],temp);
lcd_gotoxy(12,0) ;
lcd_puts(temp);
delay_ms(100);

itoa(mux[4],temp);
lcd_gotoxy(0,1) ;
lcd_puts(temp);
delay_ms(100);

itoa(mux[5],temp);
lcd_gotoxy(4,1) ;
lcd_puts(temp);
delay_ms(100);

itoa(mux[6],temp);
lcd_gotoxy(8,1) ;
lcd_puts(temp);
delay_ms(100);

itoa(mux[7],temp);
lcd_gotoxy(12,1);
lcd_puts(temp); 
delay_ms(100);
}
-nah sekarang main programnya kayak gini:

void main(void)
 {

 PORTA=0x00;
 DDRA=0x00;
  
 PORTB=0x20;
 DDRB=0x20;

 PORTC=0x0B;
 DDRC=0x24;

 PORTD=0x0F;
 DDRD=0xF0;

 TCCR0=0x00;
 TCNT0=0x00;

 OCR0=0x00;

 TCCR1A=0xF1;
 TCCR1B=0x03; 

 TCNT1H=0x00;
 TCNT1L=0x00;
 ICR1H=0x00;
 ICR1L=0x00;
 OCR1AH=0x00;
 OCR1AL=0x00;
 OCR1BH=0x00;
 OCR1BL=0x00;

 ACSR=0x00;
 SFIOR=0x00;

 ADMUX=ADC_VREF_TYPE & 0xff;
 ADCSRA=0x84;

 lcd_init(16);
     while (1)
        { 
          tampilmux();
        }   
   }

sekian dulu tutorial dari kami, maaf kalau masih kurang bagus listingnya, maaf baru newbie.

thank for : forum.elins.org

Line Follower Analog Ala Robotron-UNM

Sabtu, Desember 08, 2012 Tags

Salam buat teman-teman Robotika, kami dari TIM Robot Elektronika, universitas negeri makassar mau nge-share dikit tentang ilmu yang baru saja kami experiment gitu..

ini skematichnya:



Kalau mau lihat Video-nya Ni Klick Aja Di bawah:


 
Robotron-UNM © 2016 | Editor by Asis Robotron | Blogger Template by Blog Zone