- Động cơ điện một chiều là gì?
- Thành phần bắt buộc
- Sơ đồ mạch
- Lập trình Atmega16 để điều khiển động cơ DC
Động cơ DC là động cơ được sử dụng rộng rãi nhất. Những động cơ này có thể được tìm thấy ở hầu hết mọi nơi, từ các dự án nhỏ cho đến chế tạo robot tiên tiến. Trước đây chúng tôi đã giao tiếp DC Motor với nhiều bộ vi điều khiển khác như Arduino, Raspberry pi và sử dụng nó trong nhiều dự án robot. Hôm nay chúng ta học cách điều khiển động cơ DC bằng Vi điều khiển AVR Atmega16. Nhưng trước khi đi trước chúng ta hãy biết thêm về động cơ DC.
Động cơ điện một chiều là gì?
Động cơ DC là một thiết bị biến năng lượng điện thành cơ năng. Cụ thể, động cơ điện một chiều sử dụng dòng điện một chiều để biến đổi năng lượng điện thành cơ năng. Nguyên lý cơ bản của động cơ là sự tương tác giữa từ trường và dòng điện để tạo ra một lực bên trong động cơ giúp động cơ quay. Vì vậy, khi cho dòng điện chạy qua cuộn dây trong từ trường sẽ sinh ra lực từ sinh ra mômen quay làm cho động cơ chuyển động. Chiều của động cơ được điều khiển bằng cách đảo chiều dòng điện. Ngoài ra, tốc độ của nó có thể thay đổi theo điện áp cung cấp khác nhau. Vì vi điều khiển có các chân PWM nên nó có thể được sử dụng để điều khiển tốc độ của động cơ.
Trong hướng dẫn này, hoạt động của động cơ DC sẽ được trình bày với Atmega16. Trình điều khiển động cơ L293D sẽ được sử dụng để đảo ngược hướng của dòng điện, do đó hướng chuyển động. Trình điều khiển động cơ L293D sử dụng cấu hình mạch H-Bridge để xuất ra dòng điện cần thiết cho Động cơ. Hai nút ấn được sử dụng để chọn hướng của động cơ. Một trong các nút ấn được sử dụng để chọn vòng quay khôn ngoan của đồng hồ và nút còn lại được sử dụng để chọn hoạt động chống đồng hồ của động cơ DC.
Thành phần bắt buộc
- Động cơ DC (5V)
- Trình điều khiển động cơ L293D
- IC vi điều khiển Atmega16
- Bộ dao động tinh thể 16Mhz
- Hai tụ điện 100nF
- Hai tụ điện 22pF
- Nút ấn
- Dây nhảy
- Breadboard
- USBASP v2.0
- Led (Bất kỳ màu nào)
Sơ đồ mạch
Lập trình Atmega16 để điều khiển động cơ DC
Ở đây, Atmega16 được lập trình bằng USBASP và Atmel Studio7.0. Nếu bạn không biết cách lập trình Atmega16 bằng USBASP thì hãy truy cập liên kết. Chương trình hoàn chỉnh được đưa ra ở cuối dự án, chỉ cần tải lên chương trình trong Atmega16 và sử dụng hai Nút đẩy để xoay động cơ DC theo chiều kim đồng hồ và Ngược chiều kim đồng hồ.Động cơ DC được giao tiếp bằng cách sử dụng trình điều khiển động cơ L293D. Động cơ DC sẽ quay theo hai hướng khi nhấn nút ấn tương ứng. Một nút nhấn sẽ được sử dụng để xoay động cơ DC theo hướng Đồng hồ thông minh và một nút nhấn khác sẽ được sử dụng để quay động cơ DC theo hướng khôn ngoan của Đồng hồ đếm. Đầu tiên xác định tần số CPU của vi điều khiển và bao gồm tất cả các thư viện cần thiết.
#define F_CPU 16000000UL #include #include
Sau đó, sử dụng một biến để theo dõi trạng thái nhấn nút nhấn. Biến này sẽ được sử dụng để xác định hướng của động cơ.
int i;
Chọn chế độ đầu vào / đầu ra của GPIO bằng thanh ghi hướng dữ liệu. Ban đầu, đặt đầu ra của chân Motor ở mức thấp để tránh khởi động động cơ mà không cần nhấn nút nhấn.
DDRA = 03; PORTA & = ~ (1 << 1); PORTA & = ~ (1 << 0);
Kiểm tra xem 1 st nút nhấn được nhấn kết nối với PORTA4 của ATmega16 và lưu trữ các trạng thái của nút nhấn trong biến.
if (! bit_is_clear (PINA, 4)) { i = 1; PORTA & = ~ (1 << 1); _delay_ms (1000); }
Tương tự, kiểm tra xem nút nhấn thứ 2 được nhấn có kết nối với PORTA5 của Atmega16 hay không và lưu trữ trạng thái của nút nhấn trong biến.
else if (! bit_is_clear (PINA, 5)) { i = 2; PORTA & = ~ (1 << 0); _delay_ms (1000); }
Nếu trạng thái của nút bấm thứ nhất là đúng thì xoay động cơ DC theo chiều Đồng hồ và nếu trạng thái của nút nhấn thứ hai là đúng thì hãy xoay động cơ DC theo hướng nghịch đồng hồ.
if (i == 1) { PORTA - = (1 << 0); PORTA & = ~ (1 << 1); } else if (i == 2) { PORTA - = (1 << 1); PORTA & = ~ (1 << 0); }
Bạn có thể kết nối chân động cơ với bất kỳ chân GPIO nào tùy thuộc vào GPIO được sử dụng. Ngoài ra, điều quan trọng là sử dụng IC điều khiển động cơ để giảm tải trên vi điều khiển vì vi điều khiển không có khả năng cung cấp dòng điện cần thiết để chạy động cơ DC. Để biết thêm chi tiết và các dự án khác dựa trên động cơ DC, vui lòng truy cập liên kết đã cho.
Mã hoàn chỉnh và Video trình diễn được cung cấp bên dưới.