1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO THÍ NGHIỆM VI ĐIỀU KHIỂN

77 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Thí Nghiệm Vi Điều Khiển
Tác giả Lê Hoàng Chung
Người hướng dẫn ThS. Nguyễn Minh Triết
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Tp. Hcm
Chuyên ngành Cơ Điện Tử
Thể loại báo cáo
Năm xuất bản 2018
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 77
Dung lượng 2,38 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

4 RS 0 Chế độ ra lệnh command1 Chế độ dữ liệu data 5 RW 0 Chế độ ghi dữ liệu từ vi điều khiển vào LCD 1 Chế độ đọc dữ liệu từ LCD ra vi điều khiển 6 E 0 Cờ báo không tương tác với LCD 1

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM

KHOA CƠ KHÍ CHẾ TẠO MÁY

BỘ MÔN CƠ ĐIỆN TỬ



BÁO CÁO THÍ NGHIỆM VI ĐIỀU KHIỂN

GVHD: ThS Nguyễn Minh Triết

Lê Hoàng Chung 16146249

Tp Hồ Chí Minh, tháng 3 năm 2018

Trang 2

BÀI 1 : Giới thiệu MPLABX và KIT thí nghiệm

1 Giới thiệu KIT thí nghiệm:

Khối vi điều khiển trung tâm

Khối LED – Nút Bấm

Trang 5

2 Thao tác trình biên dịch MPLABX, CCS:

(Trình bày các bước biên soạn chương trình và biên dịch với MPLABX (XC8) hoặc PIC-C (CCS))

Trang 10

3 Bài tập thực hành:

3 1: Lập trình 1 đèn LED sáng tắt theo chu kỳ 1s.

Trình bày sơ đồ mạch (chỉ phần kết nối LED)

Trang 13

3.3: Lập trình giao tiếp nút nhấn và đèn LED

a) Khi nhấn giữ nút BT1 đèn LED 1 sáng, không nhấn nút BT1 đèn LED1 tắt

b) Khi nhấn giữ nút BT1 đèn LED 1 tắt, không nhấn nút BT1 đèn LED1 sáng

c) Khi nhấn giữ nút BT1 hoac BT2 đèn LED 1 sáng, không nhấn nút BT1 va BT2 đèn LED1 tắt.d) Khi nhấn nút BT1 và thả tay ra thì đèn LED 1 sáng, khi nhấn nút BT2 và thả tay ra đèn LED

1 tắt

e) Khi nhấn nút BT1 (vừa nhấn vào chưa thả tay ra) thì đèn LED 1 sáng, khi nhấn nút BT2 và thả tay ra đèn LED 1 tắt

f) Khi nhấn nút BT1 và thả tay ra thì đèn LED 1 sáng, khi nhấn BT1 thêm một lần nữa và thả tay

ra đèn LED 1 tắt (va lap lai qua trinh nut nhan sang)

Trang 14

void caub()

Trang 16

RA3 = 1; // LED 1 TẮT }

if( RA0 == 0){ // NẾU CÒN NHẤN NÚT 1

nut++; // CỘNG BIẾN LÊN 1 ĐƠN VỊ while( RA0 ==0 ); } // CHỜ THẢ NÚT

if( nut % 2 == 0) // THỰC HIỆN SO SÁNH

Trang 17

3.4: Lập trình giao tiếp nút nhấn và LED

a) Khi nhấn nút BT1 và thả tay ra thì đèn LED 1 sáng tắt chu kỳ 500ms (lap lai), khi nhấn BT1 thêm một lần nữa và thả tay ra đèn LED 1 tắt (va lap lai qua trinh nut nhan sang)

b) Khi nhấn nút BT1 và thả tay ra thì đèn LED 1 sáng tắt chu kỳ 200ms,

Khi nhấn BT2 và thả tay ra thì đèn LED 1 sáng tắt chu kỳ 1000ms,

Khi nhấn BT3 và thả tay ra thì đèn LED 1 tắt.

Trang 19

if( RA0 == 0){ // NẾU NHẤN NÚT 1

delay_ms(20); // CHỐNG DỘI 20ms

if( RA0 == 0){ // NẾU CÒN NHẤN NÚT 1

nut++; // CỘNG BIẾN LÊN 1 ĐƠN VỊ while( RA0 ==0 ); } // CHỜ THẢ NÚT

if( nut % 2 != 0) { // THỰC HIỆN SO SÁNH

Trang 20

3.5: Lập trình thỏa mãn 3 điều kiện sau:

- Khi nhấn nút BT1 lần 1 và thả tay ra, đèn LED 1 sáng

- Khi nhấn nút BT1 lần 2 và thả tay ra đèn LED 1 sáng tắt 2000ms (lặp lại)

Trang 21

- Khi Khi nhấn nút BT1 lần 3 và thả tay ra, đèn LED 1 tắt.

Trang 22

if( a ==2 ){

RA3 = 0; // LED1 SÁNG delay_ms(1000);

RA3 = 1; // LED1 TẮT delay_ms(1000); }

}

return;

}

//Trương Trọng Thân_16146606

Trang 23

Bài 2: KHẢO SÁT ĐỘNG CƠ SERVO DS04-NFC VÀ ĐỘNG HỌC XE HAI BÁNH

1 Khảo sát động cơ DSN04:

2 Bài tập thí nghiệm buổi 2:

2.1 Lập trình điều khiển MỘT động cơ Servo DSN04

a) Chạy thuận (1đ)

Trang 26

RD7 = 0;

}

//Trương Trọng Thân_16146606

2.2 Lập trình điều khiển HAI động cơ Servo DSN04

a) Chạy cùng tốc độ (cùng chiều hoặc ngược chiều) (1đ)b) Mỗi động cơ một tốc độ khác nhau (1đ)

Trang 27

2.3 Lập trình điều khiển xe theo phương trình động học

a) Chạy (thẳng) tiến/lùi (Viết hàm với tham số vào vận tốc xe: Tham số dương chạy tiến, tham số âm chạy lùi, tham số bằng 0 ngừng chạy) (2đ)

b) Chạy quẹo trái, quẹo phải tại tâm xe (Viết hàm với tham số vào là tốc độ quẹo: Tham

số dương là quẹo ngược chiều kim đồng hồ, tham số âm là cùng chiều kim đồng hồ.) (2đ)

c) Chạy theo hành trình một hình vuông, cạnh dài 500mm (1đ)

Chương trình lập trình:

Trang 28

Bài 3: Khảo sát cảm biến siêu âm SRF04

và LCD HD44780

1 Khảo sát cảm biến siêu âm SRF04:

Trang 31

RB0 = 0; //TRIGGER LOW

while(!RB4); //Waiting for Echo

TMR1ON = 1; //Timer Starts

while(RB4); //Waiting for Echo goes LOW

TMR1ON = 0; //Timer Stops

Trang 32

STT Tên Mức logic Chức năng

1 VSS - Cấp nguồn GND Nối với GND (0V)

2 VDD - Cấp nguồn dương +5V Nối với VDD (5V)

3 Vo - Chỉnh độ tương phản (bằng biến trở 10K)

Trang 33

4 RS 0 Chế độ ra lệnh (command)

1 Chế độ dữ liệu (data)

5 RW 0 Chế độ ghi dữ liệu từ vi điều khiển vào LCD

1 Chế độ đọc dữ liệu từ LCD ra vi điều khiển

6 E 0 Cờ báo không tương tác với LCD

1 Cờ báo được phép giao tiếp LCD

1 -> 0 Vừa hoàn tất giao tiếp dữ liệu với LCD

7 D0 Đường truyền dữ liệu bit thấp nhất (bit 0)

8 D1 Đường truyền dữ liệu từ vi điều khiển vào LCD

9 D2 Đường truyền dữ liệu từ vi điều khiển vào LCD

10 D3 Đường truyền dữ liệu từ vi điều khiển vào LCD

11 D4 Đường truyền dữ liệu từ vi điều khiển vào LCD

12 D5 Đường truyền dữ liệu từ vi điều khiển vào LCD

13 D6 Đường truyền dữ liệu từ vi điều khiển vào LCD

14 D7 Đường truyền dữ liệu từ vi điều khiển vào LCD

15 A - Chân A đèn nền (LED) (Đèn cần nối điện trở hạn dòng

Trang 34

EN = 1; // => E = 1 delay_ms(4);

EN = 0; // => E = 0 }

Trang 39

unsigned int gio = 0; phut = 0; giay = 0;char s[20];

Trang 41

#include "lcd.h";

void main()

{

int a;

TRISB = 0b00010000; //RB4 as Input PIN (ECHO)

TRISD = 0x00; // LCD Pins as Output

while(!RB4); //Waiting for Echo

TMR1ON = 1; //Timer Starts

Trang 42

while(RB4); //Waiting for Echo goes LOW

TMR1ON = 0; //Timer Stops

Trang 43

TRISB = 0b00010000; //RB4 as Input PIN (ECHO)

TRISD = 0x00; // LCD Pins as Output

Trang 44

T1CON = 0x10; //Khởi tạo TIMER

while(!RB4); //Waiting for Echo

TMR1ON = 1; //Timer Starts

while(RB4); //Waiting for Echo goes LOW

TMR1ON = 0; //Timer Stops

Trang 45

Lcd_Write_String("Ngoai khoang do");

Trang 46

while(1){

for(int i = 0;i<10;i++){ PORTDbits.RD1=1;

delay_us(1800);//1030 PORTDbits.RD1=0;

delay_ms(19);

PORTDbits.RD2=1;

delay_us(1030);//1800 PORTDbits.RD2=0;

delay_us(1005);//1030 PORTDbits.RD1=0;

delay_ms(19);

PORTDbits.RD2=1;

delay_us(1830);//1800 PORTDbits.RD2=0;

break;

Trang 47

}

}

Trang 48

Bài 4: Lập trình giao tiếp với ngoại vi bằng giao thức RS-232 (USART)

1 Giới thiệu giao thức truyền dữ liệu RS232:

Chuẩn giao tiếp RS232 là một trong những kỹ thuật được sử dụng rộng rãi hiện nay để nối ghép các thiết bị ngoại vi với máy tính Nó là một chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là hai thiết bị , chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 15m, tốc độ 20kbit/s (Ngày nay có thể cao hơn)

Các đặc tính kỹ thuật của chuẩn RS-232 theo tiêu chuẩn TIA/EIA-232-F như sau:

Chiều dài cable cực đại 15m (50 Feet) Tốc độ dữ liệu cực đại 20 Kbps Điện áp ngõ ra cực đại ± 25V Điện áp ngõ ra có tải ± 5V đến ± 15V Trở kháng tải 3K đến 7K Điện áp ngõ vào ± 15V

Độ nhạy ngõ vào ± 3V Trở kháng ngõ vào 3K đến 7K

Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps, 9600 bps và 19200 bps.

Các mức điện áp của đường truyền:

Mức điện áp của tiêu chuẩn RS232( chuẩn thường được dùng bây giờ) được mô tả như sau:

Trang 49

Mức logic 0: +3V, +12V (SPACE)

Mức logic 1: -12V, -3V (MARK)

Các mức điện áp trong phạm vi từ 3V đến 3V là trạng thái chuyển tuyến Chính vì từ 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thời gian ngắn hợp lý Điều này dẫn tới việc phải hạn chế về điện dung của các thiết bị tham gia và của cả đường truyền Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn.Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2kbit/s.

-2 Sơ đồ chân cổng kết nối

Các máy tính thường có một hoặc hai cổng nối tiếp theo chuẩn RS232 được gọi là cổng COM Chúng được dùng để ghép nối cho chuột, modem, thiết bị đo lường…Trên main máy tính có loại 9 chân hoặc loại 25 chân tùy vào đời máy và main của máy tính.

Trang 50

Hình 4.2 – Sơ đồ chân cổng nối tiếp

Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân) mô tả như hình 4.2 Ý nghĩa của các chân mô tả như sau:

1 - - - Protected ground: nối đất bảo vệ

2 3 TxD DTE ->

DCE Transmitted data: dữ liệu truyền

3 2 RxD DCE -> Received data: dữ liệu nhận

Trang 51

8 1 DCD DCE->DTE Data carier detect: DCE phát hiện sóng mang

20 4 DTR DTE->DCE Data terminal ready: DTE sẵn sàng làm việc

22 9 RI DCE->DTE Ring indicator: báo chuông

23 - DSRD DCE->DTE Data signal rate detector: dò tốc độ truyền

24 - TSET DTE->DCE Transmit Signal Element Timing: tín hiệu định thời

truyền đi từ DTE

15 - TSET DCE->DTE

Transmitter Signal Element Timing: tín hiệu định thời

truyền từ DCE để truyền dữ liệu

17 - RSET DCE->DTE Receiver Signal Element Timing: tín hiệu định thời

truyền từ DCE để truyền dữ liệu

18 - LL Local Loopback: kiểm tra cổng

21 - RL DCE->DTE Remote Loopback: Tạo ra bởi DCE khi tín hiệu nhận

từ DCE lỗi

14 - STxD DTE->DCE Secondary Transmitted Data

16 - SRxD DCE->DTE Secondary Received Data

Trang 52

19 - SRTS DTE->DCE Secondary Request To Send

13 - SCTS DCE->DTE Secondary Clear To Send

12 - SDSR

D DCE->DTE Secondary Received Line Signal Detector

9 - Dành riêng cho chế độ test

10 - Dành riêng cho chế độ test

Truyền dữ liệu:

Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:

Trang 53

Dạng tín hiệu truyền mô tả như sau (truyền ký tự A):

Trang 54

Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ Do vậy nên tại một thời điểm chỉ có một bit được truyền Bộ truyền gửi một bit bắt đầu (bit start) để thông báo cho bộ nhận biết một ký tự sẽ được gửi đến trong lần truyền bit tiếp theo Bit này luôn bắt đầu bằng mức 0 Tiếp theo đó là các bit dữ liệu (bit data) được gửi dưới dạng mã ASCII (có thể là 5,6,7, hay 8 bit dữ liệu) sau đó là một Parity bit (kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit stop (còn gọi là bit dừng) có thể là 1 hay 2 bit Stop.

vi điều khiển và máy tính phải chung nhau một tốc độ truyền bit).

Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ baud Tốc độ baud liên quan đến tốc độ mà phân tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền, còn tốc độ bit thì phản ánh tốc độ mà phân tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền Vì một phần tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ bit và tốc

độ baud là phải đồng nhất.

Một số tốc độ baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800,

9600, 19200, 28800, 38400, 56000, 115200 Trong thiết bị thường dùng tốc độ baud

là 19200.

Bit chẵn lẻ hay Parity bit.

Đây là bit kiểm tra lỗi trên đường truyền Thực chất của quá trình kiểm tra lỗi khi truyền

dữ liệu là bổ sung thêm dữ liệu được truyền để tìm ra hoặc sửa một số lỗi trong quá trình truyền Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn lẻ Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để thấy số lượng các bit “1” được gửi trong một

Trang 55

khung truyền là chẵn hay lẻ.

Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi như là 1, 3, 5, 7, 9… Nếu như một bit mắc lỗi thì bit Parity bit sẽ trùng giá trị với trường hợp không mắc lỗi vì thế không phát hiện ra lỗi Do đó trong kỹ thuật mã hóa lỗi này không được sử dụng trong trường hợp có khả năng một vài bit bị mắc lỗi.

unsigned char Rxdata[25];

unsigned char Txdata[] = "123123123123123";

void putch(char data){

while (BusyUSART());

putcUSART(data);

}

void main() {

unsigned char config=0,spbrg=0,baudconfig=0,i=0;

CloseUSART(); //turn off usart if was previously on

Trang 56

while(BusyUSART()); //Check if Usart is busy or not

putsUSART((char *)Txdata); //transmit the string

//USART Reception

getsUSART((char *)Rxdata,24); //Recieve data upto 24 bytes

while(BusyUSART()); //Check if Usart is busy or not

putsUSART((char *)Rxdata); //echo back the data recieved back tohost

CloseUSART();

//while(1); //end of program

printf("\n Truong Trong Than ");

Trang 58

//Trương Trọng Thân_16146606

3.3 Lập trình truyền dữ liệu giữa hai vi điều khiển sao cho:

Một vi điều khiển đọc cảm biến siêu âm chức năng truyền dữ liệu

Trang 59

while(!RB4); //Waiting for Echo

TMR1ON = 1; //Timer Starts

while(RB4); //Waiting for Echo goes LOW

TMR1ON = 0; //Timer Stops

Trang 60

Một vi điều khiển nhận dữ liệu, hiển thị lên LCD.

Trang 62

delay_us(1800);//1030 PORTDbits.RD1=0;

delay_ms(19);

PORTDbits.RD2=1;

delay_us(1030);//1800

Trang 63

delay_us(1005);//1030 PORTDbits.RD1=0;

delay_ms(19);

PORTDbits.RD2=1;

delay_us(1830);//1800 PORTDbits.RD2=0;

Trang 64

TRISDbits.TRISD1=0; //D7 output

PORTDbits.RD1=0;

Trang 67

Bài 5: Lập trình thuật toán PID

Một bộ điều khiển vi tích phân tỉ lệ (bộ điều khiển PID- Proportional Integral

Derivative) là một cơ chế phản hồi vòng điều khiển ( bộ điều khiển ) tổng quát được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điều khiển PID là bộ điều khiển được sử dụng nhiều nhất trong các bộ điều khiển phản hồi Bộ điều khiển PID sẽ tính toán giá trị "sai số" là hiệu số giữa giá trị đo thông số biến đổi và giá trị đặt mong muốn Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào Trong trường hợp không có kiến thức cơ bản (mô hình toán học) về hệ thống điều khiển thì bộ điều khiển PID là sẽ bộ điều khiển tốt nhất Tuy nhiên, để đạt được kết quả tốt nhất, các thông số PID sử dụng trong tính toán phải điều chỉnh theo tính chất của hệ thống-trong khi kiểu điều khiển là giống nhau, các thông số phải phụ thuộc vào đặc thù của hệ thống.

Giải thuật tính toán bộ điều khiển PID bao gồm 3 thông số riêng biệt, do đó đôi khi nó còn được gọi là điều khiển ba khâu: các giá trị tỉ lệ , tích phân và đạo hàm , viết tắt

là P, I, và D Giá trị tỉ lệ xác định tác động của sai số hiện tại, giá trị tích phân xác định tác động của tổng các sai số quá khứ, và giá trị vi phân xác định tác động của tốc độ biến

Trang 68

đổi sai số Tổng chập của ba tác động này dùng để điều chỉnh quá trình thông qua một phần tử điều khiển như vị trí của van điều khiển hay bộ nguồn của phần tử gia nhiệt Nhờ vậy, những giá trị này có thể làm sáng tỏ về quan hệ thời gian: P phụ thuộc vào sai

số hiện tại, I phụ thuộc vào tích lũy các sai số quá khứ, và D dự đoán các sai số tương lai, dựa vào tốc độ thay đổi hiện tại.

Bằng cách điều chỉnh 3 hằng số trong giải thuật của bộ điều khiển PID, bộ điều khiển có thể dùng trong những thiết kế có yêu cầu đặc biệt Đáp ứng của bộ điều khiển có thể được

mô tả dưới dạng độ nhạy sai số của bộ điều khiển, giá trị mà bộ điều khiển vọt lố điểm đặt và giá trị dao động của hệ thống Lưu ý là công dụng của giải thuật PID trong điều khiển không đảm bảo tính tối ưu hoặc ổn định cho hệ thống.

Vài ứng dụng có thể yêu cầu chỉ sử dụng một hoặc hai khâu tùy theo hệ thống Điều này đạt được bằng cách thiết đặt đội lợi của các đầu ra không mong muốn về 0 Một bộ điều khiển PID sẽ được gọi là bộ điều khiển PI, PD, P hoặc I nếu vắng mặt các tác động bị khuyết Bộ điều khiển PI khá phổ biến, do đáp ứng vi phân khá nhạy đối với các nhiễu đo lường, trái lại nếu thiếu giá trị tích phân có thể khiến hệ thống không đạt được giá trị mong muốn.

Điều khiển PID: là một kiểu điều khiển có hồi tiếp, ngõ ra thay đổi tương ứng với

sự thay đổi của giá trị đo.

Người ta có thể chỉ áp dụng điều khiển P, PI, hay PID.

Công thức toán của bộ điều khiển PID trên miền Laplace:

Ngày đăng: 18/08/2022, 10:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w