Giao tiếp biến trở, Chuyển adc sang duty PWM + Led 7đoạn, Lập trình Pic

doc-bien-tro-chuyen-doi-adc-sang-duty-pwm-hien-thi-led-7doan-quet-phan-cung
Giao tiếp biến trở là phương pháp dùng biến trở để phân áp ra điện áp theo một dãy điện áp ở hai đầu của biến trở sau đó đọc giá trị Analog về và quy đổi ra giá trị mong muốn theo yêu cầu sử dụng. Biến trở có rất nhiều ứng dụng như làm chỉnh âm lượng, dùng làm thay đổi tốc độ của động cơ,…

Mua linh kiện điện tử tại Điện tử Nhật Tùng

Liên hệ làm mạch  Phone: 0967.551.477 Zalo: 0967.551.477 Email: dientunhattung@gmail.com Địa Chỉ: 171/25 Lê Văn Thọ, P8, Gò Vấp, Tp HCM Chi tiết: Nhận làm mạch và đồ án Điện tử  
Khóa học Vi điều khiển có phí Hình thức học: Video hoặc Kèm trực tiếp ===>>>>  Kích vào hình để được biết thêm chi tiết khóa học lập trình vi điều khiển online

Tải File bài giải

Pass giải nén: Huynhnhattung.com
===>>>   Nếu bạn chưa có phần mềm giải nén:

Hướng dẫn Tải và Cài đặt phần mềm giải nén Winrar

 

Video Giao tiếp biến trở, Chuyển adc sang duty PWM + Led 7đoạn

 

Blog Giao tiếp biến trở, Chuyển adc sang duty PWM + Led 7đoạn

Đề bài giao tiếp biến trở:

doc-bien-tro-chuyen-doi-adc-sang-duty-pwm-hien-thi-led-7doan-quet

Bài giải giao tiếp biến trở:

Phần cứng chương trình giao tiếp biến trở:

  • Đầu tiên yêu cầu đưa ra có đọc giá trị điện áp từ Biến trở về thông qua chân Analog vì vậy bắt buộc phải gắn vào chân ANxx tức chân đọc tín hiệu Analog chuyển sang Digital.
  • Sử dụng nút nhấn đơn để thắng xe khi cần thiết tức giúp động cơ dừng hoạt động.
  • Đề yêu cầu sử dụng điều chế độ rộng xung PWM với duty thay đổi. Khi tạo xung CCP PWM nếu sử dụng hổ trợ từ phần mềm CCS hoặc từ nhà sản xuất thì chỉ có thể tạo được thông qua 2 chân CCP1CCP2. Ngoài ra người lập trình vẫn có khả năng tạo xung từ bất kể chân I/O nào có thể sử dụng delay, timer0, timer1,… Theo đề chân tạo xung bắt buộc vào chân RC1 đồng nghĩa với việc tạo xung bằng CCP2 để điều khiển tốc độ quay của động cơ để tăng hoặc giảm tốc độ cho xe.
  • Hiển thị hai led 7 đoạn anot chung theo phương pháp xuất tín hiệu quét led 7 đoạn nên phải gắn vào 2 Port là Port DPort B. Nếu làm mạch thực tế phải gắn trở cho led, cách tính trở 330 xem trong giáo trình thầy Nguyễn Đình Phú
  • Các linh kiện chính cần sử dụng tham khảo tại.
Thông số kỹ thuật Mua Linh kiện
Pic16F887Pic16F887
Led 7 đoạnLed 7 đoạn
Điện trởĐiện trở
Nút nhấnNút nhấn
Thạch anhThạch anh
Led đơnLed đơn
Tranzitor A1015Tranzitor A1015
Biến trởBiến trở

doc-bien-tro-chuyen-doi-adc-sang-duty-pwm-hien-thi-led-7doan-quet-phan-cung

Phần mềm giao tiếp Biến trở:

Khai báo thư viện tiền sử lý của giao tiếp Biến trở:

  • Vi điều khiển hiện tại mình đan dùng là Pic16F877A.
  • Theo yêu cầu hệ thống có đọc giá trị ADC vì vậy phải khai báo ADC bằng lệnh #device  adc=10 tức sử dụng bộ ADC 10bit. Ngoài ra có thể chọn ADC 8bit16bit.
  • Hiện dùng thạch anh ngoài và thạch anh ngoài khai báo 8M bằng lệnh #Fuses  hs  và  #delay(clock=8M).  
  • Định nghĩa chân: tùy theo chức năng của chân mà tên định nghĩa được bám sát vào nội dung đan thực hiện.
  • Mã 7 đoạn là đoạn mã Anot: Cấu trúc lệnh cho bạn nào cần copy : ” unsigned int8 ma7doan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8.0x80,0x90,0xff} “.
  • Tên khai báo biến phụ thuộc vào chức năng để khai báo cho phù hợp. 
  • Khi các biến không biết được giá trị cuối thì nên khai báo signed int32 tức khai báo biến có dấu 32bit, lúc này giá trị rất rộng không sợ bị thiếu.

doc-bien-tro-chuyen-doi-adc-sang-duty-pwm-hien-thi-led-7doan-quet-khai-bao

Chương trình con hiển thị giao tiếp Biến trở:

  • Chương trình con đầu tiên là hiển thị, vì ở đây là quét led 7 đoạn nên chỉ cần mỗi thời điểm chỉ cho một led 7 đoạn sáng đồng thời kích chân tương ứng, với tần số quét từ 50Hz trở lên thì hiệu ứng lưu ảnh trên mắt sẽ được ứng dụng tốt vì vậy sẽ không thấy được led bị nhấp nháy. Ở đây không hướng dẫn chi tiết về quét led chỉ nói khái quát sơ qua.
doc-bien-tro-chuyen-doi-adc-sang-duty-pwm-hien-thi-led-7doan-quet-chuong-trinh-con-hien-thi

Chương trình chính đọc giao tiếp Biến trở:

  • Bắt đầu chương trình chính phải khởi tạo ngõ vào ra cho vi điều khiển. Một chân của vi điều khiển thì làm nhiệm vụ I/O vì thế phải khỏi tạo. Port A dùng cho biến trở đưa vào Vi điều khiển vì thế khởi tạo giá trị là 0xff, nếu đúng thì chỉ cần khởi tạo là 0x01. Port D, Port C sử dụng xuất tiến hiệu cho led 7 đoạn, riêng Port C còn xuất tín hiệu cho chân điều khiển xung ngõ ra PWM vì vậy khởi tạo là 0x00. Port B kết nối với nút nhấn đưa tín hiệu vào vi điều khiển nên khởi tạo là 0x01.
  • Khởi tạo ADC sử dụng bộ chia 32 để số lần đọc nhiệt độ trên 1s ít. Kênh cần đọc là kênh số 0 được ký hiệu là AN0.

  • Khi sử dụng điều chế độ rộng xung do vi điều khiển hổ trợ thì sử dụng Timer2. Cách tính: Chu kỳ yêu cầu T=0.2ms. PR2 = 0.2ms/((1/8M)*4*4)-1 = 99. Sử dụng bộ chia 16. Nếu sử dụng bộ chia 1 hoặc 4 thì giá trị vượt 255 không thể đếm cho timer2. Duty =0.2ms/((1/8M)*4) = 400. Tức giá trị cực đại của duty=400.
  • Đọc giá trị điện áp thông qua hàm Read_adc(); sau đó chuyển giá trị từ 0 – 1023 sang dãy điện áp Vref+0 – 5000. Từ kết quả tính duty ở trên thì phải chuyển đổi sang giá trị từ 0 – 400 và quy đổi giá trị ra phần trăm hiển thị lên hai led 7 đoạn, vì vậy giá trị phần trăm cực đại là 99%. Sau đó hiển thị kết quả ra 2 led 7 đoạn theo phương pháp quét led. Kiểm tra nếu có nhấn nút thắng thì tắt động cơ ngược lại thì cho phép động cơ quay theo tốc độ được định sẵn bằng biến trở.

doc-bien-tro-chuyen-doi-adc-sang-duty-pwm-hien-thi-led-7doan-quet-chuong-trinh-chinh

Chúc các bạn có một kỳ thi thành công…!!!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *