MODUL 2
PULSE WIDTH MODULATION (PWM)
&
ANALOG DIGITAL CONVERTER (ADC)
&
ANALOG DIGITAL CONVERTER (ADC)
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]
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