1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài 8: BÀI TOÁN TỔNG QUÁT

27 284 0
Tài liệu đã được kiểm tra trùng lặp

Đ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ài Toán Tổng Quát
Trường học Trường Đại Học Kỹ Thuật
Chuyên ngành Điều Khiển Động Cơ
Thể loại Bài Giảng
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 27
Dung lượng 492 KB

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

Nội dung

Bài 8: BÀI TOÁN TỔNG QUÁTI>Điều Khiển Động Cơ Nâng Cao: Ở bài trước các bạn đã biết cách điều khiển động cơ với một tốc độ cố định động cơ chỉ chạy với một tốc độ hoặc nếu có thay đổi

Trang 1

Bài 8: BÀI TOÁN TỔNG QUÁT

I>Điều Khiển Động Cơ Nâng Cao:

Ở bài trước các bạn đã biết cách điều khiển động cơ với

một tốc độ cố định (động cơ chỉ chạy với một tốc độ hoặc nếu

có thay đổi tốc độ thì hoàn toàn phụ thuộc vào chương trình trên vđk) Như vậy với một bài toán thực tế :tốc độ động cơ thay đổi tùy thuộc vào môi trường bên ngoài(cảm biến…) thì

nó chưa giải quyết được vấn đề

Ở bài này ta sẽ đi giải quyết vấn để trên.

Trang 2

Bài 8: BÀI TOÁN TỔNG QUÁT

THUẬT TOÁN ĐIỀU KHIỂN:

Giả sử ta cần có 10 cấp tốc độ cho ĐC, và muốn động cơ quay ở cấp tốc

bằng phím bấm , qua giao tiếp máy tính , hay qua tính toán từ việc thu thập giư liệu từ các cảm biến ….ta sẽ có giải thuật cho hàm PWM như sau :

Để có được 10 cấp tốc độ thì ta sẽ chia T thành 10 lần ngắt BĐT Như vậy với T=0,001s=1000chu kỳ máy thì ta phải tạo BĐT 100 chu kỳ sẽ ngắt một lần(kiến thức bài 6).Như vậy có thể coi mỗi lần ngắt sẽ tương

tạo xung thich hợp

Trang 3

Bài 8: BÀI TOÁN TỔNG QUÁT

Giải thuật chương trình tạo xung

Trang 4

Bài 8: BÀI TOÁN TỔNG QUÁT

chân P3_4 ,băm xung đk động cơ băng T0,mỗi lần bấm thì tốc độ động cơ sẽ tăng lên 1 cấp(10 cấp như trên).(tham khảo B1 của bài số 7) Dùng cả ngắt ngoài để thay đổi chiều quay của động cơ(INT0)

và 20 cấp tốc độ Tốc độ động cơ sẽ thay đổi tùy thuộc vào việc bạn bấm nhanh hay chậm (bấm càng nhanh thì tốc độ

đc càng cao) Hiển thị cấp tốc độ ra Led 7 thanh.

Trang 5

Bài 8: BÀI TOÁN TỔNG QUÁT

II>PHÍM MA TRẬN:

Sơ Đồ Nguyên Lý:

Trang 6

5V

C1 33p

C2 33p

+ C3 10uF/25V

R1 10K

U3

8051

R3 10K

5V

HANG 1

COT 4 COT 3

COT 2 COT 1

HANG 4

HANG 3 P3.2

R21

R

R22

R R23

R

R24

R

R25 R R26

10Kx8

R27 R

R28 R

P3.0 P3.1

Trang 7

Bài 8: BÀI TOÁN TỔNG QUÁT

// Ban phim ma tran // chuong trinh lam quen voi ban phim matran 4*4

-// Hien thi phim an tren LCD /* -Ban phim matran - ===============

| 0 | 1 | 2 | 3 | ===============

| 4 | 5 | 6 | 7 | ===============

| 8 | 9 | + | - | Cac phim chuc nang voi ten dinh truoc ===============

| * | / | D | = | ===============

-*/

Trang 9

/* -chuyen sang ma ASCII cho LCD -*/

void decode_LCD(unsigned char number2) {

switch (number2) {

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 10

/* -Cac chuong trinh con cua lcd -*/

// -Chuong trinh con kiem tra su san sang cua lcd -; void wait(void)

// Neu ban dem n den 100 roi thoat khoi while EN=0;// Dua xung cao xuong thap de chot RW=0;// Doc tu LCD

}

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 11

// -Chuong trinh con thiet lap lenh cho LCD -; void LCDcontrol(unsigned char x)

{

EN=1;// Dua chan cho fep len cao RS=0;// Chon thanh ghi lenh

RW=0;// Ghi len LCD LCDdata=x;// Gia tri x EN=0;// Xung cao xuong thap wait();// Doi LCD san sang }

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 12

// -chuong trinh con thiet lap mot so thong so cua lcd -; void LCDinit(void)

// -Chuong trinh con thiet lap dulieu cho LCD -; void LCDwrite(unsigned char c)

{

EN=1;// Cho fep muc cao RS=1;// Ghi du lieu

RW=0;// Ghi len LCD LCDdata=c;// Gia tri C EN=0;// Xung cao xuong thap

}

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 13

/* -Chuong trinh con quet phim -*/

void quetphim (void) { ha1=0; ha2=ha3=ha4=1;

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 14

// main program main()

->> -{ ha1=ha2=ha3=ha4=co1=co2=co3=co4=1; // thiet lap cot dau vao vdk

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 15

Bài 8: BÀI TOÁN TỔNG QUÁT

III>Led Matrix:

1 2 3 4 5 6 7 8

L E D M A T R I X 1

8 x 8

Trang 18

#include <REGX51.H>

/* Cot tu P0.0 den P0.7 Hang tu P2.0 den P2.7

De quet dua muc logic 0 lan luot ra cong 0

; } }

unsigned char kytu1[9];// Mang 9 phan tu chua gia tri cac hang day ra cong 2 unsigned char k=0;// Bien xac dinh cac ky tu

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 19

/* Ham nap gia tri hien thi cac ky tu vao mang kytu1

co 8 gia tri dua ra va 1 gia tri khong bat den nao de cac ky tu cach nhau 1 cot */ void mahoa(unsigned char x)

{

switch(x) {

// Dau trang case 0: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00;

kytu1[3]=0x00; kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00; break; }

// Chu M case 1: { kytu1[0]=0x00; kytu1[1]=0xFF; kytu1[2]=0x02; kytu1[3]=0x04; kytu1[4]=0x08; kytu1[5]=0x04; kytu1[6]=0x02; kytu1[7]=0xFF; kytu1[8]=0x00; break; }

// Chu T case 2: { kytu1[0]=0x00; kytu1[1]=0x01; kytu1[2]=0x01;

kytu1[3]=0x01; kytu1[4]=0xFF; kytu1[5]=0x01; kytu1[6]=0x01; kytu1[7]=0x01; kytu1[8]=0x00; break; }

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 20

// Chu C

case 3: { kytu1[0]=0x00; kytu1[1]=0x7E; kytu1[2]=0x81; kytu1[3]=0x81; kytu1[4]=0x81; kytu1[5]=0x81; kytu1[6]=0x42; kytu1[7]=0x00; kytu1[8]=0x00; break; }

// Dau trang case 4: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00; kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00; break; }

} }

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 21

/* Ham quet led ma tran_ vua hien thi vua dich ky tu dan sang trai*/

void hienthi(void) {

unsigned char n,m,lap;

unsigned char cot[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

// Cac phan tu quet cot for(m=0; m<8 ; m++)// Dich hien thi {

for(lap=0; lap<10; lap ++) // Lap hien thi {

for(n=0; n<8 ; n++)// Quet cot {

if((n+m)<9 )// Neu n+m < 9 hien thi ky tu 1 {

P0=cot[n]; // Day gia tri 0V ra cong 0 (cac cot) P2=kytu1[n+m];// Day cac gia tri cac hang (ma hoa ky tu) ra cong 2(cac hang) delay(45);// Tre du de led sang

}

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 22

if((n+m) > 7)// Neu n+m >7 hien thi ky tu 2 {

mahoa(k+1);// Nap gia tri ma hoa ky tu tiep de dua ra cac hang(Cong 2) P0=cot[n];// Day gia tri logic 0V ra cong 0(cac cot)

P2=kytu1[n+m-8];// Day cac gia tri cac hang (ma hoa ky tu) ra cong 2(cac hang) delay(45);// Tre du de led sang

} P0=0xFF;// Day cac cot len cao P2=0x00;// Dua cac hang xuong thap de tat toan bo cac led.

} } } }

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 23

void main(void) {

while(1)// Vong lap vo han.

{

k=k+1; // Tang k de hien thi chu M va chu T lan tiep if(k==4) k=0;// Quay vong hien thi

} }

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 24

Bài 8: BÀI TOÁN TỔNG QUÁT

*Để sáng được nhiều ký tự thì người ta sẽ nối nhiều Led matrix lại (ví dụ là ghép 8 Led matrix 8x8 liên tiếp thành một Led lớn với

8 hàng và 64 cột) Vấn đề là với nhiều hàng và cột như thế vđk

không đủ số chân để điều khiển Giả sử với thuật toán quét hàng như trên ta sẽ phải dùng tới 64 chân vđk để quét cột Có một cách để giải quyết vấn đề trên là dùng thêm vào các linh kiên

khác nhằm mở rộng cổng của vđk Linh kiện hay được dùng với Led matrix là IC595

Trang 25

Bài 8: BÀI TOÁN TỔNG QUÁT

U1

74HC595

9

1013

1411

1234567

SDO

CLRG

SDISRCLK

QBQCQDQEQFQGQH

Trang 26

Bài 8: BÀI TOÁN TỔNG QUÁT

Trang 27

THE END

NGUYỄN NGỌC KIÊN_CTM7K48

Ngày đăng: 06/11/2013, 04:15

TỪ KHÓA LIÊN QUAN

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

w