Langsung ke konten utama

Simulasi Motor Servo Menggunakan Proteus 8.9


    Dalam blog kali ini saya akan mencoba mensimulasikan motor servo dc menggunakan software Proteus 8.9. Sebelum mensimulasikannya terlebih dahulu membuat rangkaian pada simulasi proteus seperti gambar di bawah ini :


Simulasi Proteus 1

Pada VCC  diberikan tegangan sebesar 5 VDC dan motor servo disetting seperti berikut.

- Minimum Angle diberikan nilai 0.
- Maksimum Angle diberikan nilai +180



Untuk mensimulasikannya tentu saja menggunakan Aplikasi Arduino IDE yang sebelumnya sudah didownload. Pada Arduino kita bisa mengambil koding library untuk motor servo di Example -> Servo -> Sweep


int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}


Verify program jika sudah Done maka upload file Hex nya pada Arduino yang ada disimulasi proteus. maka akan menjadi seperti ini.



Pada koding di bawah ini akan menjalankan motor servo sweep sebanyak 3x saja.

/* Sweep
 by BARRAGAN <http://barraganstudio.com>
 This example code is in the public domain.

 modified 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Sweep
*/

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 0; pos >= 0; pos -= 0) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position

  }
}




Simulasi Pengontrolan Motor Servo Menggunakan Potensiometer

 

Pada simulasi kali ini menggunakan  1 buah potensiometer atau disebut juga variabel resistor. Untuk mensimulasikannya menggunakan software dengan koding pada Arduino IDE pada Example -> Servo -> Knob

/*
 Controlling a servo position using a potentiometer (variable resistor)
 by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

 modified on 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Knob
*/

#include <Servo.h>

Servo myservo;  // create servo object to control a servo

int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
  val = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there
}


Maka simulasi akan seperti dibawah ini.


Demikian sedikit simulasi yang bisa saya berikan. Salam Satu Setrum !!!
































Komentar

Postingan populer dari blog ini

Cara menggunakan SPI pada Arduino

Bagaimana Anda menggunakan SPI pada Arduino   Peripheral Interface Serial Bus   (SPI) antarmuka digunakan untuk komunikasi antara beberapa perangkat jarak pendek, dan pada kecepatan tinggi. Biasanya ada perangkat "master" tunggal, yang memulai komunikasi dan memasok jam yang mengontrol laju transfer data. Mungkin ada satu atau lebih budak. Untuk lebih dari satu budak, masing-masing memiliki sinyal "pilih budak" sendiri, dijelaskan nanti. Sinyal SPI Dalam sistem SPI full-blown Anda akan memiliki empat jalur sinyal: Master Out, Slave In (  MOSI  ) - yang merupakan data dari master ke slave Master In, Slave Out (  MISO  ) - yang merupakan data dari slave ke master Serial Clock (  SCK  ) - saat ini mengaktifkan master dan sampel budak bit berikutnya Pilih Budak (  SS  ) - ini memberitahu budak tertentu untuk "aktif" Ketika banyak budak terhubung ke sinyal MISO, mereka diharapkan melakukan tri-state (tetap pada impedansi ti

Apa itu Proteus ?

    Proteus adalah software untuk mendesain PCB yang juga dilengkapi dengan simulasi PSpice pada level skematik sebelum rangkaian skematik di-upgrade ke PCB sehingga sebelum PCBnya di cetak  kita  akan tahu apakah PCB yang akan kita cetak apakah sudah benar atau tidak. Proteus mampu mengkombinasikan program ISIS untuk membuat skematik desain rangkaian dengan program ARES untuk membuat layout PCB dari skematik yang kita buat. Software Proteus ini bagus digunakan untuk desain rangkaian mikrokontroller.              Proteus juga bagus untuk belajar elektronika seperti dasar-dasar elektronika sampai pada aplikasi pada mikrokontroller. Software Proteus ini menyediakan banyak contoh aplikasi desain yang disertakan pada instalasinya. Sehingga memungkinkan kita bisa belajar dari contoh-contoh yang sudah ada.             Fitur-fitur yang terdapat dalam Proteus adalah sebagai berikut : 1.   Memiliki kemampuan untuk mensimulasikan hasil rancangan baik digital maupun analog