Mục lục:

Atmega128A Điều khiển động cơ tỷ lệ - Bộ hẹn giờ ATMEL ICE AVR Điều khiển PWM UART: 4 bước
Atmega128A Điều khiển động cơ tỷ lệ - Bộ hẹn giờ ATMEL ICE AVR Điều khiển PWM UART: 4 bước

Video: Atmega128A Điều khiển động cơ tỷ lệ - Bộ hẹn giờ ATMEL ICE AVR Điều khiển PWM UART: 4 bước

Video: Atmega128A Điều khiển động cơ tỷ lệ - Bộ hẹn giờ ATMEL ICE AVR Điều khiển PWM UART: 4 bước
Video: HUST | Điều khiển tốc độ động cơ DC dùng PWM | STM32 vi điều khiển ứng dụng 2024, Tháng mười một
Anonim
Atmega128A Điều khiển động cơ tỷ lệ - ATMEL ICE AVR Timer UART Điều khiển PWM
Atmega128A Điều khiển động cơ tỷ lệ - ATMEL ICE AVR Timer UART Điều khiển PWM
Atmega128A Điều khiển động cơ tỷ lệ - ATMEL ICE AVR Timer UART Điều khiển PWM
Atmega128A Điều khiển động cơ tỷ lệ - ATMEL ICE AVR Timer UART Điều khiển PWM
Atmega128A Điều khiển động cơ tỷ lệ - ATMEL ICE AVR Timer UART Điều khiển PWM
Atmega128A Điều khiển động cơ tỷ lệ - ATMEL ICE AVR Timer UART Điều khiển PWM
Atmega128A Điều khiển động cơ tỷ lệ - ATMEL ICE AVR Timer UART Điều khiển PWM
Atmega128A Điều khiển động cơ tỷ lệ - ATMEL ICE AVR Timer UART Điều khiển PWM

Trong hướng dẫn này, tôi sẽ giải thích cho bạn cách

  • điều khiển động cơ DC với PWM
  • giao tiếp qua UART
  • xử lý ngắt bộ hẹn giờ

Trước hết, chúng tôi sẽ sử dụng bảng Phát triển hệ thống AVR Core mà bạn có thể tìm thấy trên Aliexpress với giá khoảng 4 USD. Liên kết bảng Phát triển ở đây. Chúng tôi cũng sẽ sử dụng Atmel ICE Debugger và Atmel Studio để lập trình và gỡ lỗi phần mềm của chúng tôi.

Bước 1: Lặn sâu vào bảng dữ liệu & mã nguồn - Tốc độ đồng hồ

Lặn sâu vào bảng dữ liệu & mã nguồn - Tốc độ đồng hồ
Lặn sâu vào bảng dữ liệu & mã nguồn - Tốc độ đồng hồ
Lặn sâu vào bảng dữ liệu & mã nguồn - Tốc độ đồng hồ
Lặn sâu vào bảng dữ liệu & mã nguồn - Tốc độ đồng hồ
Lặn sâu vào bảng dữ liệu & mã nguồn - Tốc độ đồng hồ
Lặn sâu vào bảng dữ liệu & mã nguồn - Tốc độ đồng hồ

Trong 1. gạch đầu dòng, chúng tôi xác định tần số tinh thể của chúng tôi nơi chúng tôi có thể nhìn thấy trên bảng phát triển

Bước 2: Đặt đăng ký UART

Đặt đăng ký UART
Đặt đăng ký UART
Đặt đăng ký UART
Đặt đăng ký UART
Đặt đăng ký UART
Đặt đăng ký UART
Đặt đăng ký UART
Đặt đăng ký UART

Để giao tiếp với UART, bạn phải thiết lập Bộ ghi tốc độ truyền của USART - UBRRnL và UBRRnH một cách chính xác, bạn có thể tự tính toán hoặc bạn có thể sử dụng máy tính trực tuyến để dễ dàng nhận được các giá trị chính xác

Máy tính trực tuyến

ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…

Vì vậy, giá trị MYUBBR được tính sau đó, Trong thanh ghi UCSR0B, chúng ta kích hoạt RXEN0 (kích hoạt recv) TXEN0 (cho phép truyền) và RXCIE0 (RX cho ngắt). Trong thanh ghi UCSR0C, chúng ta chọn kích thước ký tự 8 bit.

Sau khi chúng tôi đặt bit ngắt RX, chúng tôi nên thêm hàm ISR cho USART0_RX_vect

ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {đệm [đệmIndex] = rcvChar; bufferIndex ++; }}

Bạn không nên thực hiện bất kỳ logic nghiệp vụ nào trong quy trình dịch vụ gián đoạn của mình. Bạn phải làm cho hàm trả về càng sớm càng tốt.

Bước 3: Cài đặt PWM

Cài đặt PWM
Cài đặt PWM

Trong chức năng initPWM, chúng tôi đặt tỷ lệ xung nhịp CPU, chế độ Bộ hẹn giờ / Bộ đếm là Fast PWM và đặt hành vi của nó bằng các bit COM

Chúng ta cũng nên kết nối động cơ DC với chân OC2 được chỉ định trong Bảng 66. So sánh Chế độ đầu ra, Chế độ PWM nhanh trong biểu dữ liệu của chúng tôi, bạn cũng sẽ thấy rằng chân OC2 là (OC2 / OC1C) PB7

Bước 4: Kết quả

Kết quả
Kết quả
Kết quả
Kết quả

Khi bạn tải lên mã nguồn trong tệp đính kèm.

Bạn có thể nhập giá trị PWM mới (0-255) từ UART (bạn có thể sử dụng thiết bị đầu cuối cổng nối tiếp arduino) để đặt tốc độ Động cơ DC.

Đề xuất: