MEKATRONIKA

Foto kawan-kawan seperjuangan dalam menempuh pendidikan Di Politeknik Negeri Batam

FERI FEBRIANSYAH

Itu adalah saya , Keren kan !!!

Kembar

Editan Sedikit hehehe

Keren Ui

Line Follower

Karya Anak Bangsa

Senin, 02 Desember 2013

Generator Gelombang dengan Adjustable Frekwensi pada Arduino

Apa kabar semua ?? Pasti semuanya baik-baik , Amin ??
OK , kawan-kawan , saya akan menyampaikan sebuah materi , sebuah generator gelombang atau pembangkit gelombang dapat kita atur frekwensinya .

OK langsung aja , tak usah berlama-lama !!
Dibawah ini , ada video tentang percobaan kali ini , mudahan membantu kawan-kawan !!!
Generator Gelombang dengan Adjustable Frekwensi
     Pada percobaan kali ini gelombang yang akan dikeluarkan pada pin 9 adalah gelombang berbentuk kotak dengan duty cycle yang besarnya tetap yaitu 50%, namun besarnya frekwensi dapat berubah-ubah. perubahan frekuensi akan diatur oleh potensiometer yang terhubung pada pin A0. Program pada percobaan kali ini akan menggunakan konfigurasi register untuk mengeluarkan sinyal gelombang pada pin PWM.
  1. Buatlah rangkaian seperti dibawah ini !!!

kita dapat mensimulasikan rangkaian ini pada aplikasi proteus .
     2.  Tuliskan sintaks program berikut pada arduino IDE

int setCycles;

void set (int cycles){
  char oldSREG;
  int dutyCycle = cycles * 0.5 ;
  if ( dutyCycle < 6 ){
    dutyCycle = 6 ;
  }
    if ( dutyCycle > 1015 ){
    dutyCycle = 1015 ;
  }
    if ( cycles < 50 ){
    cycles = 50 ;
  }
  oldSREG = SREG ;
  cli();
  ICR1 = cycles;
  OCR1A = dutyCycle;
  SREG = oldSREG;
}
void setup ()
{
 TCCR1A = 0 ;
 TCCR1B =_BV(WGM13);
 TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12));
 TCCR1B |= _BV(CS10);
 DDRB |= _BV(PORTB1);
 TCCR1A |= _BV(COM1A1);
}

void loop ()
{
 int temp_cycles = analogRead(A0);
if (temp_cycles != setCycles){
 setCycles = temp_cycles;
set(setCycles);
}
 
}
     3. Setelah itu , kita uploud program ini di simulasi Proteus .

Terimah kasih kawan-kawan yang telah melihatnya !!!

Mudahan saya dapat terus membagikan ilmu saya kepada kawan-kawan.

Generator Gelombang dengan Adjustable Duty Cycle Pada ARDUINO

Okey , apa kabar semua ??? Mudahan semua kawan-kawan dalam keadaan baik semua ..
Lanjut lagi , saya akan menyampaikan sebuah pembangkit gelombang diatur dengan Dutycycle.

Langsung aja ya Gun?

Semoga bermanfaat untuk kawan semua !!!
Generator Gelombang  dengan Adjustable Duty cycle
     Pada percobaan kali ini akan dibuat program untuk mengeluarkan gelombang kotak pada pin 9 (OC1A) . Gelombang yang akan dikeluarkan pada pin 9 adalah gelombang bentuk kotak dengan duty cycle dapat diatur lebarnya . Lebar duty Cycle akan diatur oleh potensiometer yang terhubung pada pin A0. Pada percobaan kali ini akan digunakan fungsi analogWrite yang berfungsi untuk mengeluarkan sinyal gelombang pada pin Pulse Width Modulation (PWM).
  • Buatlah rangkaian seperti gambar dibawah di Aplikasi Proteus 

         Rangkain ini kita dapat simulasikan di Aplikasi Proteus
  • Selanjutnya , Tuliskan sintaks Program berikut ini pada Software arduino !!!
int val = 0;
void setup ()
{
 Serial.begin(9600);
pinMode( 9 , OUTPUT);
pinMode(A0,0);
}
void loop ()
{
 val = analogRead (A0);
 analogWrite(9 , val/4);
 Serial.print("PWM Value = ");
 Serial.println(val,DEC);
 delay(500);
 }
  •  Setelah selesai menulis program diatas , selanjutnya Compile program diatas dan programnya masukkan pada rangkaian yang ada pada proteus .
  • Apabila masih bingung, ini saya beri Video kepada kawan-kawan , supaya dapat mengerti !!

Video Generator Gelombang dengan Adjustable Duty Cycle
KESIMPULAN
  • Jika potensiometer di  putar minimum maka led sebagai indikator akan menjadi redup karena lebar duty cycle kecil hingga 0 % 
  • Jika potensiometer diputar maksimal maka led sebagai indikator akan menjadi terang karena lebar duty cycle besar hingga 100%
  • kita dapat mengatur duty cycle menggunakan potensiometer

Senin, 07 Oktober 2013

PERIPERAL MASUKAN ANALOG PADA ARDUINO

 Wah ketemu lagi di blog Feri Febriansyah , hehehe
Okey , biar kita tambah ilmu , kita harus banyak membagi ilmu yang kita miliki !!!

Pada saat ini , kita akan membahas Periperal masukan analog pada Arduino , Dimaksud dari analog ini adalah Inputan yang berupa tegangan dari 0V - 5 V . 
 TUJUAN :
1.  Mampu membuat program untuk mengakses periperal masukan analog dengan tegangan referensi internal, vcc, dan eksternal.

2.  Mampu memahami pengaruh nilai tegangan referensi terhadap hasil konversi Analog to Digital Converter(ADC).
3.   Mampu membuat program untuk mengakses fitur analog komparator pada mikrokontroler.
PERALATAN YANG DIBUTUHKAN
1.  Komputer                                    1set
2. Arduino Uno                                 1 pcs
3. Kabel USB tipe B                          1 pcs
4. Project Board                               1 pcs
5. Kabel Jumper                               1 Set
6. Potensiometer 10 k                       3 pcs
7. LCD 2 x 16                                 1 Pcs    
Langsung Saja Ke Percobaan !!!    
PERCOBAAN :
3.1 Analog Input dengan Tegangan Referensi Internal (1,1 Volt)

Pada percobaan kali ini akan dibuat program untuk mengkonversi nilai tegangan analog dari potensiometer menjadi nilai digital. Data hasil konversi akan ditampilkan pada LCD 2x16. Tegangan referensi ADC yang digunakan adalah tegangan referensi internal yang besarnya adalah 1,1 volt.
Prosedur  
1..      Rangkaialah rangkaian pada Gambar 3.1
 
2.  Tuliskan sintaks program di bawah ini, kemudian lakukan kompilasi dan upload program kesistem minimum Arduino.
#include <LiquidCrystal.h>

LiquidCrystal lcd(2,3,4,5,6,7);

void setup() {


  lcd.begin(16,2);


  lcd.clear();


  lcd.setCursor(0,0);


  lcd.print("ADC Example on A0"


  analogReference(INTERNAL);


}



void loop() {


  unsigned int dataADC = analogRead(A0);


  lcd.setCursor(0,1);


  lcd.print("Value = ");


  lcd.print(dataADC);


  delay(500);


}

Tugas dan Pertanyaan : 
1. Putarlah potensiometer sehingga terjadi perubahan tegangan dari 0 volt sampai 1.5 volt dengan rentan perubahan 0.5 volt. Amati data yang dita mpilkan pada LCD, kemudian isilah Tabel 3.1 !


Tabel 3.1 Perbandingan data hasil perhitungan dan data pada LCD ( Vref = 1.1 V )

Tegangan Pin A0 (Volt)
Data Di LCD
Data Hasil Perhitungan
0
0
0
0.25
235
0.252
0.5
467
0.502
0.75
700
0.752
1
935
1.005
1.25
1023
1.1
1.5
1023
1.1
2.Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 3.1!

 #include <LiquidCrystal.h>     // Memanggil Library LCD

LiquidCrystal lcd(2,3,4,5,6,7);// inisialisasi pin Lcd

void setup() {

lcd.begin(16,2); // setting jumlah ( kolom , baris ) pada LCD

lcd.clear();     // Tampilan Lcd di bersihkan / di hapus

lcd.setCursor(0,0);  // Letak kursor pada posisi kolom dan
                                baris (0,0)

lcd.print("ADC Example on A0");  // Lcd menampilkan
                                              //(“ ADC Example on A0 “)

analogReference(INTERNAL);  // Tegangan Vref input
                                              //internal (1.1 volt )
}
void loop() {

unsigned int dataADC = analogRead(A0); // membaca nilai
                                                    // analog pin A0 simpan

lcd.clear();                    // Tampilan LCd dibersihkan

lcd.setCursor(0,1);             // Letak kursor pada (kolom 0,
                                        // baris 1 )

lcd.print("Value = ");          //LCd menampilkan “Value = “

lcd.print(dataADC);           // Lcd menampilkan dataADC

delay(500);                     // jeda 500 ms

}

3.2  Analog Input dengan Tegangan Referensi VCC

Pada percobaan kali ini akan dibuat program seperti pada Percobaan 3.1. Pada Percobaan 3.2 tegangan referensi ADC yang digunakan adalah tegangan VCC pada mikrokontroler.

Prosedur :

1.Gantilah sintaks program pada Percobaan 3.1 menjadi seperti di bawah ini, kemudian lakukan kompilasi dan upload program.
#include <LiquidCrystal.h>

LiquidCrystal lcd(2,3,4,5,6,7);

void setup() {

  lcd.begin(16,2);

  lcd.clear();

  lcd.setCursor(0,0);

  lcd.print("ADC Example on A0");

  analogReference(DEFAULT);

}

void loop() {

  unsigned int dataADC = analogRead(A0);

  lcd.setCursor(0,1);

  lcd.print("Value = ");

  lcd.print(dataADC);

  delay(500);

}

Tugas dan Pertanyaan :
1.   Putarlah potensiometer sehingga terjadi perubahan tegangan dari 0 volt sampai 5 volt dengan rentan perubahan 1 volt, kemudian amati data yang ditampilkan pada LCD dan isilah Tabel 3.2 !

Tabel3.2
Perbandingan data perhitungan dan data pada LCD
Tegangan Pin A0 (Volt )
Data di Lcd
Data Hasil perhitungan
0
0
0
1
204
0.997
2
417
2.038
3
628
3.069
4
841
4.11

2.   Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 3.1

#include <LiquidCrystal.h>        // Memanggil Library LCD
LiquidCrystal lcd(2,3,4,5,6,7);   // inisialisasi pin Lcd

void setup() {
lcd.begin(16,2);// setting ( kolom , baris ) pada LCD
lcd.clear();// Tampilan Lcd di bersihkan / di hapus
lcd.setCursor(0,0);// Letak kursor pada point (0,0)
lcd.print("ADC Example on A0"); // Lcd menampilkan (“ ADC Example on A0 “)
analogReference(DEFAULT); //  Vref input default (5 volt )
}
void loop() {
unsigned int dataADC = analogRead(A0);// Inisilisasi input A0
lcd.clear();  // Tampilan LCd dibersihkan
lcd.setCursor(0,1);// Letak kursor pada (baris 0 , kolom 1 )
lcd.print("Value = ");//LCd menampilkan “Value = “
lcd.print(dataADC);// Lcd menampilkan data adc
delay(500);  // jeda 500 ms
}

3.3  Analog Input dengan Tegangan Referensi Eksternal

Pada percobaan ka li ini akan dibuat program seperti pada Percobaan 3.1 dan Percobaan 3.2. Tegang an referensi ADC yang digunakan adalah tegangan referensi eksternal yaitu tegangan pada pin AREF. Pada percobaan kali ini b esar tegangan pada pin AREF akan di-set sebesar 4 volt. Sehingga dapat dikataka n bahwa besarnya tegangan referensi yang digunakan adalah 4 volt.

Prosedur :

1.  Rangkaialah rangkaian pada Gambar 3.2
 
   2.      Tuliskan sintaks program di bawah ini, kemudian lakukan kompilasi dan upload program ke sistem minimum Arduino.

#include <LiquidCrystal.h>

LiquidCrystal lcd(2,3,4,5,6,7);

void setup() {

  lcd.begin(16,2);

  lcd.clear();

  lcd.setCursor(0,0);

  lcd.print("ADC Example on A0");

  analogReference(EXTERNAL);

}
void loop() {

  unsigned int dataADC = analogRead(A0);

  lcd.setCursor(0,1);

  lcd.print("Value = ");

  lcd.print(dataADC);

  delay(500);
}
 3.  Putar potensiometer R3 hingga tegangan pada pin AREF terukur 4 volt.

Tugas dan Pertanyaan :
1.  Putarlah potensiometer R2 sehingga terjadi perubahan tegangan dari 0-5 volt dengan rentan perubahan 1 volt. Amati data yang ditampilkan pada LCD, kemudian isilah Tabel 3.3. 

              Tabel 3.3 Perbandingan data hasil perhitungan dan data pada LCD
Tegangan Pin A0 (Volt )
Data di Lcd
Data Hasil perhitungan
0
0
0
1
263
1.02
2
520
2.03
3
746
2.91
4
1010
3.94
5
1023
4

2.      Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 3.3 !
#include <LiquidCrystal.h>     // Memanggil Library LCD 
LiquidCrystal lcd(2,3,4,5,6,7);// inisialisasi pin Lcd
void setup() {  
lcd.begin(16,2);               // Tampilan Lcd(kolom,baris) 
lcd.clear();                   // Tampilan Lcd di bersihkan/di hapus
lcd.setCursor(0,0);            // Letak kursor pada baris kolom (0,0) 
lcd.print("ADC Example on A0");// Lcd menampilkan (“ ADC Example on A0 “) 
analogReference(eksternal);    // Vref input eksternal (4 volt ) 
}
void loop() {
unsigned int dataADC=analogRead(A0);//Inisilisasi input A0 
lcd.clear();           // Tampilan LCd dibersihkan 
lcd.setCursor(0,1);    // Letak kursor pada (baris 0,kolom 1)
lcd.print("Value = "); //LCd menampilkan “Value = “ 
lcd.print(dataADC);    // Lcd menampilkan data adc 
delay(500);            // jeda 500 ms
}
2.  Jelaskan pengaruh  nilai tegangan referensi pada hasil konversi ADC !
         Tegangan refensi sebagai parameter , Jika input dari pin A0 dibawah tegangan referensi maka nilai dari inputan akan di skalakan 0 – 1023. Apabila tegangan input lebih besar dari tegangan referensi , Vin = Vref , karena memiliki batas , yaitu tegangan referensi

Kita dapat menghitung tegangan input dengan rumus :

ADC    = Nilai terbaca pada Lcd
Vin      = Tegangan input
Vref     = Tegangan Referensi 



Sekian infonya !!!
Semoga Bermanfaat ya Kwan !!!