Đây là tài liệu khá tuyệt về động cơ bước và mạch tinh chỉnh và điều khiển động cơ cách mình kiếm tìm được. Trong tài liệu này đã có tác giả trình bày 4 nội dung chính: reviews và Tổng quan hộp động cơ bước, Phân loại hộp động cơ bước, Mạch điều khiển động cơ bước, hạn chế dòng điện. Xin cảm ơn mang lại tác giả, nội dung cầm cố thể:


Giới thiệu về bộ động cơ bước

Động cơ bước thực ra là một đụng cơ đồng điệu dùng để biến đổi các tín hiệu tinh chỉnh dưới dạng những xung điện rời rạc tiếp nối nhau thành các hoạt động góc xoay hoặc các hoạt động của roto và có công dụng cố định roto vào mọi vị trí bắt buộc thiết. Động cơ bước làm việc được là nhờ có bộ đưa mạch điện tử đưa các tín hiệu tinh chỉnh và điều khiển vào stato theo một thiết bị tự và một tần số tuyệt nhất định. Tổng thể góc xoay của roto tương ứng với mốc giới hạn chuyển mạch, cũng như chiều tảo và tốc độ quay của roto, phụ thuộc vào vào đồ vật tự đổi khác và tần số chuyển đổi. Khi một xung điện áp đặt vào cuộn dây stato (phần ứng) của động cơ bước thì roto (phần cảm) của bộ động cơ sẽ cù đi một góc tuyệt nhất định, góc ấy là 1 bước quay của rượu cồn cơ. Khi các xung năng lượng điện áp để vào những cuộn dây phần ứng biến hóa liên tục thì roto đã quay liên tục. (Nhưng thực chất chuyển động đó vẫn luôn là theo các bước rời rạc).

Bạn đang xem: Step motor và mạch điều khiển

Hệ thống tinh chỉnh và điều khiển động cơ bước

Một khối hệ thống có thực hiện động cơ bước hoàn toàn có thể được khái quát theo sơ thứ sau.

*

D.C.SUPPLY: gồm nhiệm vụ cung cấp nguồn một chiều đến hệ thống. Mối cung cấp một chiều này rất có thể lấy từ pin nếu hộp động cơ có công suất nhỏ. Với các động cơ có công suất lớn hoàn toàn có thể dùng điện áp nguồn được chỉnh giữ từ nguồn luân phiên chiều.


CONTROL LOGIC: Đây là khối tinh chỉnh logic. Có nhiệm vụ tạo nên tín hiệu điều khiển và tinh chỉnh động cơ. Khối súc tích này rất có thể là một mối cung cấp xung, hoặc rất có thể là một khối hệ thống mạch điện tử. Nó tạo nên các xung điều khiển. Động cơ bước có thể điều khiển theo cả bước hoặc theo nửa bước.

POWER DRIVER: Có nhiệm vụ cấp mối cung cấp điện đã được điều chỉnh để mang vào động cơ. Nó lấy điện từ bỏ nguồn cung ứng và xung tinh chỉnh từ khối điều khiển để tạo ra dòng điện cấp cho động cơ hoạt động.

STEPPER MOTOR: Động cơ bước. Các thông số của động cơ gồm có: cách góc, sai số cách góc, mômen kéo, mômen hãm, mômen làm cho việc.Đối cùng với hệ tinh chỉnh động cơ bước, ta thấy chính là một hệ thống khá đơn giản dễ dàng vì không hề có phần tử phản hồi. Điều này còn có được vì hộp động cơ bước trong vượt trình vận động không tạo ra sai số tích lũy, không nên số của hộp động cơ do không đúng số trong lúc chế tạo. Việc thực hiện động cơ bước tuy rước lai độ đúng đắn chưa cao nhưng càng ngày càng được thực hiện phổ biến. Vì công suất và độ đúng mực của bước góc đang càng ngày được cải thiện.

Xem thêm: Những Thực Phẩm Kích Thích Sự Rụng Trứng Ở Chị Em Phải Bất Ngờ

Bước góc của động cơ bước được chế tạo theo bảng tiêu chuẩn chỉnh sau:

*

Nguyên tăc điều khiển và tinh chỉnh động cơ bước solo cực

Động cơ bước đối chọi cực, ( có thể là hộp động cơ vĩnh cửu hoặc động cơ hỗn vừa lòng ) có 5,6 hoặc 8 dây ra thường được quấn như sơ đồ gia dụng dưới. Khi dùng, những đầu nối trung tâm thường được nối vào rất dương nguồn cấp, với hai đầu còn lại của từng mấu theo lần lượt nối khu đất để hòn đảo chiều sóng ngắn tạo vì quận đó.

*
động cơ bước đơn cực

Tín hiệu điều khiển. Điều khiển đủ bước (full step) :


Winding 1a 1000100010001000100010001Winding 1b 0010001000100010001000100 Winding 2a 0100010001000100010001000 Winding 2b 0001000100010001000100010time —>Winding 1a 1100110011001100110011001Winding 1b 0011001100110011001100110 Winding 2a 0110011001100110011001100 Winding 2b 1001100110011001100110011time —>Điều khiển nửa bước ( half step )Winding 1a 11000001110000011100000111Winding 1b 00011100000111000001110000 Winding 2a 01110000011100000111000001 Winding 2b 00000111000001110000011100time —>

Mạch điều khiển và tinh chỉnh động cơ bước

Mạch điều khiển và tinh chỉnh động cơ bước bao gồm 1 số chức năng sau đây:

Tạo những xung với phần đông tần số không giống nhau.Chuyển đổi các phần cho cân xứng với máy tự kích từ.Làm giảm những dao bộ động cơ học.Đầu vào của mạch tinh chỉnh là các xung. Yếu tố của mạch là những bán dẫn, vi mạch. Kích thích các phần của hộp động cơ bước theo thứ tự 1-2-3-4 do các transistor năng suất T1 cho T4 thực hiện.Với việc thay đổi vị trí cỗ chuyển mạch, hễ cơ có thể quay theo chiều kim đồng hồ hoặc ngược lại.

*

Điện áp được cung cấp qua các khoá chuyển để nuôi những cuộn dây, tạo ra từ trường làm quay rotor. Các khoá tại chỗ này không rứa thể, hoàn toàn có thể là bất cứ thiết bị đóng cắt nào tinh chỉnh được như rơle, transitor công suất… biểu đạt điều khiển rất có thể được giới thiệu từ bộ tinh chỉnh như vi mạch siêng dụng, sản phẩm tính. Với cồn cơ nhỏ có dòng cỡ 500 mili Ampe, rất có thể dùng IC nhiều loại dãy darlington collector hở như : ULN2003, ULN2803 ( Allegro Microsystem)

*

IC chúng ta ULN200x có đầu vào cân xứng TTL, những đầu emitor được nối với chân 8. Mỗi transitor darlington được bảo đảm bởi nhị diode. Một mắc thân emitor tới collector ngăn điện áp ngược lớn để trên transitor. Diode trang bị hai nối collector với chân 9. Ví như chân 9 nối với rất dương của cuộn dây, tạo thành thành mạch bảo vệ cho transitor.

Với những động cơ lớn gồm dòng > 0.5A những IC bọn họ ULN không thỏa mãn nhu cầu được ta rất có thể dùng những Tranzitor trường(IRF).Một số một số loại IRF thông dụng: IRF540 tranzitor ngược hoàn toàn có thể chịu mẫu đến 20A


IRF640 tranzitor ngược có thể chịu mẫu đến 18A IRF250 tranzitor ngược rất có thể chịu cái đến 30A .

Sơ vật mạch được thiết kế theo phong cách như sau:

*

Code

#include

#include // Khai bao bien

unsigned char stepA<> = 0xFF,0xFE,0xFD,0xFB,0xF7, stepB<>= 0xFF,0xEF,0xDF,0xBF,0x7F,

stepC<> = 0xFF,0xEF,0xDF,0xBF,0x7F; unsigned char indexA, indexB, indexC; unsigned char n_data; unsigned char n_step=10; unsigned int n_step3=5000,n_i; //——————// Declare your global variables here void main(void)

{

// Declare your local variables here

// Input/Output Ports initialization

// Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T

State1=T State0=T PORTA=0xFF;

DDRA=0xFF;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T

State1=T State0=T PORTB=0xFF;

DDRB=0xFF;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T

State1=T State0=T PORTC=0xFF;

DDRC=0xFF;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T

State1=T State0=T

PORTD=0xFF;

DDRD=0xFF;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

// Mode: Normal top=FFh // OC0 output: Disconnected

TCCR0=0x00;

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer 1 Stopped

// Mode: Normal top=FFFFh

// OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// input Capture on Falling Edge

// Timer 1 Overflow Interrupt: Off

// input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0x00;

TCCR1B=0x00;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer 2 Stopped

// Mode: Normal top=FFh

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

OCR2=0x00; // External Interrupt(s) initialization

// INT0: Off

// INT1: Off

// INT2: Off

MCUCR=0x00;

MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// Analog Comparator initialization

// Analog Comparator: Off // Analog Comparator input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; while (1) { // Place your code here if(indexA ++>3) indexA = 1; if(indexB ++>3) indexB = 1;