Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
3,83 MB
Nội dung
ĐẠI HỌC LẠC HỒNG KHOA CƠ ĐIỆN ĐIỆN TỬ - THỰC TẬP VI ĐIỀU KHIỂN ỨNG DỤNG HÀ QUANG DUY LỚP: 20OT112 Đồng Nai, 4/2023 Yêu cầu 1.1 Viết chương trình điều khiển led đơn sáng đuổi từ trái sang phải , sau chạy từ phải sang trái với cầu sau: -Khi trạng thái reset (hay cấp nguồn cho mạch), led chưa hoạt động -Sau nhấn nút Start led bắt đầu hoạt động Nội dung triển khai: Câu (10đ): Lập bảng thống kê Input/Output, địa sử dụng cho ngõ vào Bảng thống kê địa ngõ vào (Input) Địa / Tên Input Mô tả chức STT Pin Nút Start Phát tín hiệu đầu vào 12 Bảng thống kê địa ngõ (Output) Địa / STT Tên output Mô tả chức Pin LED ON/OFF Led LED ON/OFF Led LED ON/OFF Led LED ON/OFF Led LED ON/OFF Led LED ON/OFF Led LED ON/OFF Led LED 10 ON/OFF Led Câu (10đ): Vẽ sơ đồ khối hệ điều khiển này, giải thích hoạt động khối Khối ngõ vào Khối xử lý trung tâm Khối ngõ Khối Nguồn *Giải thích hoạt động khối: -Khối Nguồn: cung cấp lượng cho tồn khối cịn lại -Khối ngõ vào: Nhận tín hiệu bên ngồi đưa vào Khối xử lí trung tâm -Khối xử lý trung tâm: Nơi xử lí tín hiệu để đưa kết cuối -Khối ngõ ra: Nơi tiếp nhận kết cuối từ khối xử lý trung tâm thực Câu 3: (10đ): Vẽ sơ đồ kết nối (mạch nguyên lý) hệ thống Câu (20đ): Trình bày sơ đồ giải thuật xử lý đề *Sơ đồ giải thuật led đơn sáng đuổi từ trái sang phải (1) Bắt đầu LED = [1] Delay 100ms LED = Thêm LED *Sơ đồ giải thuật led đơn sáng đuổi từ phải sang trái(2) Bắt đầu LED = [1] Delay 100ms LED = Giảm LED *Sơ đồ giải thuật nút ấn Bắt đầu Đọc giá trị nút nhấn Đúng Nh ấn Sai Run = Run = *Sơ đồ giải thuật tổng thể chương trình Bắt đầu Run=1 (1) (2) Kết hú Kết hú Câu (50đ): Viết code chương trình xử lý (30đ) trả lời câu hỏi(20đ) (copy code vào gởi file qua drive) int dem=0, run=0; void setup() { pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(12,INPUT); } void loop() { if(digitalRead(12)==0) { while(digitalRead(12)==0){} dem++; delay(50); run=1; } if(dem==1&&run==1) { for(int i=3;i2;i ) { digitalWrite(i,HIGH); delay(100); digitalWrite(i,LOW); } run=0; dem=0; } } Yêu cầu 1.2: Viết chương trình điều khiển led đơn sáng dồn từ trái sang phải , sau chạy từ phải sang trái với cầu sau: -Khi trạng thái reset (hay cấp nguồn cho mạch), led chưa hoạt động -Sau nhấn nút Start led bắt đầu hoạt động -Khi nhấn nút Stop led dừng lại trở trạng thái reset (tất led tắt) Câu (10đ): Lập bảng thống kê Input/Output, địa sử dụng cho ngõ vào Bảng thống kê địa ngõ vào (Input) STT Tên Input Địa / Pin Mô tả chức Nút nhấn Start Pin 13 Nút khởi động, thiết kế tích cực mức Nút nhấn Stop Pin 12 Nút dừng, thiết kế tích cực mức Bảng thống kê địa ngõ (Output) STT Tên output Địa / Pin Mô tả chức Led1 Pin Trạng thái sáng/ tắt ngỏ led1 Led2 Pin Trạng thái sáng/ tắt ngỏ led2 Led3 Pin Trạng thái sáng/ tắt ngỏ led3 Led4 Pin Trạng thái sáng/ tắt ngỏ led4 Led5 Pin Trạng thái sáng/ tắt ngỏ led5 Led6 Pin Trạng thái sáng/ tắt ngỏ led6 Led7 Pin Trạng thái sáng/ tắt ngỏ led7 Led8 Pin Trạng thái sáng/ tắt ngỏ led8 Câu (10đ): Vẽ sơ đồ khối hệ điều khiển này, giải thích hoạt động khối Hình Khối xử lí Cấu tạo nguyên lí hoạt động sơ đồ khối: Khối ngõ vào: - Nút nhấn (5V) - Truyền tín hiệu đến khối xử lí trung tâm Khối xử lí trung tâm: - Board mạch Atmega 2560 (5V) - Khối XL trung tâm nhận tín hiệu từ khối ngõ vào tiếp tục truyền tín hiệu tới ngõ Khối tải (ngõ ra): - Led đơn (5V) - Khối tải nhận tín hiệu từ khối XL trung tâm Các Led đơn phát sáng theo liệu người lập trình nạp khối XL trung tâm Khối Nguồn: Cung cấp điện áp 5V khối hoạt động Câu 3: (10đ): Vẽ sơ đồ kết nối (mạch nguyên lý) hệ thống Hình Sơ đồ kết nối Câu (20đ): Trình bày sơ đồ giải thuật xử lý đề Sơ đồ giải thuật nút nhấn Start Bắt đầu Đọc giá trị nút Start Nhấn ? Đ Run = Kết thúc S Sơ đồ giải thuật nút nhấn Stop Bắt đầu Đọc giá trị nút Stop Nhấn ? Đ Run = S Kết thúc Sơ đồ giải thuật Led đơn chạy từ trái sang phải define pinData 12 #define pinClock 13 #define pinLatch 10 #define up #define down #define start #define Stop int maled7doan[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; int giaTien=0, Run=0; void nhapDatavaoHC595(int so) { for(int i=0;i>7-i&0x01); digitalWrite(pinClock, HIGH); } } void buttonUp() { int i=0; if(digitalRead(up)==0) { While(digitalRead(up)==0) { i++; delay(1); } if(i>5) // dung la nhan nut { giaTien++; i=0; } else i=0; } } ///////button Down//// void buttonDown() { int i=0; if(digitalRead(down)==0) { while(digitalRead(down)==0) { i++; delay(1); } if(i>5) // dung la nhan nut { giaTien ; i=0; } else i=0; } } void buttonStart() { int i=0; if(digitalRead(start)==0) { while(digitalRead(Start)==0) { i++; delay(1); } if(i>5) // dung la nhan nut { Run=1; i=0; } else i=0; } } void buttonStop() { int i=0; if(digitalRead(Stop)==0) { while(digitalRead)==0) { i++; delay(1); } if(i>5) // dung la nhan nut { Run=0; giaTien=0; i=0; } else i=0; } } void setup() { // put your setup code here, to run once; for(int i=10; i=ght) { giaTri=ghd; } else { giaTri++; i=0; return(giaTri); } } else i=0; } return(giaTri); } int buttonDown(int ghd,int ght) { int i=0; if(digitalRead(Down)==0) { while(digitalRead(Down)==0) { i++; delay(1); } if(i>5) { if(giaTri