Anda di halaman 1dari 2

Penulisan Program

//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 = 4;
const int phase3 = 3;
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 ("outputValue= "); //mencetak pada serial monitor
Serial.println (outputValue, DEC); //menulis nilai dalam desimal

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


{tunda = 500;} //memberikan nilai pada variabel tunda
elseif (outputValue < 30)
{tunda = 300;}
elseif
(outputValue < 70)
{tunda = 200;}
Elseif
(outputValue < 100)
{tunda = 100;}
elseif
(outputValue < 140)
{tunda = 50;}
elseif
(outputValue < 170){tunda = 20;}
elseif
(outputValue < 200){tunda = 10;}
elseif
(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, LOW);
digitalWrite (phase3, LOW);
digitalWrite (phase4, HIGH);
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, HIGH);
digitalWrite (phase3, LOW);
digitalWrite (phase4, LOW);
delay (tunda);
}

Anda mungkin juga menyukai