Nội Dung Bài Viết
1.GIỚI THIỆU ĐỘNG CƠ BƯỚC
1.1. Giới thiệu và phân loại
1.1.1. Giới thiệu
Động cơ bước là một loại động cơ điện có nguyên lý và ứng dụng khác biệt với đa số các động cơ điện thông thường. Chúng thực chất là một động cơ đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển động của rôto có khả năng cố định rôto vào các vị trí cần thiết.
Về cấu tạo, động cơ bước có thể được coi là tổng hợp của hai loại động cơ: Động cơ một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ.
Hình 1. Động cơ bước
1.1.2. Phân loại
Động cơ bước có nhiệu loại khác nhau:
-Ðộng cơ biến từ trở
-Ðộng cơ đơn cực
-Ðộng cơ hai cực
-Ðộng cơ nhiều pha
1.2. Nguyên lý hoạt động
Động cơ bước không quay theo cơ chế thông thường, chúng quay theo từng bước nên có độ chính xác rất cao về mặt điều khiển học.
Chúng làm việc nhờ các bộ chuyển mạch điện tử đưa các tín hiệu điều khiển vào stato theo thứ tự và một tần số nhất định. Tổng số góc quay của rôto tương ứng với số lần chuyển mạch, cũng như chiều quay và tốc độ quay của rôto phụ thuộc vào thứ tự chuyển đổi và tần số chuyển đổi.
2. DRV8825
2.1. DRV8825
Hình 2 . Drv8825
2.2. Sơ đồ kết nối điều khiển động cơ bước bằng Drv8825
Hình 3 . Sơ đồ kết nối điều khiển động cơ bước
3. Phần Visual Basic 6.0
3.1. Giao diện VB
– Giới thiệu
– Giao diện chính
3.2. Code VB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | DimtAsString DimstepAsString DimchieuAsString PrivateSubcmd_Back_Click() Form1.Show UnloadMe EndSub PrivateSubcmd_C_Click() IfMSComm1.PortOpen=FalseThen MsgBox"Da Ket Noi Cong Com" WithMSComm1 .CommPort=Val(Trim$(Cmb.Text)) .Settings="9600,N,8,1" .InBufferSize=1024 .InputLen=0 .RThreshold=1 .SThreshold=1 .OutBufferSize=512 .InputMode=comInputModeText EndWith MSComm1.PortOpen=True cmd_D.Enabled=True cmd_C.Enabled=False cmd_Run.Enabled=True Opt_ChieuQuay(0).Enabled=True Opt_ChieuQuay(1).Enabled=True Opt_Step(0).Enabled=True Opt_Step(1).Enabled=True Opt_Step(2).Enabled=True Opt_Step(3).Enabled=True Opt_Step(4).Enabled=True EndIf EndSub PrivateSubcmd_D_Click() Ifcmd_Stop.Enabled=TrueThen MsgBox" Nhan Stop truoc khi ngat ket noi",vbOKCancel ElseIfMSComm1.PortOpen=TrueThen MSComm1.PortOpen=False MsgBox"Da ngat ket noi voi cong com",vbExclamation+vbOKOnly," " cmd_C.Enabled=True cmd_D.Enabled=False cmd_Run.Enabled=False Opt_ChieuQuay(0).Enabled=False Opt_ChieuQuay(1).Enabled=False Opt_Step(0).Enabled=False Opt_Step(1).Enabled=False Opt_Step(2).Enabled=False Opt_Step(3).Enabled=False Opt_Step(4).Enabled=False EndIf EndSub PrivateSubcmd_Run_Click() t=chieu&"B"&step&" X"&txt_SoBuoc.Text&" R" MSComm1.Output=t lbl_Status.Caption="Chieu: "&chieu&vbCrLf&"Mode: "&step&vbCrLf&" So buoc: "&txt_SoBuoc.Text cmd_Stop.Enabled=True cmd_Run.Enabled=False EndSub PrivateSubcmd_Stop_Click() cmd_Stop.Enabled=False cmd_Run.Enabled=True MSComm1.Output="S" lbl_Status.Caption="Stop" EndSub PrivateSubCommand1_Click() End EndSub PrivateSubForm_Load() cmd_C.Enabled=True cmd_D.Enabled=False Cmb.Text="4" cmd_Run.Enabled=False Opt_ChieuQuay(0).Enabled=False Opt_ChieuQuay(1).Enabled=False Opt_Step(0).Enabled=False Opt_Step(1).Enabled=False Opt_Step(2).Enabled=False Opt_Step(3).Enabled=False Opt_Step(4).Enabled=False EndSub PrivateSubHsc_SoBuoc_Change() txt_SoBuoc.Text=Hsc_SoBuoc.Value EndSub PrivateSubOpt_ChieuQuay_Click(IndexAsInteger) chieu=Left(Opt_ChieuQuay(Index).Caption,1) EndSub PrivateSubOpt_Step_Click(IndexAsInteger) step=Opt_Step(Index).Caption EndSub |
4. Code arduino
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #define EN 2 #define MS1 3 #define MS2 4 #define MS3 5 #define STEP 6 #define DIR 7 Stringn; voidsetup(){ Serial.begin(9600); pinMode(EN,OUTPUT); pinMode(MS1,OUTPUT); pinMode(MS2,OUTPUT); pinMode(MS3,OUTPUT); pinMode(STEP,OUTPUT); pinMode(DIR,OUTPUT); digitalWrite(EN,HIGH); } booleanChieuQuayIndex(StringStrInput){ booleanChieu; StringStrCmd; for(intc=0;c<StrInput.length();c++){ StrCmd=StrInput.substring(c,c+1); if(StrCmd=="T"||StrCmd=="t"){ Chieu=true; } elseif(StrCmd=="N"||StrCmd=="n"){ Chieu=false; } } return(Chieu); } ------------------------------------------------------------------------------------------------------------------------------- |
Download code vb6 và arduino
Bài viết các bạn có thể tham khảo: