con atmega8 chi co 2 kênh pwm làm sao để điều khiển dc 8 động cơ servo nhi...loại em dùng là Servo SG90????
giúp đỡ về điều khiển servo
Collapse
X
-
Điều khiển Servo là phát xung vuông.Nguyên văn bởi saugiacmo Xem bài viếtcon atmega8 chi co 2 kênh pwm làm sao để điều khiển dc 8 động cơ servo nhi...loại em dùng là Servo SG90????Nhà phân phối, đại lý bán biến tần,PLC,HMI,AC Servo... Delta
Mr.Quỳnh 0978706839
-
Nếu ko cần điều khiển 1 lúc nhiều servo với nhiều tần số khác nhau thì cứ on off các port bình thường của atmega8 tạo xung PWM đơn giản là được.Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...
Comment
-
Loại servo này điều khiển bằng xung có tần số tầm 50Hz, độ rộng xung thay đổi từ 1-2ms. Có thể dùng 1 timer để điều khiển cùng 1 lúc 8 servo này. Ý tưởng như sau:
- ví dụ servo 1 có chu kỳ là 1.5ms thì đầu tiên mới khởi tạo ta cho thời gian tràn timer là 1.5ms
- sau khi timer tràn, trong ngắt timer ta chỉnh lại thời gian tràn timer là chu kỳ của servo 2
- cứ tiếp tục như vậy, trong ngắt timer tiếp theo ta lại chỉnh thời gian tràn timer là chu kỳ của servo 3
- làm tương tự đến servo thứ 8
- sau khi xong servo thứ 8 thì ta sẽ cho một ngắt timer cuối cùng để đảm bảo tần số điều khiển là 50Hz, thời gian tràn timer cuối cùng = 20ms (50Hz) - tổng thời gian tràn timer (từ servo 1 - servo 8)
- lặp lại quá trình trên từ trên xuống dưới để cập nhập độ rộng xung điều khiển
Comment
-
Cái này là code ngắt timer dùng trong MSP430, bác tham khảo nhé (cái này điều khiển có 4 servo thôi) 8 servo tương tự:
// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
counter++; // Increase counter
if(counter == 5)
counter = 0; // Counter range is 0-4, the last count is used to add 20ms delay
P2OUT &= ~0x0F; // Clear ports
if(counter == 4)
{
CCR0 = 20000 - (saveSignal[0] + saveSignal[1] + saveSignal[2] + saveSignal[3]); // Period = 20ms
}
else
{
P2OUT |= pinOn[counter]; // Set port of the current signal
CCR0 = pcmSignal[counter]; // Set time for the current signal
saveSignal[counter] = pcmSignal[counter];
}
}
Comment
-
mấy anh ơi! chỉ cách em điều khiển con servo SG90 đó nha! em điều khiển 1 con thôi! điều khiển về góc 0 độ và 90 độ là được! em mong nhận được câu trả của các anh! em cảm ơn nhiều!
Comment
Bài viết mới nhất
Collapse
-
bởi domar123Sự kết hợp giữa vi xử lý siêu cấp AMD Ryzen Threadripper 9960X / 9970X cùng card đồ họa Radeon RX 9060 XT / RX 9070 XT 16GB mang lại một cỗ máy "all-in-one" đúng nghĩa. Đây là cấu hình đáp ứng trọn vẹn cho những người dùng cần một hệ...
-
Channel: Đánh giá sản phẩm DTVN
Hôm qua, 11:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Nhân mùa Vu Lan báo hiếu, giới thiệu bài hát về mẹ:
TRỌN GÁNH THƯƠNG YÊU
Sáng tác: Hoàng Đình Thường
Hòa âm & hát: AI, ngày 04/05/2026
[Verse 1]
Ơn sâu nghĩa nặng ngập tràn
Cả đời mẹ đã nhọc nhằn gian...-
Channel: Tâm tình dân kỹ thuật
24-08-2026, 14:58 -
-
bởi domar123Trong môi trường vận hành kinh doanh và công việc văn phòng hằng ngày, tính ổn định, độ bền bỉ và chi phí đầu tư luôn là những ưu tiên hàng đầu. Bộ vi xử lý AMD Athlon 3000G cùng phiên bản Athlon 3000G MPK mang lại giải pháp máy tính phổ...
-
Channel: Đánh giá sản phẩm DTVN
21-08-2026, 10:53 -
-
bởi ittcCác bác ơi, có người bày em là nên đăng ký học qua thầy, thầy sẽ nhiệt tình hơn rồi thầy quen biết trong giới thi dễ đậu hơn bla bla, nhưng đã có nhiều vụ thầy nhận tiền xong trốn luôn, hoặc giữa thầy và trung tâm không đồng nhất...-
Channel: Tâm tình dân kỹ thuật
20-08-2026, 19:27 -
-
-
bởi domar123Giải pháp build PC thông minh cho game thủ thực dụng
Khi tự lắp một bộ PC chơi game với ngân sách có hạn, việc chi tiêu hợp lý từng đồng là chìa khóa để đạt hiệu năng thực tế cao nhất. Sử dụng các vi xử lý tích hợp đồ...-
Channel: Đánh giá sản phẩm DTVN
20-08-2026, 10:00 -

Comment