Các mạch điện tử cơ bản vốn được coi là một trong những kiến thức cơ sở, vì vậy để học tốt kiến thức chuyên ngành thì việc nắm vững đặc điểm và nguyên lí, cách thiết kế và làm mạch thực tế rất quan trọng. Bài thực hành với những kiến thức nền tảng sẽ giúp chúng ta hiểu rõ hơn và sâu hơn về các mạch điện tử cơ bản. Nội dung của Đồ Án 2 này là Điều khiển động cơ bước với Arudino, sử dụng chiết áp để thay đổi tốc độ động cơ (28BYJ48 5v), và hiển thị lên màn hình LCD (1602), và Nhóm có thiết kế thêm 3 nút bấm để điều khiển vị trí của động cơ. Mạch được thiết kế dựa trên sự hướng dẫn của giảng viên môn Đồ án 2, cùng với tìm hiểu, tham gia của các thành viên nhóm và những môn đã học như: Linh kiện điện tử, Thực hành điện tử, Kỹ thuật Vi Xử Lý … Tuy chúng em đã có nhiều cố gắng khi biên soạn và làm báo cáo thực hành nhưng không tránh khỏi những khiếm khuyết. Chúng em hy vọng nhận được sự góp ý của Thầy để Đồ Án 2 được hoàn thiện hơn. Cuối cùng, chúng em xin gửi lời cảm ơn đến Thầy T.s: Hoàng Anh đã hướng dẫn chúng em hoàn thành Báo cáo Đồ Án 2 này.
Trang 1KHOA CÔNG NGHỆ ĐIỆN TỬ THÔNG TIN
- -BÁO CÁO
Đồ Án 2
Giảng Viên
Nhóm
: T.s Hoàng Anh : 3
Thành viên tham gia : - Nguyễn Văn Hoài
- Quản Văn Hòa
Hà Nội, Ngày 20 Tháng 2 Năm 2023
Trang 2Lời Mở Đầu
Các mạch điện tử cơ bản vốn được coi là một trong những kiến thức cơ
sở, vì vậy để học tốt kiến thức chuyên ngành thì việc nắm vững đặc điểm và
nguyên lí, cách thiết kế và làm mạch thực tế rất quan trọng Bài thực hành với những kiến thức nền tảng sẽ giúp chúng ta hiểu rõ hơn và sâu hơn về các
mạch điện tử cơ bản
Nội dung của Đồ Án 2 này là Điều khiển động cơ bước với Arudino, sử
dụng chiết áp để thay đổi tốc độ động cơ (28BYJ-48 5v), và hiển thị lên màn
hình LCD (1602), và Nhóm có thiết kế thêm 3 nút bấm để điều khiển vị trí
của động cơ Mạch được thiết kế dựa trên sự hướng dẫn của giảng viên môn
Đồ án 2, cùng với tìm hiểu, tham gia của các thành viên nhóm và những môn
đã học như: Linh kiện điện tử, Thực hành điện tử, Kỹ thuật Vi Xử Lý …
Tuy chúng em đã có nhiều cố gắng khi biên soạn và làm báo cáo thực
hành nhưng không tránh khỏi những khiếm khuyết Chúng em hy vọng nhận
được sự góp ý của Thầy để Đồ Án 2 được hoàn thiện hơn
Cuối cùng, chúng em xin gửi lời cảm ơn đến Thầy T.s: Hoàng Anh đã
hướng dẫn chúng em hoàn thành Báo cáo Đồ Án 2 này
Trang 3Mục Lục
I Giới Thiệu Về Linh Kiện 4
1.1 Giới thiệu chung 4
1.2 Cấu tạo linh kiện sử dụng 5
1.2.1 Arduino 5
1.2.2 Động cơ bước (StepMotor 28BYJ-48) 6
1.2.3 Một số linh kiện khác 6
1.3 Ứng Dụng 9
II Thiết kế mạch và chương trình điều khiển động cơ bước với Arduino 9 2.1 Nguyên lí hoạt động 9
2.2 Thiết kế mạch điều khiển động cơ bước với Arduino có sử dụng chiết áp 10
2.3 Lập trình điều khiển động cơ bước và hiển thị thông tin lên màn hình LCD, và Các nút bấm điều khiển vị trí động cơ: 12
III Kết quả thực nghiệm 14
3.1 Mô tả kết quả thực nghiệm 14
3.2 So sánh kết quả thực nghiệm với kết quả dự đoán: 14
3.3 Nhận xét kết quả thực nghiệm 15
IV Kết Luận 15
Trang 4Danh Mục Hình Ảnh
Hình 1.1: Hình Ảnh Arduino Uno R3 5
Hình 1 2: Hình ảnh động cơ bước 6
Hình 1.3: Hình Ảnh LCD 1608 7
Hình 1.4: Hình Ảnh Module I2c 7
Hình 1.5: DRIVER ULN2003 8
Hình 2.1: Mô Phỏng Mạch Trên Proteus 10 Hình 2 2: Mô Phỏng Trên Pritzing 11
Hình 2.3: Mô Phỏng Trên Circuit 11
Hình 2.4: Mạch Thật 12
Trang 5I Giới Thiệu Về Linh Kiện
1.1 Giới thiệu chung.
Công nghệ lập trình phát triển mang lại nhiều lợi ích, tiện nghi trong
cuộc sống Những thiết bị máy móc được điều khiển bằng chương trình đã lập trình sẵn, dựa trên các phần mềm nền tảng Với những người làm việc trong
lĩnh vực khoa học máy tính sẽ không quá xa lạ với lập trình Arduino
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên trại Interaction Design Institute Ivrea (Viện thiết kế tương tác
Ivrea) tại Ivrea, Italy Vào thời điểm đó các sinh viên sử dụng một "BASIC
Stamp" (con tem Cơ Bản) có giá khoảng $100, xem như giá dành cho sinh
viên Massimo Banzi, một trong những người sáng lập, giảng dạy tại Ivrea
Cái tên "Arduino" đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của
dự án này thường xuyên gặp mặt Bản thân quán bar này có được lấy tên là
Arduino, Bá tước của Ivrea, và là vua của Italy từ năm 1002 đến 1014
Được giới thiệu vào năm 2005, những nhà thiết kế của Arduino cố
gắng mang đến một phương thức dễ dàng, không tốn kém cho những người
yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả
năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp
hành Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Đi cùng
với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá
nhân thông thường và cho phép người dùng viết các chương trình cho mạch
bằng ngôn ngữ Arduino, một ngôn ngữ riêng được phát triển dựa trên C/C++
Động cơ bước là một loại động cơ đồng bộ, có khả năng biến đổi các
tín hiệu điều khiển của máy móc dưới dạng các xung điện rời rạc được phát ra
kế tiếp nhau, tạo thành các chuyển động góc quay Đôi khi chính là các
chuyển động của rôto, giúp cho người dùng cố định roto của máy vào trong
các vị trí cần thiết Nói chung, động cơ bước (motor bước) là một loại động
cơ mà các bạn có thể quy định được tần số góc quay của nó Nếu góc bước
của nó càng nhỏ thì số bước trên mỗi vòng quay của động cơ càng lớn và độ
chính xác của vị trí chúng ta thu được càng lớn
Trang 61.2 Cấu tạo linh kiện sử dụng.
1.2.1 Arduino.
- Cấu tạo của Arduino được chia thành 2 loại phần cứng và phần mềm Cụ
thể:
Phần cứng của mã nguồn mở: Một board mạnh điện tử mã nguồn mở
(vi điều khiển) - có thể lập trình được Phần vi mạch có nhiều loại với đặc
điểm khác nhau: Arduino Uno - loại broad mạch đơn giản cho người mới bắt đầu, Arduino Micro thiết kế nhỏ gọn với 20 chân
Phần mềm hỗ trợ phát triển tích hợp IDE (Integrated Development
Environment) - nhiệm vụ biên soạn, soạn thảo và nạp chương trình vào
broad
Arduino có rất nhiều loại cũng như mã nguồn mở phong phú: Arduino
Uno, Nano …
Hình 1.1: Hình Ảnh Arduino Uno R3
Trang 71.2.2 Động cơ bước ( StepMotor 28BYJ-48)
Cấu tạo của động cơ bước gồm: Rotor và Stato
Rotor thực ra chính là một dãy các lá nam châm vĩnh cửu, chúng được
sắp xếp chồng lên nhau một cách kỹ lưỡng, cẩn thận Trên các lá nam châm này lại được chia thành các cặp cực sắp xếp đối xứng với nhau
Stato được cấu tạo bằng sắt từ, chúng được chia thành các rãnh nhỏ để
đặt cuộn dây
Hình 1 2: Hình ảnh động cơ bước
1.2.3 Một số linh kiện khác
LCD 1602 :
LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân
điều khiển (RS, RW, EN)
5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2
Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu
Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi
Trang 8Hình 1.3: Hình Ảnh LCD 1608
Moudle giao tiếp I2C
Hình 1.4: Hình Ảnh Module I2c
Trang 9Driver điều khiển ULN2003 :
ULN2003 là một IC 16 chân, bao gồm 7 cặp darlington (mỗi cặp được bảo vệ bằng supression diode) và do đó có khả năng xử lý tối đa 7 tải (có thể
cảm ứng)
Nói một cách dễ hiểu, chúng ta có 7 driver trong một chip ULN2003 và
do đó có thể kiểm soát tối đa 7 tải
Hình 1.5: DRIVER ULN2003
Và 1 số Linh Kiện Khác:
Chiết áp
Nút nhấn
Điện trở
Breadbroad
Jump cắm
Trang 10Arduino ra đời từ rất lâu tại ý, được mở rộng phát triển và sử dụng rộng rãi cho đến ngày nay Tính ứng dụng của mã nguồn mở lập trình Ard khá lớn,
cụ thể như:
Lập trình robot bằng mã nguồn mở - trong đó, mã nguồn mở này đóng
vai trò quan trọng trong trung tâm xử lý điều khiển của robot
Arduino được ứng dụng trong lập trình máy bay không người lái, một
xu hướng trong tương lai đang được tiếp tục nghiên cứu
Arduino được sử dụng để lập trình game tương tác Trong đó, mã
nguồn mở có thể tương tác với Joystick, màn hình… để chơi nhiều game sáng tạo
Arduino ứng dụng trong điều khiển thiết bị và hệ thống ánh sáng với
cảm biến tốt Lập trình bảng mạch điều khiển tín hiệu đèn giao thông, hiệu
ứng đèn nháy, biển quảng cáo…
Arduino còn được sử dụng trong máy in 3D, thiết bị cắt CNC và nhiều thiết bị sáng tạo khác
II Thiết kế mạch và chương trình điều khiển động cơ
bước với Arduino
2.1 Nguyên lí hoạt động.
Mạch sử dụng chiết áp điều khiển tốc độ động cơ bước với Arduino và hiển thị ra LCD 1602 sử dụng nguyên lý điều khiển tốc độ động cơ bước bằng cách điều chỉnh độ rộng xung (pulse width) được gửi đến động cơ
Độ rộng xung được gửi đến động cơ bước được điều khiển bởi một
mạch điều khiển động cơ bước Mạch này sử dụng IC ULN2003 để chuyển
đổi tín hiệu điều khiển từ Arduino sang dòng điện lớn hơn để điều khiển động
cơ bước
Mạch điều khiển động cơ bước nhận tín hiệu điều khiển từ Arduino
Trang 11xung Giá trị độ rộng xung được điều chỉnh bằng cách xoay biến trở, và được đọc bởi board Arduino thông qua chân analog input
Sau khi giá trị độ rộng xung được đọc, Arduino sẽ tính toán tốc độ
động cơ bước dựa trên giá trị độ rộng xung và hiển thị kết quả lên màn hình
LCD 1602
2.2 Thiết kế mạch điều khiển động cơ bước với Arduino có sử dụng chiết áp
Mô phỏng mạch trên phần mềm Proteus
Hình 2.1: Mô Phỏng Mạch Trên Proteus
Mô phỏng trên Fritzing
Trang 12Hình 2 2: Mô Phỏng Trên Pritzing
Mô phỏng trên Circuit
Trang 13Mạch thật:
Hình 2.4: Mạch Thật
2.3 Lập trình điều khiển động cơ bước và hiển thị thông tin lên màn
hình LCD, và Các nút bấm điều khiển vị trí động cơ:
#include <LiquidCrystal_I2C.h>
#include <Stepper.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const int stepsPerRevolution = 2048;
Stepper myStepper = Stepper(stepsPerRevolution, 10, 8, 9, 11); // Cài
đặt động cơ bước và cấu hình chân cắm
int potentiometer = A0; // Khởi tạo chân tín hiệu của chiết áp
int Val_Analog, MotorSpeed;
int FPB = 2; // forward push button
int Stop = 3; //Stop push button
Trang 14int Speed;
void setup()
{
pinMode(FPB, INPUT);
pinMode(Stop, INPUT);
pinMode(RPB, INPUT);
lcd.begin(2, 16);
lcd.backlight();
}
void loop()
{
Val_Analog = analogRead(A0);
MotorSpeed = map(Val_Analog, 0, 1023, 0, 19);
Speed = map(Val_Analog, 0, 1023, 0, 100);
lcd.setCursor(0,0);
lcd.print("Speed:");
lcd.print(Speed);
lcd.print("%");
if(digitalRead(FPB) == HIGH)
Status =1;
else if(digitalRead(RPB) == HIGH )
Status = 2;
else if(digitalRead(Stop) == HIGH)
Status =3;
if(Status ==1)
{
Trang 15lcd.print(" Clockwise ");
}
else if(Status ==2)
{
myStepper.setSpeed(MotorSpeed);
myStepper.step(-1);
lcd.setCursor(0,1);
lcd.print(" AntiClockwise");
}
else
{
myStepper.step(0);
lcd.setCursor(0,1);
lcd.print(" Stop ");
}}
III Kết quả thực nghiệm
3.1 Mô tả kết quả thực nghiệm
Động cơ quay theo hướng lập trình, với tốc độ và số vòng quay tương ứng khi sử dụng chiết áp để điều chỉnh
Động cơ bước được điều khiển bởi Arduino chạy ổn định và chính xác ở
các tốc độ khác nhau và các chế độ quay khác nhau Khi động cơ quay theo
chiều kim đồng hồ, tốc độ quay đạt 256 vòng/phút Khi động cơ quay ngược
chiều kim đồng hồ, tốc độ quay đạt 250 vòng/phút Kết quả cho thấy rằng
chương trình điều khiển động cơ bước với Arduino là hoạt động chính xác và
ổn định
Trang 16chạy theo kết quả dự đoán
3.3 Nhận xét kết quả thực nghiệm
Kết quả thực nghiệm cho thấy rằng hệ thống điều khiển động cơ bước
với Arduino có thể đáp ứng yêu cầu và giữ được tốc độ của động cơ trong
khoảng thời gian dài Tuy nhiên, khi tăng tốc độ động cơ lên mức cao hơn, hệ thống sẽ bắt đầu bị rung và không thể giữ được tốc độ mong muốn.Chương
trình có thể hoạt động tốt ở mức độ trung bình hoặc thấp
IV Kết Luận
- Hiểu được nguyên lý hoạt động của mạch
- Mô phỏng được mạch
- Hoàn thiện được mạch thực
Lời Kết: Trong quá trình thiết kế chúng em có tham khảo đến tài liệu của
môn học cũng như đề tài mà chúng em đã trình bày Trong quá trình hoàn
thiện đồ án cũng như báo cáo, chúng em làm rất còn nhiều thiếu sót do trình
độ chuyên môn chưa cao Tuy vậy chúng em cũng đã góp ý làm hết sức có thể của mình, mong nhận được sự góp ý kiến chân thành từ cô để đề tài hoàn
thiện hơn Qua đó chúng em có thêm phần hiểu biết trong quá trình học tập
tiếp theo
Cảm ơn Thầy đã hướng dẫn tận tình chúng em để chúng em có thể hoàn
thiện được Đồ Án 2 này
Chúng em xin chân thành cảm ơn.