MODUL 2
PULSE WIDTH MODULATION (PWM)
&
ANALOG DIGITAL CONVERTER (ADC)

PERCOBAAN 3
"MENGATUR KECEPATAN PUTAR MOTOR DC"

[KEMBALI KE MENU SEBELUMNYA]
      1. hardware[kembali]

1. potensiometer
2. motor DC

3. arduino





byte pot = A0; //Deklarasi pin A0 untuk potensiometer
byte motor = 9; //Deklarasi pin 9 untuk motor
int nilai; //Deklarasi variabel nilai
int output; //Deklarasi variabel output
void setup() { //Semua kode dalam fungsi ini dieksekusi sekali
 pinMode(motor, OUTPUT); //Deklarasi motor sebagai OUTPUT
 Serial.begin(9600); //Set baud rate 9600
}
void loop() { //Semua kode dalam fungsi ini dieksekusi berulang
 nilai = analogRead(pot); //Membaca nilai potensiometer
 output = map(nilai, 0, 1023, 0, 255);
 analogWrite(motor, output);
 Serial.print("potensiometer: ");
 Serial.print(nilai);
 Serial.print(" ");
 Serial.print("output: ");
 Serial.print(output);
 delay(2);
}


 5. video percobaan [kembali]





6. analisa [kembali]

rangkaian pengatur kecepatan putar motor DC:;

prinsip kerja rangkaian:
pada rangkaian kita menggunakan VCC yang terhubung dengan potensiometer dimana salah satu kaki potensiometer terhubung dengan input analog arduino dan lainnya dengan ground. saat nilai potensiometer diubah atau diganggu maka nilai input yang diterima arduino juga berubah. nilai yang diterima oleh arduino pada kaki analognya akan di konversi oleh ADC sehingga menghasilkan besaran digital. lalu arduino akan memproses data tersebut dan mengirimkannya pada motor DC melalui kaki digital yang memiliki PWM (pulse width modulation) dimana lebar pulsa akan mempengaruhi nilainya. lalu motor akan berputar sesuai dengan nilai yang diberikan oleh PWM.  untuk mengolah data pada percobaan ini diperlukan mapping dimana untuk nilai ADC berkisar dari rentang 0 sampai dengan 1023. untuk nilai PWM adalah dengan rentang 0 sampai dengan 255 {output = map(nilai, 0, 1023, 0, 255);}. saat nilai potensio diperbesar maka nilai pada ADC juga akan semakin besar hal ini akan menyebabkan nilai lebar pulsa yang dihasilkan juga bertambah lebar sehingga perputaran motor jadi semakin cepat. saat nilai potensio diubah menjadi 0 maka nilai PWM yang dihasilkan juga 0 sehingga motor tidak berputar atau berhenti berputar. dapat disimpulkan bahwa nilai yang dihasilkan potensio akan sebanding dengan nilai lebar pulsa dan sebanding juga dengan kecepatan putar motor DC ( nilai hasil potensio sebanding lebar pulsa sebanding dengan kecepatan putar motor).

penjelasan program:

byte pot = A0; //Deklarasi pin A0 digunakan untuk potensiometer ( menerima output potensiometer)

byte motor = 9; //Deklarasi pin 9 digunakan sebagai input untuk motor

int nilai; //Deklarasi variabel nilai yaitu bilangan integer

int output; //Deklarasi variabel output dengan menggunakan bilangan integer

void setup() { //Semua kode dalam  bait ini dieksekusi sekali oleh program

 pinMode(motor, OUTPUT); //Deklarasi motor sebagai media OUTPUT

 Serial.begin(9600); //melakukan Set baud rate sebesar 9600
}
void loop() { //Semua kode dalam fungsi ini dieksekusi berulang oleh program

 nilai = analogRead(pot); //perintah untuk membaca nilai potensiometer

 output = map(nilai, 0, 1023, 0, 255); //melakukan mapping untuk nilai ADC 0-1023 dan PWM
0-225

 analogWrite(motor, output); //deklarasi PWM sebagai keluaran pada motor

 Serial.print("potensiometer: ");// menampilkan kata potensiometer

 Serial.print(nilai);// menampilkan nilai yang terbaca

 Serial.print(" "); //memberi sapsi

 Serial.print("output: ");//menampilkan kata output

 Serial.print(output);//menampilkan nilai output yang terbaca

 delay(2);// delai selama 2 milidetik
}

 7. link download [kembali]
 

Tidak ada komentar:

Posting Komentar