Rangkaian Kontrol Motor Arus Tinggi menggunakan Arduino

Coba Instrumen Kami Untuk Menghilangkan Masalah





Dalam proyek ini, kami membahas bagaimana caranya mengontrol kecepatan motor menggunakan rangkaian PWM Arduino, dan cara menerapkan kontrol maju atau arah mundur pada motor DC menggunakan Arduino melalui beberapa sakelar tombol tekan. Motor arus tinggi apa pun hingga 30 amp dapat dikontrol menggunakan pengaturan ini

OlehAnkit Negi



Motor adalah komponen yang sangat penting dalam kelistrikan dan elektronik karena digunakan sebagai aktuator di banyak bidang.

Kami membutuhkan motor untuk aplikasi kecil seperti robotika serta di area di mana motor berat digunakan (industri, dll.).



Sekarang motor yang digunakan untuk aplikasi kecil dapat dikontrol dengan mudah karena tidak membutuhkan banyak arus (kurang dari 2amp).

Dan motor ini dapat dengan mudah dikendalikan dengan menggunakan mikrokontroler seperti Arduino with ic driver motor seperti L298 atau L293D .

Tapi motor yang digunakan untuk keperluan berat (lebih besar dari 10amp), tidak bisa dikendalikan menggunakan ic ini karena mereka dapat memasok arus terbatas (maks 2amp). Jadi bagaimana motor ini dikendalikan?

Jawabannya sederhana: menggunakan Relay , Yang bertindak sebagai sakelar yaitu sakelar arus besar menggunakan arus kecil. Dengan cara ini dua hal dapat dicapai:

1. Menjalankan motor arus tinggi kita sendiri.

2. Mengisolasi sirkuit, sehingga mencegah guncangan.

Sekarang setiap mikrokontroler dapat digunakan untuk mengalihkan relai ini. Kami akan menggunakan arduino UNO di sini.

KOMPONEN YANG DIPERLUKAN UNTUK PROYEK INI:

1. ARDUINO UNO: memberikan logika masukan ke sisi primer relai.

2. SPDT RELAY -2: dua relai diperlukan untuk rotasi di kedua arah. Kontak harus diberi peringkat untuk menangani spesifikasi motor arus tinggi

Relay gambar warna biru relai menunjukkan N / O N / C dan detail tiang3. Power Mosfet: Anda dapat menggunakan mosfet IRF1010 sakelar tombol tekan

4. BATERAI (12v): untuk mensuplai tenaga ke motor.

5. TWO PUSHBUTTONS: untuk memberikan input ke arduino (yaitu saat ditekan dan saat tidak ditekan)

Resistor 10k 1/4 watt

6. DUA RESISTOR 10K: untuk debouncing (dijelaskan di bawah)

Rangkaian Kontrol Motor Arus Tinggi menggunakan Arduino

7. CONNECTING WIRES: untuk membuat koneksi.

SKEMA:

Sirkuit Kontrol Motor PWM Arduino

Buat koneksi seperti yang ditunjukkan pada gambar.

1. Hubungkan terminal yang biasanya terbuka dari kedua relai ke terminal positif baterai dan terminal yang biasanya tertutup ke terminal negatif baterai.

2. Hubungkan motor di antara terminal yang tersisa (dari tiga) dari setiap relai.

3. Hubungkan satu terminal sisi primer relai ke pin keluaran Arduino seperti yang ditentukan dalam kode dan terminal lainnya ke ground.

4. Hubungkan satu terminal dari kedua tombol ke pin 5v arduino dan terminal lainnya ke pin input seperti yang ditentukan dalam kode.

4. ** Jangan lupa untuk menghubungkan resistor karena sangat penting untuk berfungsinya rangkaian ini, seperti yang dijelaskan di bawah ini:

MENGAPA RESISTOR TERHUBUNG?

Anda mungkin menemukan bahwa tidak ada sama sekali yang terhubung ke pin input Arduino, tetapi itu tidak berarti pinout ini mungkin nol logis ketika sakelar yang ditunjukkan terbuka

Sebaliknya itu menyiratkan bahwa ketika sakelar terbuka, arduino dapat mengambil nilai acak apa pun antara logika 0 dan logika 1, yang tidak bagus sama sekali (ini disebut memantul).

Jadi yang kami inginkan di sini adalah ketika tidak ada yang terhubung ke pin input yaitu tombol tekan terbuka, arduino mengambil 0 input dari pin.

Dan untuk mencapai ini, pin langsung dihubungkan ke ground sebelum tombol tekan melalui resistor. Jika terhubung langsung ke ground tanpa resistor, ada kemungkinan besar itu akan terbakar karena pin akan disingkat ke ground dan sejumlah besar arus akan mengalir. Untuk mencegah hal ini, sebuah resistor dihubungkan di antaranya.

Resistor ini disebut resistor pulldown karena menarik logika pada pin ke 0. Dan proses ini disebut debouncing.

KODE:

Salin kode ini ke arduino Anda.

int x// initialise variables
int y
int z
int w
void setup() {
pinMode(6,OUTPUT)//initialise pin 6 as output to RL1
pinMode(9,OUTPUT)//initialise pin 9 as output to RL2
pinMode(3,INPUT)//initialise pin 3 as input
pinMode(4,INPUT)//initialise pin 4 as input
pinMode(10,OUTPUT)//initialise PWM pin 8 as output to gate of mosfet
pinMode(A0,INPUT)//initialise pin A0 as input from pot.
Serial.begin(9600)
}
void loop() {
z=analogRead(A0)// read values from potentiometer in terms of voltage
w= map(z,0,1023,0,255)// map those values from 0 to 255
analogWrite(10,w)// write the mapped value to 10thpin as output
delay(1)//on time period of mosfet
analogWrite(10,w)
delay(1)//off time period of ,mosfet
Serial.println(z)//print value from pot to serial monitor
Serial.println(w)//print mapped value to serial monitor
x= digitalRead(3)
y= digitalRead(4)
if(x==0 && y==0){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)}
if(x==1 && y==0){digitalWrite(6,HIGH)// clockwise rotation of motor
digitalWrite(9,LOW)}
if(x==0 && y==1){digitalWrite(6,LOW)// anticlockwise rotation of motor
digitalWrite(9,HIGH)}
if(x==1 && y==1){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)
}
}

Bekerja (memahami kode):

• PENGENDALIAN ARAH:

A. Saat kedua tombol tidak ditekan:

Pada kondisi ini arduino mengambil 0 masukan dari kedua pin tersebut. Seperti yang ditentukan dalam kode dalam kondisi ini kedua pin keluaran memberikan 0 logika (LOW):

jika (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

Karena tegangan input ke primer dari kedua relai adalah nol, terminal sekunder keduanya tetap pada posisi normal tertutup. Jadi ada nol volt di kedua terminal motor, menyebabkan tidak ada putaran.

B.Ketika tombol X ditekan tetapi Y tidak ditekan:

Pada kondisi ini, arduino mengambil 0 masukan dari pin 4 tetapi masukan1 dari pin3. Seperti yang ditentukan pada kode pada kondisi ini pin 6 harus berada pada logika 1 (HIGH) sedangkan pin 9 pada logika 0 (LOW):

jika (x == 1 && y == 0) {digitalWrite (6, HIGH)

digitalWrite (9, LOW)}

Karena tegangan input ke relai # 1 tinggi, sakelar relai ini dilempar ke kondisi normal terbuka sedangkan tegangan input ke relai 2 rendah, sakelar relai ini tetap dalam kondisi normal tertutup menyebabkan 12v dan 0v masing-masing melintasi terminal motor, menyebabkan putaran motor dalam satu arah.

C.Ketika tombol Y ditekan tetapi X tidak ditekan:

Pada kondisi ini, arduino mengambil 1 input dari pin 4 tetapi input0 dari pin3. Seperti yang ditentukan pada kode pada kondisi ini pin 6 harus pada logika 0 (LOW) sedangkan pin 9 pada logika 1 (HIGH):

jika (x == 1 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, HIGH)}

Karena tegangan input ke relai # 2 tinggi kali ini, sakelar relai ini dilempar ke kondisi normal terbuka sedangkan tegangan input ke relai # 1 rendah, sakelar relai ini tetap dalam kondisi normal tertutup menyebabkan masing-masing 12v dan 0v melintasi motor terminal, menyebabkan putaran motor ke arah lain.

D. Saat kedua tombol ditekan:

Pada kondisi ini arduino mengambil 1 masukan dari kedua pin tersebut. Seperti yang ditentukan dalam kode dalam kondisi ini kedua pin keluaran memberikan 0 logika (LOW):

jika (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

Karena tegangan input ke primer dari kedua relai adalah nol, terminal sekunder keduanya tetap pada posisi normal tertutup. Jadi ada volt nol di kedua terminal motor, menyebabkan tidak ada putaran.

• KONTROL KECEPATAN:

Misalkan potensiometer berada pada posisi seperti itu ketika memberikan 0 volt sebagai input ke pin A0 arduino. Karena ini, arduino memetakan nilai ini sebagai 0 dan dengan demikian memberikan 0 sebagai output PWM pada pin # 10 yaitu,

analogWrite (10,0) // tulis nilai yang dipetakan ke pin ke-10 sebagai output

Oleh karena itu gerbang mosfet mendapat arus 0 karena itu tetap off dan motor dalam posisi OFF.

Namun, karena pot diputar dan nilai pot bervariasi, tegangan pada pin A0 juga bervariasi, dan nilai ini dipetakan pada pin # 10 dengan lebar PWM yang meningkat secara proporsional, menyebabkan lebih banyak arus mengalir melalui motor dan mosfet. drain, yang pada gilirannya memungkinkan motor mendapatkan kecepatan lebih secara proporsional, dan hal yang sama terjadi sebaliknya.

Dengan demikian dari pembahasan di atas kita dapat melihat bagaimana Arduino dapat digunakan untuk mengontrol kecepatan serta arah (mundur ke depan) dari motor DC arus tinggi hanya dengan menyesuaikan pot yang ditentukan dan melalui beberapa tombol tekan.

Memperbarui : Untuk motor arus tinggi, gunakan relai 12V / 30 amp dan tahap driver BJT untuk mengoperasikan relai daya tinggi ini seperti yang ditunjukkan dalam diagram yang dimodifikasi berikut:




Sepasang: Sirkuit Sensor Parkir Mobil Terbalik dengan Alarm Berikutnya: Sirkuit Generator Sinyal PWM Arduino