



















Preview text:
lOMoAR cPSD| 61554836 lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý Lời Nói Đầu
Điều khiển động cơ được ứng dụng vào nhiều lĩnh vực trong cuộc sống (trong
công nghệ chế tạo robot…). Mạch điều khiển động cơ có ý nghĩa rất quan trọng trong
việc điều khiển động cơ theo mục đích của người sử dụng. Đặc điểm của mạch điều
khiển là động cơ có thể quay thuận hoặc quay nghịch , tốc độ của động cơ có thể tăng
hoặc giảm tùy theo ý thích hay như chế độ điều khiển bật tắt động cơ. Mạch sử dụng
chíp vi điều khiển của hãng TI, đặc biệt hơn là điều khiển động cơ từ xa. Việc này có
thể tạo ra những robot có thể giúp đỡ con người làm việc ở điều kiện môi trường khắc nghiệt, độc hại…
Trong môn học vi xử lý, với đề tài bài tập lớn trên đã giúp chúng em rèn luyện
thêm các kỹ năng lập trình cho kit launchpad MSP430 (bộ kit có ứng dụng và tính
phát triển rất cao trong ngành điện tử) và kỹ năng làm mạch in trên altium. Tìm hiểu
và biết rõ hơn về module thu phát sóng RF, bàn phím điện dung, động cơ encoder.
Vận dụng những kiến thức đã học trên giảng đường vào thực tế và đồng thời rèn luyện
được kỹ năng làm việc nhóm, làm việc độc lập. Nhưng do thời gian có hạn, khả năng
còn hạn chế đồng thời phải tiếp xúc với những cái mới lạ nên chúng em còn mắc
nhiều sai sót, khuyết điểm. Qua đây chúng em cũng xin chân thành cảm ơn thầy TS.
Ngô Vũ Đức cùng các anh trợ giảng đã giúp đỡ rất nhiệt tình để chúng em hoàn thành được đề tài này. Nhóm sinh viên Hà Nội, 05 - 2015 lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý Mục Lục
Lời Nói Đầu ................................................................................................................ 2
Danh mục hình ảnh ................................................................................................... 4
I. Nội dung đề tài ....................................................................................................... 5
1. Giới thiệu đề tài và sơ đồ khối ............................................................................. 5
1.1. Giới thiệu đề tài ............................................................................................ 5
1.2. Sơ đồ khối ..................................................................................................... 6
2. Các tiêu chí của sản phẩm
................................................................................... 6 3. Nội dung
.............................................................................................................. 6
3.1. Điều khiển động cơ sử dụng sóng RF ........................................................... 6
3.2.Điều chỉnh chiều quay của động cơ hiển thị lên LCD ................................... 8
3.3. Điều chỉnh tốc độ của động cơ hiển lên LCD .............................................. 9
3.4. Sử dụng bàn phím điện dung và bộ điều khiển để hẹn giờ bật tắt động cơ 11
II. Kết luận ............................................................................................................... 13
Tài liệu tham khảo .................................................................................................. 14
Phụ Lục A: Các bản vẽ thiết kế, bản vẽ mạch in, sản phẩm hoàn chỉnh của đề
tài..…………………………………………………………………………………15
Phục Lục B: Mã nguồn ........................................................................................... 18 lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
Danh mục hình ảnh Hình 1: Module thu phát sóng RF ...... Lỗi! Thẻ đánh dấu
không được xác định.
Hình 2: Mạch cầu H ...................................................................................................... 7
Hình 3: Mạch cầu .......................................................................................................... 8
Hình 4: Đồ thị dạng xung điều chế PWM .................................................................... 9
Hình 5: IC L298 ............................................................................................................ 9
Hình 6: IC L298 trên thực tế ....................................................................................... 10
Hình 7: Cách đo RO .................................................................................................... 11
Hình 8: cách đo RC ..................................................................................................... 11
Hình 9: Sơ đồ nguyên lý của mạch ............................................................................. 14
Hình 10: Sơ đồ mạch in .............................................................................................. 15
Hình 11: Sản Phẩm hoàn chỉnh ................................................................................... 16
I. Nội dung đề tài
1. Giới thiệu đề tài và sơ đồ khối
1.1. Giới thiệu đề tài
Đề tài Vi Xử Lý của chúng em là: “Điều khiển tốc độ động cơ từ xa bằng sóng
RF , hẹn giờ bật tắt động cơ bằng bàn phím điện dung và bộ điều khiển. Hiện thị thời
gian thực, tốc độ điều chỉnh động cơ lên LCD”. Trong đề tài này sẽ được phân ra các
phần nhỏ, các phần nhỏ này sẽ được chia ra và phân tích rất cụ thể ở phần nội dung đề tài .
Đề tài thực hiện các yêu cầu chức năng:
- Điều khiển tốc độ , chiều động cơ từ xa.
- Hẹn tắt bật động cơ bằng bàn phím điện dung và bộ điều khiển.
- Hiện thị chiều, tốc độ động cơ, thời gian thực và thời gian bật tắt lên LCD. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
Trong đề tài việc điều khiển động cơ sẽ được thực hiện bằng IC L298. Ic này
có nhiệm vụ sẽ thực hiện đồi chiều quay và làm thay đổi tốc độ động cơ. IC L298 sau
đó được kết nối với chip MSP430F2272 . việc điều khiển tốc độ, chiều và bật tắt động
cơ sẽ được thực hiện bởi module thu phát sóng RF 4 nút điều khiển. Hiện thị thời gian
thực, tốc độ và chiều động cơ sẽ được hiện thị lên LCD kích thước 16x2 . Việc hẹn
giờ bất tắt động cơ bằng bàn phím điện dung sẽ được thực hiện giống như 1 bàn phím 4x4 thông thường. 1.2. Sơ đồ khối Khối hiện thị khối phát RF ( ) LCD Khối thu RF Khối keypad (cảm ứ ng điện dung) Khối xử lý (MSP 430G2272 ) Khối thời gian Motor driver thực ( DS 1302) 3.3 V 12 V Khối nguồn
2. Các tiêu chí của sản phẩm
(Tiêu chí sản phảm hay còn gọi là yêu cầu phi chức năng).
- Tiêu chí quan trọng nhất là mạch phải chạy được, thực hiện được tất cả các
chức năng đã đề ra.
- Mạch làm việc ổn định, không bị lỗi sau 1 thời gian hoạt động. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
- Tốc độ động cơ được đo phải chính xác sai số khoản 5%-10%.
- Mạch in được vẽ và hàn đẹp.
- Các thông số được lưu lại khi mạch bị mất điện. 3. Nội dung
3.1. Điều khiển động cơ sử dụng sóng RF
Trong đề tài để thực hiện việc điều khiển động cơ từ xa chúng em sử dụng
module thu phát sóng RF tần số 315 mHZ.
Thông số của module thu phát sóng RF:
Module phát RF315:
- Sử dụng điện áp một chiều 12v.
- Dòng hoạt động 4 mA - Độ nhạy -105dB.
- Công suất tiêu thụ : 25mW.
- Tốc độ truyền tốt nhất: 4.8kbps.
- Tần số làm việc : 315Mhz.
- Khoảng cách truyền tải : Từ 50 - 100m (tùy vào điều kiện môi trường).
- Sử dụng ic PT2262 để mã hóa.
- Module thu sóng RF315:
- Sử dụng điện áp 1 chiều 5v.
- Dòng hoạt động: 4 mA.
- Tần số hoạt động: 315 mhz.
- Tốc độ nhận tốt nhất: 9.6 Kbps.
- Sử dụng ic pt2272 để giải mã. Cách sử dụng:
- Module phát có 4 nút bấm: A, B, C, D.
- Nút A : thay đổi chiều động cơ.
- Nút B: tăng tốc độ động cơ.
- Nút C: bật tắt động cơ. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
- Nút D : giảm tốc độ động cơ.
Hình 1: Module thu phát sóng RF.
3.2.Điều chỉnh chiều quay của động cơ hiển thị lên LCD
Để có thể đảo được chiều quay của động cơ em sẽ sử dụng mạch cầu H, sau
đây em sẽ trình bày về nguyên tắc hoạt động của cầu H và từ nguyên tắc đó sẽ hình
thành nên mạch để điều chỉnh chiều quay. Hình 2: Mạch cầu H.
Ở đây đối tượng chúng ta cần tìm hiểu là motor. Thành phần chính tạo nên
mạch cầu H là 4 khóa L1, L2, R1 và R2.Ở điều kiện bình thường thì 4 khóa này mở
và cầu H không hoạt động. Giả sử bằng cách nào đó mà khóa L1 và R2 được đóng lại
(L2 và R1 vẫn mở), khi đó sẽ có một dòng điện chạy từ V qua khóa L1 đến đầu A và lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
xuyên qua motor đến đầu B của nó trước khi qua khóa R2 và về GND, với trường
hợp này động cơ sẽ quay theo chiều thuận (Hình 3). Hình 3: Mạch cầu.
Ngược lại, nếu L2 và R1 được đóng lại trong khi ta để mở 2 khóa L1 và R2
thì,dòng điện sẽ đi theo chiều từ V, qua R1, motor, L2 và về GND. Lúc đó động cơ sẽ
quay theo chiều ngược lại. Vậy là chúng ta có thể đảo được chiều quay của động cơ
bằng cách dùng mạch cầu H để đổi chiều dòng điện chạy qua động cơ.
3.3. Điều chỉnh tốc độ của động cơ hiển lên LCD
- Điều khiển tốc độ của động cơ sử dụng xung PWM , chia tốc độ của động cơ thành 20 mức từ 0→ 20.
- Cách tạo một xung PWM như sau : i.
Tạo một tần số chuẩn từ 0,1 ms đến 10ms dùng các bộ timer của vi điều khiển. ii.
Thay đổi độ rộng xung bằng cách thay đổi tỷ số xung mức 1 và mức 0
của tần số chuẩn đó kết quả cho xung như yêu cầu. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
Hình 4: Đồ thị dạng xung điều chế PWM.
Việc điều chỉnh chiều quay và tốc độ của động cơ, chúng em sử dụng IC
L298 .Chức năng chính của L298 là dùng để khuếch đại công suất của động cơ. Hình 5: IC L298. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
Hình 6: IC L298 trên thực tế.
3.4. Sử dụng bàn phím điện dung và bộ điều khiển
để hẹn giờ bật tắt động cơ
Có nhiều cách để xác định sự thay đổi, phương pháp kinh điển nhất được đưa
ra từ năm 1976 là nạp tích điện cho tụ, sau đó cho tụ xả dần điện tích qua một điện trở
và đo thời gian xả của tụ, so sánh thời gian giữa các lần xả để xác nhận là một nút bấm.
Ở MSP430 xác định bằng cách đếm số xung do bộ dao động được tạo bởi phần
cứng bên trong VĐK và tụ điện nối vào chân VĐK. Khi tụ điện ở chân nối vào VĐK
thay đổi thì số xung do bộ dao động tạo ra cũng thay đổi và VĐK sẽ đo sự thay đổi đó.
Có 2 cách đo điện dung ở MSP430:
- Cách đo RO (Relaxation Oscillator): lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý Hình 7: Cách đo RO.
Đây là sơ đồ bên trong chân dao động của MSP430 hỗ trợ cảm ứng điện dung.
Trong một khoảng thời gian Gate Time cố định, MSP430 sẽ đếm số dao động, khi
điện dung thay đổi từ số xung đếm sẽ được thay đổi. từ đó đưa ra giá trị điện dung.
- Cách đo RC (Resistor – Capacitor Timer Contant Measurement). Hình 8: cách đo RC.
Ở cách đo này, MSP430 sẽ đếm số xung nhất định. Với mỗi gia trị của tụ điện
thì thời gian để đếm hết một xung xác định sẽ là khác nhau. Dựa vào điểm này mà ta
tinh toán ra được ra giá trị của tụ điện tương ứng. Từ đây ta xác định được phím cảm
ứng có được nhấn hay không hoặc đưa ra thông số tốc độ điện dung tự do.
Như đã biết thì để xác định một phím có được nhấn hay không ta dựa vào tham
số threshold đã được định nghĩa trước đó. Threshold là giá trị “min” của độ thay đổi
điện dung khi ta chạm tay vào nút bấm, nếu giá trị điện dung thay đổi lớn hơn giá trih
threshold thì một pad mới được xác định là đã bấm.
Mỗi pad ban đầu sẽ có một điện dung nền là base_cnt[i]. Ta sẽ biết được giá trị này
bằng hàm measure_count() mà ta định nghĩa được, khi một phím được nhấn sẽ tự
động gọi hàm này lên để đo giá trị điện dung mới. khi đó só sánh với giá trị delta_cnt[i]
= base_cnt[i] – meas_cnt[i] để xác định nút đã được bấm. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý II. Kết luận
Mạch chạy tương đối ổn định, với đầy đủ các chức năng cần thiết để thực hiện.
Ngoài ra sau bài tập lớn này, nhóm chúng em sẽ phát triển mạch thêm nhiều chức
năng, ứng dụng hơn nữa như: “đồng bộ hóa tất cả các chức năng của mạch qua bộ
điều khiển RF, luôn hiện thị đúng khái niệm thời gian thực đối với chế độ bật tắt của
mạch, tích hợp LED điện tử vào mạch trong việc đo nhiệt độ ngoài trời và vận tốc
vòng quay của mạch… ”.
Một lần nữa em xin chân thành cảm ơn thầy TS. Ngô Vũ Đức và các anh trợ giảng
đã giúp đỡ nhiệt tình nhóm chúng em hoàn thành bài tập lớn. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
Tài liệu tham khảo
[1] http://www.diendanti.com, truy nhập lần cuối ngày 15/05/2015.
[2] http://www.dientuvietnam.net/, truy nhập lần cuối ngày 15/05/2015.
[3] https://www.google.com/, truy nhập lần cuối ngày 15/05/2015.
[4] http://www.wikipedia.org/, truy nhập lần cuối ngày 15/05/2015.
[5] http://www.ti.com/, truy nhập lần cuối ngày 15/05/2015. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
Phụ Lục A: Các bản vẽ thiết kế, bản vẽ mạch in, sản phẩm hoàn
chỉnh của đề tài
Hình 9: Sơ đồ nguyên lý của mạch. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
Hình 10: Sơ đồ mạch in. lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
Hình 11: Sản Phẩm hoàn chỉnh.
Phục Lục B: Mã nguồn
Includes ------------------------------------------------------------------*/ #include #include "LCD1602.h" #include "DS1302.h" lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý
/* Private typedef -----------------------------------------------------------*/ typedef unsigned char uchar;
/* Private define ------------------------------------------------------------*/ #define KEY_PORT_OUT P3OUT #define KEY_PORT_IN P3IN /*RF Connection*/ #define RF_PORT P1IN #define RF_D3 3 #define RF_D2 2 #define RF_D1 1 #define RF_D0 0 #define RF_D0_IN()
RF_PORT&(1<#define RF_D1_IN()
RF_PORT&(1<#define RF_D2_IN()
RF_PORT&(1<#define RF_D3_IN()
RF_PORT&(1<#define RF_IN() RF_PORT & 0x0f /*PWM*/ #define LEVEL_MAX 20 #define PERIOD 800 // f=20KHz #define DUTY_K PERIOD/20 #define MOTOR_ON() P4OUT |= 1<<0
#define MOTOR_OFF() P4OUT &= ~(1<<0) /* LCD BLACK LIGHT */ #define LCD_LED_PIN_ON() P2OUT &= ~(1<<0) #define LCD_LED_PIN_OFF() P2OUT |= 1<<0 #define Lcd_Led_On(); Lcd_Led_Cnt = 20 /* SPEAKER */ #define SP_PIN_ON() P1OUT &= ~(1<<4) lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý #define SP_PIN_OFF() P1OUT |= 1<<4 #define Sp_On() Sp_Cnt = 2
/* Private macro -------------------------------------------------------------*/ /*
Private variables ---------------------------------------------------------*/
const uchar KeyCode[16]={ '1','4','7','*', '2','5','8','0', '3','6','9','#', 'A','B','C','D',};
/* Private variables ---------------------------------------------------------*/
uchar menu, select,menu_select; uchar Display_Change; uchar
Lcd_Led_Cnt, Sp_Cnt; uchar Pointer_Cnt,Pointer_Blink,
Pointer_Addr; uchar Key_Old, Key_New, Key_Num; uchar RF_Old,
RF_New, RF_Act; uchar sec,min,hour,date,month,year; uchar
min_on,min_off,hour_on,hour_off; uchar motor_speed,motor_direct,
motor_on, motor_change; uchar Time_Update_Cnt; uchar cnt;
/* Private function prototypes -----------------------------------------------*/
unsigned char KeyScan(); void ShowTime();
/* Private functions ---------------------------------------------------------*/ void print2Dec(unsigned char d) { LCD_PutC(d/10+48); LCD_PutC(d%10+48); }
void Num_Typing(unsigned char* value, unsigned char max) {
*value = (*value%10)*10+Key_New-48; if(*value>max)*value=0; } lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý void Update_Pointer() { LCD_Goto(Pointer_Addr);
LCD_PutC(126-Pointer_Blink*94); }
void Set_Pointer(unsigned char Addr) { LCD_Goto(Pointer_Addr); LCD_PutC(32); Pointer_Addr = Addr; } /* * @brief: MENU Handle */ void AKEY_Handle() { menu++; select=0; switch(menu) { case 4: menu=0; case 0: {
RTC_GetDate(&date,&month,&year); Set_Pointer(0x10); LCD_Clr(); LCD_Goto(0x00); lOMoAR cPSD| 61554836
Bài tập lớn môn: Kỹ Thuật Vi Sử Lý LCD_PutS("TIME"); LCD_Goto(0x08); LCD_PutS("- -20"); LCD_Goto(0x4A); LCD_PutS(": :"); Display_Change=1; break; } case 1: { Set_Pointer(0x4D); LCD_Clr(); LCD_Goto(0x00); LCD_PutS("SET"); LCD_Goto(0x40); LCD_PutS("TIME"); LCD_Goto(0x0C); LCD_PutS("20"); Display_Change=1; break; } case 2: { Set_Pointer(0x09); LCD_Clr(); LCD_Goto(0x00); LCD_PutS("TIME-ON :"); LCD_Goto(0x40); LCD_PutS("TIME-OFF:"); LCD_Goto(0x0C);