Mạch điều khiển động cơ dòng cao sử dụng Arduino

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Trong dự án này, chúng tôi thảo luận về cách kiểm soát tốc độ động cơ sử dụng mạch Arduino PWM và cách triển khai điều khiển thuận chiều hoặc ngược chiều trong động cơ DC bằng Arduino thông qua một vài công tắc nút nhấn. Bất kỳ động cơ dòng cao nào lên đến 30 amp đều có thể được điều khiển bằng thiết lập này

BởiAnkit Negi



Động cơ là một thành phần rất thiết yếu trong điện và điện tử vì chúng được sử dụng như thiết bị truyền động trong nhiều lĩnh vực.

Chúng ta cần động cơ cho các ứng dụng nhỏ như robot cũng như trong các lĩnh vực sử dụng động cơ hạng nặng (công nghiệp, v.v.).



Giờ đây, các động cơ được sử dụng cho các ứng dụng nhỏ có thể được điều khiển dễ dàng vì chúng không tốn nhiều dòng điện (dưới 2amp).

Và những động cơ này có thể được điều khiển dễ dàng bằng cách sử dụng vi điều khiển như arduino với ic trình điều khiển động cơ như L298 hoặc L293D .

Nhưng động cơ được sử dụng cho mục đích nặng (lớn hơn 10amp), không thể điều khiển sử dụng những ic này vì chúng có thể cung cấp dòng điện giới hạn (tối đa 2amp). Vì vậy, làm thế nào các động cơ được điều khiển hơn?

Đáp án đơn giản: sử dụng Rơle , hoạt động như công tắc, tức là chuyển đổi dòng điện lớn bằng dòng điện nhỏ. Bằng cách này, có thể đạt được hai điều:

1. Chạy chính động cơ hiện tại của chúng tôi.

2. Cách ly mạch, do đó ngăn ngừa mọi cú sốc.

Bây giờ bất kỳ bộ vi điều khiển nào cũng có thể được sử dụng để chuyển các rơle này. Chúng tôi sẽ sử dụng arduino UNO ở đây.

CÁC THÀNH PHẦN CẦN THIẾT CHO DỰ ÁN NÀY:

1. ARDUINO UNO: để cung cấp logic đầu vào cho phía chính của rơle.

2. SPDT RELAY -2: cần có hai rơle để quay theo cả hai hướng. Tiếp điểm phải được đánh giá để xử lý các thông số kỹ thuật động cơ hiện tại cao

Hình ảnh chuyển tiếp màu xanh lam rơ le hiển thị N / O N / C và chi tiết cực3.Power Mosfet: Bạn có thể sử dụng Mosfet IRF1010 nút nhấn microcwitch

4. PIN (12v): cấp nguồn cho động cơ.

5. HAI PUSHBUTTONS: để cung cấp đầu vào cho arduino (tức là khi được nhấn và khi không được nhấn)

Điện trở 10k 1/4 watt

6. HAI ĐIỆN TRỞ 10K: để gỡ lỗi (giải thích bên dưới)

Mạch điều khiển động cơ dòng cao sử dụng Arduino

7. DÂY KẾT NỐI: để tạo kết nối.

SCHEMATIC:

Mạch điều khiển động cơ Arduino PWM

Thực hiện các kết nối như trong hình.

1. Kết nối đầu cuối thường mở của cả rơ le với cực dương của pin và đầu cuối thường đóng với cực âm của pin.

2. Kết nối động cơ vào giữa đầu cuối còn lại (trong số ba) của mỗi rơ le.

3. Kết nối một đầu cuối của phía sơ cấp của rơ le với các chân đầu ra của arduino như được chỉ định trong mã và đầu cuối khác với đất.

4. Kết nối một đầu cuối của cả hai nút với chân 5v của arduino và đầu cuối khác với chân đầu vào như được chỉ định trong mã.

4. ** Đừng quên kết nối các điện trở vì chúng rất quan trọng đối với hoạt động bình thường của mạch này, như được giải thích bên dưới:

TẠI SAO ĐIỆN TRỞ ĐƯỢC KẾT NỐI?

Bạn có thể thấy rằng không có gì được kết nối với các chân đầu vào của Arduino, nhưng điều đó không có nghĩa là các sơ đồ chân này có thể là một số 0 hợp lý khi công tắc được chỉ định đang mở

Thay vào đó, nó ngụ ý rằng khi công tắc đang mở, arduino có thể nhận bất kỳ giá trị ngẫu nhiên nào giữa logic 0 và logic 1, điều này không tốt chút nào (điều này được gọi là nảy).

Vì vậy, những gì chúng tôi muốn ở đây là khi không có gì được kết nối với chân đầu vào, tức là nút nhấn mở, arduino nhận đầu vào 0 từ chân này.

Và để đạt được điều này, chân cắm được nối trực tiếp với đất trước nút bấm thông qua điện trở. Nếu nó được kết nối trực tiếp với đất mà không có điện trở thì rất có thể nó sẽ bị cháy vì chân cắm sẽ bị nối đất và một lượng lớn dòng điện sẽ chạy qua. Để ngăn chặn điều này, một điện trở được kết nối ở giữa.

Điện trở này được gọi là điện trở kéo xuống vì nó đang kéo logic trên chân về 0. Và quá trình này được gọi là gỡ lỗi.

MÃ:

Ghi mã này vào arduino của bạn.

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)
}
}

Làm việc (hiểu mã):

• KIỂM SOÁT HƯỚNG:

A. Khi cả hai nút đều không được ấn:

Trong điều kiện này, arduino nhận đầu vào 0 từ cả hai chân. Như được chỉ định trong mã trong điều kiện này, cả hai chân đầu ra đều cho mức logic 0 (THẤP):

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

digitalWrite (9, LOW)}

Vì điện áp đầu vào đến sơ cấp của cả hai rơle bằng không, đầu cuối thứ cấp của cả hai vẫn ở vị trí thường đóng. Do đó, không có vôn ở cả hai cực của động cơ, gây ra không quay.

B. Khi nhấn nút X nhưng không nhấn nút Y:

Trong điều kiện này, arduino nhận 0 đầu vào từ chân 4 nhưng đầu vào1 từ chân3. Như được chỉ định trong mã trong điều kiện này, chân 6 phải ở mức logic 1 (CAO) trong khi chân 9 ở mức logic 0 (THẤP):

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

digitalWrite (9, LOW)}

Vì điện áp đầu vào cho rơle số 1 cao, công tắc của rơle này được chuyển sang trạng thái thường mở trong khi điện áp đầu vào cho rơle 2 thấp, công tắc của rơle này vẫn ở trạng thái thường đóng gây ra 12v và 0v tương ứng trên các đầu nối động cơ, gây ra quay của động cơ theo một chiều.

C. Khi nhấn nút Y nhưng không nhấn nút X thì:

Trong điều kiện này, arduino nhận 1 đầu vào từ chân 4 nhưng đầu vào0 từ chân 3. Như được chỉ định trong mã trong điều kiện này, chân 6 phải ở mức logic 0 (THẤP) trong khi chân 9 ở mức logic 1 (CAO):

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

digitalWrite (9, HIGH)}

Do điện áp đầu vào của rơle số 2 lúc này cao, công tắc của rơle này được chuyển sang trạng thái thường mở trong khi điện áp đầu vào của rơle số 1 thấp, công tắc của rơle này vẫn ở trạng thái thường đóng gây ra 12v và 0v tương ứng trên động cơ đầu cuối, gây quay động cơ theo hướng khác.

D. Khi nhấn cả hai nút:

Trong điều kiện này, arduino nhận 1 đầu vào từ cả hai chân. Như được chỉ định trong mã trong điều kiện này, cả hai chân đầu ra đều cho mức logic 0 (THẤP):

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

digitalWrite (9, LOW)}

Vì điện áp đầu vào đến sơ cấp của cả hai rơle bằng không, đầu cuối thứ cấp của cả hai vẫn ở vị trí thường đóng. Do đó, không có vôn ở cả hai đầu của động cơ, gây ra không quay.

• KIỂM SOÁT TỐC ĐỘ:

Giả sử chiết áp ở vị trí như vậy khi nó cho 0 vôn làm đầu vào chân A0 của arduino. Do đó, arduino ánh xạ giá trị này là 0 và do đó đưa ra 0 dưới dạng PWM đầu ra trên chân # 10, tức là

analogWrite (10,0) // ghi giá trị được ánh xạ vào chân thứ 10 làm đầu ra

Do đó cổng của mosfet nhận được dòng điện 0 do nó vẫn tắt và động cơ ở vị trí TẮT chuyển đổi.

Tuy nhiên, khi nồi được xoay và giá trị của nồi thay đổi, điện áp trên chân A0 cũng thay đổi và giá trị này được ánh xạ trên chân số 10 với độ rộng PWM tăng tương ứng, gây ra nhiều dòng điện hơn chạy qua động cơ và mosfet tiêu hao, do đó cho phép động cơ tăng tốc độ tương ứng, và điều tương tự cũng xảy ra ngược lại.

Vì vậy, từ cuộc thảo luận ở trên, chúng ta có thể thấy Arduino có thể được sử dụng như thế nào để điều khiển tốc độ cũng như hướng (chuyển tiếp ngược) của động cơ DC dòng cao chỉ bằng cách điều chỉnh nồi được chỉ định và thông qua một vài nút nhấn.

Cập nhật : Đối với động cơ dòng điện cao, vui lòng sử dụng rơ le 12V / 30 amp và giai đoạn trình điều khiển BJT để vận hành các rơ le công suất cao này như được chỉ ra trong sơ đồ sửa đổi sau:




Một cặp: Mạch cảm biến đỗ xe ngược chiều với báo động Tiếp theo: Mạch tạo tín hiệu Arduino PWM