TP 2 MODUL 2


Percobaan 6 Kondisi 5

Kontrol Putaran Motor Stepper

1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan sesuai kondisi


  • Rangkaian






  • Prinsip Kerja
Pada percobaan ini rangkaiannya terdiri atas Arduino UNO dan IDE dan ULN2003A sebagai kontrolernya,  lalu menggunakan motor stepper yang nanti akan diatur pergerakannya, lalu ada LDR dan 4 buah push botton sebagai inputnya. Motor stepper dapat berubah sesuai dengan nilai input yang diberikan pada LDR dan push button. Nilai putaran sebelumnya sudah diinstruksikan pada Arduino IDE yang terhubung dengan Arduino UNO.

  • Flowchart




  • Listing Program
#define A 8
#define B 9
#define C 10
#define D 11
#define PB1 2
#define PB2 3
#define PB3 4
#define PB4 5
#define LDR A0


void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(PB1, INPUT_PULLUP);
pinMode(PB2, INPUT_PULLUP);
pinMode(PB3, INPUT_PULLUP);
pinMode(PB4, INPUT_PULLUP);
pinMode(LDR, INPUT);
}
void pergerakan_1(){
digitalWrite(A,0);
digitalWrite(D,1);
digitalWrite(B,0);
digitalWrite(C,1);
}
void pergerakan_2(){
digitalWrite(A,1);
digitalWrite(D,1);
digitalWrite(B,0);
digitalWrite(C,0);
}
void pergerakan_3(){
digitalWrite(A,1);
digitalWrite(D,0);
digitalWrite(B,1);
digitalWrite(C,0);
}
void pergerakan_4(){
digitalWrite(A,0);
digitalWrite(D,0);
digitalWrite(B,1);
digitalWrite(C,1);
}
void nonpergerakan(){
digitalWrite(A,0);
digitalWrite(D,0);
digitalWrite(B,0);
digitalWrite(C,0);
}
void loop() {
int b4 = digitalRead(PB4);
int b3 = digitalRead(PB3);
int b2 = digitalRead(PB2);
int b1 = digitalRead(PB1);

 // Read LDR value
  int ldrValue = analogRead(LDR);
  float voltage = ldrValue * 5.0 / 1023.0; // Convert analog reading to voltage (0-5V)
if (voltage < 2.5) {
    // LDR detects low light, move motor clockwise
    pergerakan_2();
  } 
if (voltage > 2.5) {
    // LDR detects low light, move motor clockwise
    pergerakan_4();
  } 
  
if (b4 == LOW)
{
pergerakan_4(); // Pindahkan servo ke 270 derajat
}
else if (b3 == LOW)
{
pergerakan_3(); // Pindahkan servo ke 180 derajat
}
else if (b2 == LOW)
{
pergerakan_2(); // Pindahkan servo ke 90 derajat
}
else if (b1 == LOW)
{
pergerakan_1(); // Pindahkan servo ke 0 derajat
}
else {
nonpergerakan();
delay(100);
}
}

4. Kondisi [Kembali]

Percobaan 6 Kondisi 5
Sertakan dengan LDR ketika bernilai <2.50 putaran motor searah jarum jam

Download HTML
Download Rangkaian 












Tidak ada komentar:

Posting Komentar