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, 23 Desember 2013

Penggunaan Fungsi Matematika Di Arduino

     Apa Kabar semua ??
Semoga dimana pun kalian dan kapanpun kalian selalu baik-baik aja ... -_-

     Pada kesempatan kali ini saya akan memberikan penjelasan tentang fungsi matematika pada Arduino ,Tak taunya Di Arduino terdapat Fungsi Matematika !!!

    Jadi kita dapat mempergunakan fungsi Matematika pada  pemograman mikrokontroller dan kita dapat juga melakukan perhitungan matematika sederhana .


Langsung aja kawan , tak usah berlama-lama langsung kita coba !!!




Tapi kawan-kawan harus menyiapkan peralatan yang di butuhkan :

1. Laptop/PC , itu jelas karena tempat untuk membuat program
2. Arduino , semua tipe
3. Kabel USB tipe B sebagai penyambung .

Kawan-kawan kan punya Program Arduino ya kan , langsung aja Tulis Sintaks dibawah ini !!!

Testing Bro !!!

Tapi sebelum testing  fungsi-fungsi yang digunakan telah tersedia pada file Library math.h.
void setup() { Serial.begin(9600);
Serial.println ("========== Fungsi Matematika ========== =");
Serial.print(" cos(90) = ");    Serial.println(cos(0.5*PI));

Serial.print(" sin(45) = ");    Serial.println(sin(0.25*PI));
Serial.print(" tan(90) = ");    Serial.println(tan(0.5*PI));

Serial.print(" atan(90) = ");    Serial.println(atan (0.5*PI));

Serial.print(" atan2(90,10) = ");Serial.println(atan2(0.5*PI,0.055*PI));

Serial.print(" sqrt(9) = ");    Serial.println(sqrt (9));
Serial.print(" exp(9) = ");    Serial.println(exp(9));

Serial.print(" log(100) = ");    Serial.println(log(100));

Serial.print(" log10(100) = ");    Serial.println(log10(100));
Serial.print(" pow(9,2) = ");    Serial.println(pow( 9,2));

Serial.print(" square(9) = ");    Serial.println(sqrt (9));

Serial.print(" fabs(-1.5) = ");    Serial.println(fabs (-1.5));
Serial.print(" fmod(1.2334,2) = ");  Serial.println(fmod (1.2334,2));



}

void loop() {
}

Sudahkan  kawan-kawan buat programnya di Software Arduino IDE  , langsung Uploud ke Ardunio !!!
Dan Lihat Pada Serial monitor !

Sekarang lihat apa yang terjadi  ?

PERTANYAAN ????????
  1. Buka Aplikasi serial monitor , kemudian amati data yang ditampilkan pada Serial Monitor . Periksalah hasil perhitungan pada program secara manual. Apakah ada yang salah dari perhitungan program ? Jika ada sebutkan pada fungsi apa ??
  • Ada , Pada fungsi Trigonometri 


 2. Pada fungsi trigonometri parameter input fungsi dalam bentuk apa ? Radian atau degree ?
  • Parameternya dalam bentuk deggre 

Senin, 16 Desember 2013

SLEEP MODE DAN WATCHDOG TIMER PADA ARDUINO

Ok Para penggemar Arduino , Pada kesempatan ini saya akan menyampaikan sedikit tentang Sleep mode dan Watchdog timer pada Arduino tapi lebih tepatnya pada setiap mikrokontroller.

Langsung aja Gun !!!
Check this Out !!!

Semoga Bermanfaatnya kawan-kawan !!!

Disini saya akan mencoba melalui Simulasi , Jadi yang kita gunakan adalah Proteus 7.1.0 .

PERCOBAAN PERTAMA 
1. Sleep Mode Selama 4 detik dan Wake UP saat terjadi Timer OverFlow.
      Pada percobaan kali ini akan dibuat program untuk mengakses mode sleep pada mikrokontroller . Mode Sleep akan terjadi selama 4 detik , kemudian mikrokontroller akan aktif kembali (wake up). Pada saat Wake up , mikrokontroller akan melakukan perubahan terhadap kondisi led yang terhubung pada pin 12. sehingga jika program dijalankan , seakan-akan Led akan berkedip-kedip selang waktu 4 detik . Namun sebenarnya selama 4 detik tersebut mikrokontroller sedang dalam sleep mode ( tidak melakukan  apa-apa).

Langsung ke Prosedur :
a. Rangkailah rangkaian dibawah ini menggunakan software Proteus 7.1.0



Gambar Rangkaian percobaan 1  
 

b.  Setelah rangkaian diatas sudah dibuat di Proteus , kita lanjutakan membuat programnya pada Arduino IDE , kemudian lakukan kompilasi dan uploud.
#include <avr/sleep.h>
#include <avr/power.h>
#define LED_PIN (12)
volatile int f_timer=0;

ISR(TIMER1_OVF_vect){
  if(f_timer == 0) {
    f_timer =1 ;
  }
}
void enterSleep(void)
{
  set_sleep_mode(SLEEP_MODE_IDLE);
  sleep_enable();
  power_adc_disable();
  power_spi_disable();
  power_timer0_disable();
  power_timer2_disable();
  power_twi_disable();
  sleep_mode();
  power_all_enable();
}
void setup()
{
 pinMode(LED_PIN, OUTPUT);
TCCR1A = 0x00 ;
TCNT1 = 0x0000;
TCCR1B = 0x05;
TIMSK1= 0x01; 
}
void loop ()
{
 if (f_timer==1)
{
 f_timer = 0;
digitalWrite(LED_PIN, !digitalRead(LED_PIN));
enterSleep();
}
 
}

Lihat apa yang terjadi dan coba Simpulkan !!!

Kesimpulan dari pratikum ini adalah para mikrokontroller kita dapat mengistirahatkan dalam beberapa detik dan manfaat dari Mode Sleep mode ini adalah kita dapat menghemat daya pada mikrokontroller saat tidah digunakan.





PERCOBAAN KEDUA
2. Sleep Mode Selama 8 Detik dan Wake Up Saat Watchdog Timer Aktif

     Pada percobaan kali ini akan dibuat program untuk mengakses watchdog timer pada mikrokontroller. Watchdog timer akan digunakan untuk mengaktifkan kembali mikrokontroller dari mode sleep . Watchdog timer akan terjadi tiap 8 detik.

Langsung ke Prosedur kawan !!!
Rangkaian sama seperti diatas tinggal ganti program !!!

 

A. Tulis sintaks program di bawah ini , kemudian kompilasi dan uploud ke simulasi proteus




#include <avr/sleep.h>
#include <avr/power.h>
#include <avr/wdt.h>
#define LED_PIN (12)
volatile int f_wdt=1;
ISR(WDT_vect)
{
  if (f_wdt == 0 )
  {
    f_wdt=1;}
   else
  {
   Serial.println("WDT Overrun !!!");
  }
}
void enterSleep(void)
{
  set_sleep_mode(SLEEP_MODE_PWR_SAVE);
  sleep_enable(); sleep_mode();
  sleep_disable (); power_all_enable();
}
void setup ()
{
  Serial.begin(9600);
  Serial.println ("Initialising...");
  delay(100);
  pinMode(LED_PIN,OUTPUT);
  MCUSR &= ~(1<<WDRF);
  WDTCSR |= (1<<WDCE) | (1<<WDE);
  WDTCSR = 1<<WDP0 | 1<<WDP3;
  WDTCSR |= _BV(WDIE);
  Serial.println("Initialisation complete.");
  delay(100);
}
void loop ()
{
  if (f_wdt == 1)
  {
    digitalWrite(LED_PIN, !digitalRead(LED_PIN));
    f_wdt=0; enterSleep();
  }
}

     Kesimpulan ya adalah bahwa fungsi dari WatchDog Timer adalah untuk mengaktifkan atau membangun lagi mikrokontroller yang di Sleep atau di istirahatkan .
      Manfaat penggunaan watchdog timer pada mikrokontroller untuk mereset kembali program ketika terjadi masalah atau program tersebut macet. Jadi ketika program yang sedang berjalan macet maka kita gunakan watchdog timer untuk mereset kembali program.