MENGATUR KECEPATAN MOTOR DC ATAU MEREDUPKAN LAMPU PADA ARDUINO

Konsep ADC

Pada arduino ada 6 buah Pin Analog yaitu pin A0 samapai A5 dan membaca tegangan 0 sampai 5 volt. Dan step kenaikan pada 10 bit yaitu 0 - 1023. Nilai data digital 0 -1023 hasil konversi dari 0 - 5 volt yang sebenarnya dapat dilakukan dengan jumlah tak terhingga. Akan tetapi, mikroprosesor mempunyai keterbatasan yaitu 10 bit saja antara 0 - 1023.

Konsep PWM

Dalam mengatur kecepatan motor atau meredupkan lampu apa yang harus kita lakukan?
Berikut cara yang bisa kita lakukan :
1. Dengan mengurangi tegangan (merubah nilai arus) maka kecepatan motor akan berkurang atau lampu akan redup dengan menggunakan resistor variable. Kita bisa mengatur kecepatan motor atau mengatur kecerahan lampu dengan merubah nilai resistensinya.
2. Menyalakan dan mematikan lampu atau motor dengan cepat atau lambat dengan mengubah frekuensi. Dengan kecepatan tinggi saat lampu atau motor menyala atau mati maka mata kita tidak akan mengetahuinya. Yang kita lihat hanya kecepatan motor (cepat atau lambat) atau tingkat kecerahan lampu (reduo atau terang) berubah.

Kelemahan pada cara pertama saat mengatur kecepatan motor adalah torsi dan kekuatan akan turun saat menggerakan sesuatu ketika kita memang membutuhkan torsi yang sesuai dengan torsi motor. Maka dari itu, cara kedua lebih efektif untuk kita gunakan.

Cara kedua merupakan salah satu cara ilmu elektronika yaitu konsep PWM (Pulse Width Modulation). Dalam menggunakan fungsi PWN pada arduino kita dapat menggunakan fungsi instruksi analogWrite(). Fungsi analogWrite pada arduino memiliki nilai 8 bit (0 - 254).

Contoh Mengatur kecepatan Motor Dengan Arduino



Pin/kaki PWM pada Arduino memiliki symbol (~) seperti pada pin/kaki 3,5,6,9,10, dan 11. Frekuensi yang digunakan untuk PWM pada arduino yaitu 500Hz yang artinya pada 1 detik berlangsung 500 siklus. Manusia tidak dapat melihat dengan kecepatan itu.


Program :
const int pinLed=9;
const int pinPot=A0;
int sensor=0;
int kecerahan=0;

void setup()
{
  pinMode(pinLed, OUTPUT);
  pinMode(pinPot, INPUT);
}

void loop()
{
 sensor=analogRead(pinPot);
  kecerahan=map(sensor,0,1023,0,255);
  analogWrite(pinLed, kecerahan);
}

Penjelasan Program

PROGRAM
PENJELASAN
const int pinLed=9;
const int pinPot=A0;
int sensor=0;
int kecerahan=0;
Deklarasi Pin A0 untuk pinPot
Deklarasi Pin 9 untuk pinLed
Inisislisasi variable sensor dengan tipe  dan nilai awal 0
Inisislisasi variable kecerahan dengan tipe data int dan nilai awal 0

void setup()
{
  pinMode(pinLed, OUTPUT);
  pinMode(pinPot, INPUT);
}



Setting pinLed sebagai OUTPUT
Setting pinPot sebagai INPUT
void loop()
{
 sensor=analogRead(pinPot);
 
kecerahan=map(sensor,0,1023,0,255);
  analogWrite(pinLed, kecerahan);
}


Sensor membaca tegangan di pin A0 dan merubahnya menjadi data digital.
Nilai data ADC di variable sensor yang bernilai 0 – 1023 dibandingkan dengan nilai 0 – 255 dan nilai hasil dimasukan ke variable kecepatan.




SEMOGA BERMANFAAT



Komentar

Postingan Populer