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 mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 16:34 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnE nhớ bác Vivanpham làm bên điện tử y sinh, có lần đó cái sơ đồ máy chụp x quang sao có mấy con thryristor làm gì mà ko ai trả lới đúng cả
...
-
Channel: Tâm tình dân kỹ thuật
07-08-2026, 09:17 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnBác kiểm tra lại đường mạch, mối hàn xem có bị hở hoặc dẫn không tốt không?
Thay cầu diode lớn hơn càng tốt không vấn đề gì cả....-
Channel: Điện thanh
07-08-2026, 09:12 -
-
bởi LantheChào bạn.
Trục đầu ra của hộp số hành tinh xoắn ốc được kết nối với mặt bích của khách hàng thông qua một trục răng trong. Sau chưa đầy sáu tháng hoạt động, nó phát ra tiếng kêu lách cách và độ rơ lớn đáng báo động.
Việc...-
Channel: Thiết bị điện tử cá nhân
06-08-2026, 13:05 -
-
bởi ittcChào các anh em nhé, mình dự định sắp tới sẽ đi học lái xe Ôtô, thi lấy bằng lái. Cụ thể mình sẽ học và thi lấy giấy phép lái xe hạng B. Thật sự mình là người chưa có kiến thức hiểu biết gì về Ôtô cả ? tất nhiên mình sẽ phải...-
Channel: Tâm tình dân kỹ thuật
-
-
Trả lời cho Amply bị rò DC 22 voltbởi trung30000Theo sự hướng dẫn của bác, sau khi em kiểm tra tầng Vi sai sử dụng cặp c1815, tiếp đến là 1 con a1013, và cặp thúc sử dụng mje304g và mje305g, em đã tiến hành thay cặp Vi sai c1815 sau đó mở máy lên đo ngõ công suất DC 0,2V hai giây sau máy đo...-
Channel: Điện thanh
05-08-2026, 20:09 -

Comment