Các chân trên Arduino của bạn là những nơi mà bạn kết nối dây để xây dựng một mạch có lẽ trong kết hợp với breadboard và một số dây.Nó thường có các ‘chân cắm’ cho phép bạn cắm dây ngayv
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH
- -
BÀI BÁO CÁO
Chủ đề: ứng dụng của arduino uno
Môn: Thực tập điện
Trang 2A.STRUCTURE OF ARDUINO UNO.
A.CẤU TẠO ARDUINO UNO.
What's on the board?
There are many varieties of Arduino boards that can be used for different purposes Some boards look a bit different , but most Arduinos have the majority of these components in common:
Có gì trên bo mạch?
Có nhiều loại bo arduino, chúng có thể được sử dụng cho nhữngmục đích khác nhau Một số bo có thể hơi khác, nhưng hầu hết cácarduino đều có chung các cầu tạo:
Power (USB / Barrel Jack)
Nguồn(USB/Giắc thùng)
Every Arduino board needs a way to be connected to a power source The Arduino UNO can be powered from a USB cable coming from your computer or a wall power supply (like this) that is terminated in a barrel jack In the picture above the USB connection
is labeled (1) and the barrel jack is labeled (2).
Mỗi bo arduino đều cần có một cách kết nối nguồn nănglượng.Arduino Uno được cung cấp năng lượng từ cáp USB kết nốivới máy tính hoặc nguồn điện tường (giống thế) thông qua giắcthùng Ở hình bên trên kết nối USB kí hiệu (1), và giắc cắm kí hiệu(2)
Trang 3The USB connection is also how you will load code onto your Arduino board More on how to program with Arduino can be found
in Installing and Programming Arduino tutorial.
Kết nối USB cũng là cách bạn đưa code vào mạch arduino củabạn Hơn nữa bạn có thể tìm hiểu thêm về cách lập trình với Arduinotrong hướng dẫn Cài đặt và lập trình Arduino
NOTE: Do NOT use a power supply greater than 20 Volts as you will overpower (and thereby destroy) your Arduino The recommended voltage for most Arduino models is between 6 and 12 Volts.
Lưu ý: Không sử dụng nguồn cung cấp quá 20V như thế bạn sẽlàm vượt quá công suất của arduino(và bị hỏng) Điện áp được yêucầu cho hầu hết các loại arduino là từ 6V đến 12 V
Pins (5V, 3.3V, GND, Analog, Digital, PWM, AREF)
The pins on your Arduino are the places where you connect wires to construct a circuit (probably in conjuction with
a breadboard and some wire) They usually have black plastic
‘headers’ that allow you to just plug a wire right into the board The Arduino has several different kinds of pins, each of which is labeled
on the board and used for different functions.
Các chân trên Arduino của bạn là những nơi mà bạn kết nối dây
để xây dựng một mạch (có lẽ trong kết hợp với breadboard và một
số dây).Nó thường có các ‘chân cắm’ cho phép bạn cắm dây ngayvào bo Có nhiều loại chân cắm khác nhau, mỗi loại đều được ghitên trên bo và được sử dụng cho các chức năng khác nhau
GND (3): Short for ‘Ground’ There are several GND pins on the Arduino, any of which can be used to ground your circuit.
GND (3): Viết tắt của ‘Ground’ Có một số chân GND trênArduino, bất kỳ trong số đó có thể được sử dụng để nối đất chomạch của bạn
Trang 45V (4) & 3.3V (5): As you might guess, the 5V pin supplies 5 volts of power, and the 3.3V pin supplies 3.3 volts of power Most of the simple components used with the Arduino run happily off of 5 or 3.3 volts.
5V (4) & 3.3V (5): Như bạn có thể đoán, chân 5V cung cấp điện
áp 5 vôn , và chân 3.3V cung cấp điện áp 3,3vôn Hầu hết các thànhphần đơn giản được sử dụng với Arduino đều sử dụng điện áp 5hoặc 3,3 volt
Analog (6): The area of pins under the ‘Analog In’ label (A0 through A5 on the UNO) are Analog In pins These pins can read the signal from an analog sensor (like a temperature sensor) and convert it into a digital value that we can read.
Chân tín hiệu tương tự (6): các chân dưới nhãn 'Analog In' (A0đến A5 trên UNO) là các chân Analog In Các chân này có thể đọctín hiệu từ một cảm biến tương tự (như cảm biến nhiệt độ) vàchuyển đổi nó thành một giá trị số mà chúng ta có thể đọc
Digital (7): Across from the analog pins are the digital pins (0 through 13 on the UNO) These pins can be used for both digital input (like telling if a button is pushed) and digital output (like powering an LED).
Kỹ thuật số (7): Qua các chân tương tự là các chân kỹ thuật số (0đến 13 trên UNO) Các chân này có thể được sử dụng cho cả đầuvào kỹ thuật số (như tín hiệu khi một nút được nhấn) và đầu ra kỹthuật số (như cấp nguồn cho đèn LED)
PWM (8): You may have noticed the tilde (~) next to some of the digital pins (3, 5, 6, 9, 10, and 11 on the UNO) These pins act as normal digital pins, but can also be used for something called Pulse- Width Modulation (PWM) We have a tutorial on PWM, but for now, think of these pins as being able to simulate analog output (like fading an LED in and out).
PWM (8): Bạn có thể nhận thấy dấu ngã (~) bên cạnh một sốchân số (3, 5, 6, 9, 10 và 11 trên UNO) Các chân này hoạt động nhưcác chân số thông thường, nhưng cũng có thể được sử dụng cho
Trang 5một cái gọi là Pulse-Width Modulation (PWM) Chúng tôi có mộthướng dẫn về PWM, nhưng bây giờ, hãy nghĩ đến những chân này
có thể mô phỏng đầu ra tương tự (như điều khiển độ sáng của mộtLED)
AREF (9): Stands for Analog Reference Most of the time you can leave this pin alone It is sometimes used to set an external reference voltage (between 0 and 5 Volts) as the upper limit for the analog input pins.
AREF (9): Là viết tắt của Analog Reference Hầu hết thời gianbạn không cần sử dụng chân này Nó đôi khi được sử dụng để thiếtlập một điện áp tham chiếu bên ngoài (giữa 0 và 5 Volts) như giớihạn trên cho các chân đầu vào tương tự
Reset Button
Just like the original Nintendo, the Arduino has a reset button (10) Pushing it will temporarily connect the reset pin to ground and restart any code that is loaded on the Arduino This can
be very useful if your code doesn’t repeat, but you want to test it multiple times Unlike the original Nintendo however, blowing on the Arduino doesn’t usually fix any problems.
Trang 6lần Tuy nhiên không giống như bản gốc Nintendo ,việc nhấn resettrên arduino thường không khắc phục bất kì vấn đề nào.
Power LED Indicator
Just beneath and to the right of the word “UNO” on your circuit board, there’s a tiny LED next to the word ‘ON’ (11) This LED should light up whenever you plug your Arduino into a power source.
If this light doesn’t turn on, there’s a good chance something is wrong Time to re-check your circuit!
Đèn LED chỉ báo nguồn
Ngay bên dưới và bên phải của từ “UNO” trên bảng mạch củabạn, có một đèn LED nhỏ bên cạnh từ ‘ON’ (11) Đèn LED này sẽsáng lên bất cứ khi nào bạn cắm Arduino vào nguồn điện Nếu ánhsáng này không bật, thì có khả năng xảy ra lỗi Đã đến lúc kiểm tralại mạch của bạn!
TX RX LEDs
TX is short for transmit, RX is short for receive These markings appear quite a bit in electronics to indicate the pins responsible for serial communication In our case, there are two places on the Arduino UNO where TX and RX appear – once by digital pins 0 and
1, and a second time next to the TX and RX indicator LEDs (12) These LEDs will give us some nice visual indications whenever our
TX là viết tắt của transmit (truyền) , RX là viết tắt củareceive(nhận) Những dấu hiệu này xuất hiện khá nhiều trong cácthiết bị điện tử để chỉ ra các chân chịu trách nhiệm về giao tiếp nốitiếp.Trên bo arduino uno, có hai vị trí nơi TX và RX xuất hiện - một là
ở các chân số 0 và 1, và hai là bên cạnh đèn LED chỉ báo TX và RX(12) Những đèn LED này sẽ cung cấp cho chúng ta một số chỉ dẫntrực quan đẹp mắt bất cứ khi nào
Trang 7B.STEPPER MOTOR CONTROL USING
MATLAB AND ARDUINODUINO
B.ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC BẰNG MATLAB VÀ ARDUINO
Stepper motors is a brushless DC motor that rotates in discretesteps, and are the best choice for many precision motion controlapplications Also, stepper motors are good for positioning, speedcontrol and applications which require high torque at low speed.Stepper Motor Control sử dụng MATLAB và Arduino
Động cơ bước là một động cơ không chổi than DC quay trong cácbước rời rạc, và là sự lựa chọn tốt nhất cho nhiều ứng dụng điềukhiển chuyển động chính xác Ngoài ra, động cơ bước là tốt cho vịtrí, kiểm soát tốc độ và các ứng dụng đòi hỏi mô-men xoắn cao ở tốc
độ thấp
Trang 8In previous tutorials of MATLAB, we have explained that how touse MATLAB to control DC motor, Servo motor and Homeappliances Today we will learn how to control Stepper Motor
using MATALB and Arduino If you are new to MATLAB then it is
recommend to get started with simple LED blink program withMATLAB
Trong các hướng dẫn trước đây của MATLAB, chúng tôi đã giảithích rằng làm thế nào để sử dụng MATLAB để điều khiển động cơ
DC, động cơ Servo và thiết bị gia dụng Hôm nay chúng ta sẽ họccách điều khiển động cơ Stepper bằng MATALB và Arduino Nếubạn chưa quen với MATLAB thì bạn nên bắt đầu với chương trìnhflash LED đơn giản với MATLAB
Modes of operation in Stepper Motor
Before you start coding for stepper motor you should understandthe working or rotating concept of a stepper motor Since the stator ofthe stepper mode is built of different pairs of coils, each coil pair can
be excited in many different methods, this enabling the modes to bedriven in many different modes The following are the broadclassifications
Các chế độ hoạt động trong Động cơ bước
Trước khi bạn bắt đầu mã hóa cho động cơ bước, bạn nên hiểukhái niệm làm việc hoặc xoay của động cơ bước Vì stator của chế
độ stepper được chế tạo từ các cặp cuộn khác nhau, mỗi cặp cuộn
có thể được kích thích bằng nhiều phương pháp khác nhau, điềunày cho phép các chế độ được điều khiển ở nhiều chế độ khácnhau Sau đây là các phân
Full Step Mode
In full step excitation mode we can achieve a full 360° rotation withminimum number of turns (steps) But this leads to less inertia andalso the rotation will not be smooth There are further two
classifications in Full Step Excitation, they are one Phase-on wave
stepping and two phase-on mode.
Chế độ toàn bộ bước
Trong chế độ kích thích toàn bộ bước, chúng ta có thể đạt đượcvòng quay 360 ° đầy đủ với số lần rẽ tối thiểu (các bước) Nhưngđiều này dẫn đến quán tính ít hơn và cũng xoay vòng sẽ không được
Trang 9mịn màng Ngoài ra còn có hai phân loại trong kích thích đầy đủbước, chúng là một bước sóng bước pha và hai chế độ pha
1 One phase-on stepping or Wave Stepping: In this mode only
one terminal (phase) of the motor will be energised at any given time.This has less number of steps and hence can achieve a full 360°rotation Since the number of steps is less the current consumed bythis method is also very low The following table shows the wavestepping sequence for a 4 phase stepper motor
1 Một pha bước hoặc bước sóng: Trong chế độ này chỉ có mộtđầu cuối (pha) của động cơ sẽ được cấp nguồn tại bất kỳ thời điểmnào Điều này có số bước ít hơn và do đó có thể đạt được vòngquay 360 ° đầy đủ Vì số lượng các bước ít hơn mức tiêu thụ hiện tạicủa phương pháp này cũng rất thấp Bảng sau đây cho thấy trình tựbước sóng cho động cơ bước 4 pha
Step
Phase
1 (Blue)
Phase
2 (Pink)
Phase 3(Yellow)
Phase 4 (Orange)
2 Two Phase-on stepping: As the name states in this method
two phases will be one It has the same number of steps as Wave
Trang 10stepping, but since two coils are energised at a time it can providebetter torque and speed compared to the previous method Althoughone down side is that this method also consumes more power.
2 Hai giai đoạn bước: Như tên tiểu bang trong phương pháp nàyhai giai đoạn sẽ là một Nó có cùng số bước như Wave bước, nhưng
kể từ khi hai cuộn dây được cung cấp năng lượng tại một thời điểm
nó có thể cung cấp mô-men xoắn tốt hơn và tốc độ so với phươngpháp trước đó Mặc dù một bên xuống là phương pháp này cũng tiêuthụ nhiều năng lượng hơn
Step Phase 1 (Blue)
Phase
2 (Pink)
Phase 3(Yellow)
Phase 4 (Orange)
Half Step Mode
The Half Step mode is the combination of one phase-on and phase on modes This combination will help us to get over the abovementioned disadvantage of the both the modes
two-As you might have guessed it since we are combining both the
methods we will have to perform 8-steps in this method to get a
complete rotation The switching sequence for a 4-phase steppermotor shown below
Chế độ nửa bước
Chế độ Half Step là sự kết hợp của một pha và hai pha trên cácchế độ Sự kết hợp này sẽ giúp chúng tôi vượt qua những bất lợiđược đề cập ở trên của cả hai chế độ
Như bạn có thể đoán được vì chúng ta đang kết hợp cả haiphương thức, chúng ta sẽ phải thực hiện 8 bước trong phương thứcnày để có được một vòng quay hoàn chỉnh Trình tự chuyển đổi chođộng cơ bước 4 pha hiển thị bên dưới
Trang 11Hence, it is your choice to program your stepper motor in anymode, but I prefer Two Phase-on stepping Full Step Mode Becausethis method deliver faster speed then the one phase method and incompare to half mode the coding part is less due to less number ofsteps in two-phase method
Do đó, nó là sự lựa chọn của bạn để chương trình động cơ bướccủa bạn trong bất kỳ chế độ nào, nhưng tôi thích Hai Giai đoạn-onBước Chế độ đầy đủ Bởi vì phương pháp này cung cấp tốc độnhanh hơn thì phương pháp một pha và so sánh với một nửa chế độphần mã hóa ít hơn do số bước ít hơn trong phương pháp hai pha
Step Phase 1
(Blue)
Phase 2 (Pink)
Phase 3 (Yellow)
Phase 4 (Orange)
Trang 12Creating MATLAB Graphical User Interface for controlling StepperMotor
Tạo giao diện người dùng đồ họa MATLAB để điều khiển động cơbước
Then we have to build GUI (Graphical User Interface) to controlStepper motor To launch the GUI, type the below command in
the command window
guide
Sau đó, chúng ta phải xây dựng GUI (Giao diện người dùng đồ họa)
để điều khiển động cơ Stepper Để khởi chạy GUI, gõ lệnh dưới đâyvào cửa sổ lệnh
Now choose two toggle buttons for rotating the stepper Motor
Clockwise and Anti-clockwise, as shown below,
Trang 13Bây giờ chọn hai nút chuyển đổi để xoay động cơ bước theochiều kim đồng hồ và ngược chiều kim đồng hồ, như hình dưới đây,
To resize or to change the shape of the button, just click on it andyou will be able to drag the corners of the button By double-clicking
on toggle button you can change the color, string and tag of thatparticular button We have customized two buttons as shown inbelow picture
Để thay đổi kích thước hoặc thay đổi hình dạng của nút, chỉ cầnnhấp vào nút đó và bạn sẽ có thể kéo các góc của nút Bằng cáchnhấp đúp vào nút chuyển đổi, bạn có thể thay đổi màu, chuỗi và thẻcủa nút cụ thể đó Chúng tôi đã tùy chỉnh hai nút như trong hình dướiđây
You can customize the buttons as per your choice Now when you
save this, a code is generated in the Editor windowof MATLAB To
Trang 14code your Arduino for performing any task related to your project,you always have to edit this generated code So below we haveedited the MATLAB code You can learn more about Commandwindow, editor window etc in Getting started with MATLAB tutorial.
MATLAB Code for controlling Stepper Motor with Arduino
Complete MATLAB code, for controlling Stepper motor, is given
at the end of this project Further we are including the GUI file (.fig)and code file(.m) here for download (right click on link then select'Save link as ')), using which you can customize the buttons as peryour requirement Below are some tweaks we did for rotating theStepper Motor clockwise and anticlockwise using two toggle buttons.Copy and paste the below code on line no 74 to make sure that theArduino is talking with MATLAB every time you run the m-file
Bạn có thể tùy chỉnh các nút theo sự lựa chọn của bạn Bây giờkhi bạn lưu này, một mã được tạo ra trong cửa sổ soạn thảo củaMATLAB Để mã Arduino của bạn để thực hiện bất kỳ tác vụ nào liênquan đến dự án của bạn, bạn luôn phải chỉnh sửa mã được tạo này
Vì vậy, dưới đây chúng tôi đã chỉnh sửa mã MATLAB Bạn có thể tìmhiểu thêm về cửa sổ Lệnh, cửa sổ trình soạn thảo, v.v trong Bắt đầuvới hướng dẫn MATLAB
Mã MATLAB để điều khiển động cơ bước với Arduino
Toàn bộ mã MATLAB, để điều khiển động cơ Stepper, được đưa
ra ở cuối dự án này Hơn nữa chúng tôi bao gồm tệp GUI (.fig) vàtệp mã (.m) tại đây để tải xuống (nhấp chuột phải vào liên kết rồichọn 'Lưu liên kết dưới dạng ')), bằng cách sử dụng bạn có thể tùychỉnh các nút theo yêu cầu của bạn Dưới đây là một số chỉnh sửachúng tôi đã làm để xoay động cơ bước theo chiều kim đồng hồ vàngược chiều kim đồng hồ bằng cách sử dụng hai nút chuyển đổi.Sao chép và dán mã bên dưới vào dòng số 74 để đảm bảo rằngArduino đang nói chuyện với MATLAB mỗi lần bạn chạy tập tin m.clear all;
global a;
a = arduino();
Trang 15When you scroll down, you will see that there are two functionscreated for both the Buttons in the GUI Now write the code in boththe functions according to the task you want to perform on click.
In Clockwise button’s function, copy and paste the below code just
before the end of the function to rotate the motor in clockwisedirection For continuously rotating the stepper motor in clockwise
direction, we are using while loop to repeat the two phase-on
stepping full mode steps for clockwise direction
Khi bạn cuộn xuống, bạn sẽ thấy rằng có hai hàm được tạo cho
cả hai nút trong GUI Bây giờ hãy viết mã trong cả hai hàm theonhiệm vụ bạn muốn thực hiện khi bấm
Trong chức năng của nút Chiều kim đồng hồ, hãy sao chép vàdán mã bên dưới ngay trước khi kết thúc chức năng xoay động cơtheo chiều kim đồng hồ Để liên tục xoay động cơ bước theo chiềukim đồng hồ, chúng tôi đang sử dụng trong khi vòng lặp để lặp lại haipha trên bước bước chế độ đầy đủ cho chiều kim đồng hồ
Trang 16writeDigitalPin(a, 'D10', 1);writeDigitalPin(a, 'D11', 1);pause(0.0002);
writeDigitalPin(a, 'D8', 0);writeDigitalPin(a, 'D9', 1);writeDigitalPin(a, 'D10', 1);writeDigitalPin(a, 'D11', 0);pause(0.0002);
writeDigitalPin(a, 'D8', 1);writeDigitalPin(a, 'D9', 1);writeDigitalPin(a, 'D10', 0);writeDigitalPin(a, 'D11', 0);pause(0.0002);
end
Trang 17Now in Anti-clockwise button’s function, paste the below code atthe of the function to rotate the motor in anti-clockwise direction Forcontinuously rotating the stepper motor in anti-clockwise direction,
we are using while loop to repeat the two phase-on stepping fullmode steps for anti-clockwise direction
Bây giờ trong chức năng của nút Anti-chiều kim đồng hồ, dán mãdưới đây vào bên trong của hàm để xoay động cơ theo hướngngược chiều kim đồng hồ Để liên tục xoay động cơ bước theohướng ngược chiều kim đồng hồ, chúng tôi đang sử dụng vòng lặptrong khi lặp lại hai pha trên bước bước chế độ đầy đủ theo hướngngược chiều kim đồng hồ
while get(hObject,'Value')
global a;
writeDigitalPin(a, 'D8', 1);