You are on page 1of 4

//Kendali Kecepatan Motor Stepper dengan Potensio

int tunda = 0; //deklarasi variabel tunda

int sensorValue = 0; //deklarasi variabel sensor value

int outputValue = 0;

const int phase1 = 2; //deklarasi pin phase1 pada kaki port D2

const int phase2 = 3;

const int phase3 = 4;

const int phase4 = 5;

const int analogIn = 18; //deklarasi pin analogIn pada pin 18 / ADC 4

void setup()

pinMode (phase1, OUTPUT); //phase1 sebagai output

pinMode (phase2, OUTPUT);

pinMode (phase3, OUTPUT);

pinMode (phase4, OUTPUT);

pinMode (analogIn, INPUT); //analogIn sebagai input analog

Serial.begin (9600); //inisialisasi komunikasi serial pada 9600 bps

void loop() //loping / pengulangan terus menerus

siklusADC(); //deklarasi void siklus ADC

powerStepper(); //deklarasi void powerStepper

void siklusADC() //kode program void siklusADC

sensorValue = analogRead (analogIn); //membaca sinyal analog pada pin analogIn

outputValue = map (sensorValue, 0, 1023, 0, 255); //maping dari nilai 1023 jadi 255
Serial.print ("nilai ADC= "); //mencetak pada serial monitor

Serial.println (outputValue, DEC); //menulis nilai dalam desimal

Serial.print("pwm =");

Serial.println(outputValue, DEC);

if (outputValue < 20) //membuat tingkatan dengan metode if

{tunda = 500;} //memberikan nilai pada variabel tunda

else

if (outputValue < 30)

{tunda = 300;}

else

if (outputValue < 70)

{tunda = 200;}

else

if (outputValue < 100)

{tunda = 100;}

else

if (outputValue < 140)

{tunda = 50;}

else

if (outputValue < 170)

{tunda = 20;}

else

if (outputValue < 200)

{tunda = 10;}

else

if (outputValue < 240)

{tunda = 5;}
else

{tunda = 2;}

delayMicroseconds (tunda); //jeda waktu delay sama dengan nilai tunda

void powerStepper() //susunan program void powerStepper

digitalWrite (phase1, HIGH); //tahap sinyal pertama phase1 diberi sinyal high

digitalWrite (phase2, LOW); //tahap sinyal pertama phase2 diberi sinyal low

digitalWrite (phase3, LOW); // tahap sinyal pertama phase3 diberi sinyal low

digitalWrite (phase4, LOW); // tahap sinyal pertama phase4 diberi sinyal low

delay (tunda); //jeda waktu delay sama dengan nilai tunda

digitalWrite (phase1, LOW); //tahap sinyal kedua

digitalWrite (phase2, HIGH);

digitalWrite (phase3, LOW);

digitalWrite (phase4, LOW);

delay (tunda);

digitalWrite (phase1, LOW); // tahap sinyal ketiga

digitalWrite (phase2, LOW);

digitalWrite (phase3, HIGH);

digitalWrite (phase4, LOW);

delay (tunda);

digitalWrite (phase1, LOW); // tahap sinyal ke empat

digitalWrite (phase2, LOW);

digitalWrite (phase3, LOW);

digitalWrite (phase4, HIGH);

delay (tunda);

You might also like