Minggu, 05 Januari 2014

PENGGUNAAN FUNGSI MATEMATIKA Arduino Uno

PERCOBAAN :

Penggunaan Fungsi pada Library Math.h

Pada percobaan kali ini akan dijelaskan penggunaan fungsi matematika pada pemrograman mikrokontroler menggunakan Arduino IDE. Fungsi-fungsi yang digunakan telah tersedia pada file library math.h.

Prosedur :

1. Tuliskan sintaks program berikut ini, lakukan kompilasi dan upload program.
void setup() {
  Serial.begin(9600);
  Serial.println("=============  Fungsi Matematika ===========");
  Serial.print("cos(90)=");       Serial.println(cos(90));
  Serial.print("sin(45)=");       Serial.println(sin(45));
  Serial.print("tan(90)=");       Serial.println(tan(90));
  Serial.print("atan(90)=");      Serial.println(atan(90));
  Serial.print("atan2(90,10)=");  Serial.println(atan2(90,10));
  Serial.print("aqrt(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(square(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(){
}

Tugas dan 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 !
Data yang ditampilkan sesuai dengan perhitungan hanya saja data yang ditampilkan menggunakan kalkulator dengan satuan radian pada fungsi trigonometri.

2.      Pada fungsi trigonometri, parameter input fungsi dalam bentuk apa ? radian atau degree ?

Parameter input dalam bentuk Radian tetapi kita dapat mengubahnya menjadi bentuk Degree dengan mengalikan dengan  (0.0174532925199433) pada program berikut :
Serial.print("cos(90)=");       Serial.println(cos(90*0.0174532925199433));
            Serial.print("sin(45)=");       Serial.println(sin(45*0.0174532925199433));
            Serial.print("tan(90)=");       Serial.println(tan(90*0.0174532925199433));
Serial.print("atan(90)=");      Serial.println(atan(90*0.0174532925199433));

3.      Buatlah kalkulator sederhana dengan antarmuka serial port, dimana kalkulator tersebut mampu melakukan perhitungan besar sudut pada salah satu sudut segitiga. Gunakan fungsi trigonometri untuk melakukan perhitungan !
Jb

float ti=4;
float ba=3;
float mi=5;
void setup() {

  Serial.begin(9600);
  Serial.println("===  Contoh Fungsi Trigonometri Pada Segitiga Siku-Siku ===");
  Serial.println("Terdapat segitiga dengan tinggi 4 cm");
  Serial.println("panjang sisi bawah 3 cm");
  Serial.println("dan sisi miring 5 cm");
  Serial.println("Berapakah besar sudut sin a , cos a , dan tan a ?");
  Serial.println("++++++++++Jawab++++++++++");
  Serial.print("Panjang sisi tegak segitiga = "); Serial.println (ti);
  Serial.print("Panjang sisi miring segitiga = "); Serial.println (mi);
  Serial.print("Panjang sisi bawah segitiga = "); Serial.println (ba);
  Serial.print("Sin a ="); Serial.println(ti/mi);
  Serial.print("cos a ="); Serial.println(ba/mi);
  Serial.print("tan a ="); Serial.println(ti/ba);
 
}
void loop()
{

}

SLEEP MODE DAN WATCHDOG TIMER Arduino Uno

PERALATAN :
1. Komputer                            : 1 set
2. Arduino Uno                       : 1 pcs
3. Kabel USB tipe B               : 1 pcs
4. Project board                       : 1 pcs
5. Kabel jumper                       : 1 pcs
6. LED                                    : 1 pcs
7. Resistor 330 Ohm               : 1 pcs
9.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 aka melakukan perubahan terhadap kondisi LED yang terhubung pada pin 12. Sehingga jika program dijalankan, seakan-akan LED akan berkedip dengan selang waktu 4 detik. Namun, sebenarnya 4 detk tersebut mikrokontroller sedang sleep mode (tidak melakukan apa-apa).
Prosedur:
1.      Rangkailah rangkaian pada Gambar 9.1 berikut ini.

2.      Tuliskan sintaks program berikut ini pada Arduino IDE, kemudian lakukan kompilasi dan upload program.
#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();
sleep_disable();                 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();
}

}

Twitter Delicious Facebook Digg Stumbleupon Favorites More