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 | Dim t As String Dim step As String Dim chieu As String Private Sub cmd_Back_Click() Form1.Show Unload Me End Sub Private Sub cmd_C_Click() If MSComm1.PortOpen = False Then MsgBox "Da Ket Noi Cong Com" With MSComm1 .CommPort = Val(Trim$(Cmb.Text)) .Settings = "9600,N,8,1" .InBufferSize = 1024 .InputLen = 0 .RThreshold = 1 .SThreshold = 1 .OutBufferSize = 512 .InputMode = comInputModeText End With 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 End If End Sub Private Sub cmd_D_Click() If cmd_Stop.Enabled = True Then MsgBox " Nhan Stop truoc khi ngat ket noi", vbOKCancel ElseIf MSComm1.PortOpen = True Then 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 End If End Sub Private Sub cmd_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 End Sub Private Sub cmd_Stop_Click() cmd_Stop.Enabled = False cmd_Run.Enabled = True MSComm1.Output = "S" lbl_Status.Caption = "Stop" End Sub Private Sub Command1_Click() End End Sub Private Sub Form_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 End Sub Private Sub Hsc_SoBuoc_Change() txt_SoBuoc.Text = Hsc_SoBuoc.Value End Sub Private Sub Opt_ChieuQuay_Click(Index As Integer) chieu = Left(Opt_ChieuQuay(Index).Caption, 1) End Sub Private Sub Opt_Step_Click(Index As Integer) step = Opt_Step(Index).Caption End Sub |
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 String n ; void setup() { Serial.begin(9600); pinMode(EN,OUTPUT); pinMode (MS1,OUTPUT); pinMode (MS2,OUTPUT); pinMode (MS3,OUTPUT); pinMode(STEP,OUTPUT); pinMode(DIR,OUTPUT); digitalWrite(EN,HIGH); } boolean ChieuQuayIndex(String StrInput){ boolean Chieu; String StrCmd; for(int c=0;c<StrInput.length();c++){ StrCmd=StrInput.substring(c,c+1); if(StrCmd == "T" || StrCmd == "t"){ Chieu=true; } else if(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: