PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Điều khiển động cơ servo (http://www.picvietnam.com/forum/showthread.php?t=2190)

KDD04 31-03-2008 06:30 PM

Điều khiển động cơ servo
 
1 Attachment(s)
Ai biết thì giúp mình với. Mình đang cần code để điều khiển động cơ theo yêu cầu sau:
Mạch điều khiển động cơ servo:
Nhấn nút ON mở động cơ (coi như đây là nút nhấn cho phép động cơ hoạt động hay điều chỉnh tốc độ).
Nhấn nút OFF động cơ đang quay thì dừng lại.
Nhấn FOR động cơ quay thuận (led đầu tiên hiển thị số 1).
Nhấn REV động cơ quay ngược(led đầu tiên hiển thị số 0).
(Khi chuyển giữa hai chế độ thuận ngược: có thể nhấn trực tiếp không cần phải tắt động cơ (không cần nhấn nút OFF) ).
Các nút số dùng để nạp tốc độ động cơ. Khi nạp tốc độ thì hiển thị lên 3led 7 đoạn.
Đồng thời khi động cơ đang hoạt động ổn định thì cũng hiển thị tốc độ lên 3 led.
Sau khi nạp tốc độ cho động cơ thì nhấn OK động cơ mới hoạt động.
(Mình có sơ đồ nguyên lý mà không biết làm sao post lên).

Falleaf:
http://dientuvietnam.net/forums/showthread.php?t=1419
Xem bài này để biết cách post hình lên diễn đàn

KDD04 02-04-2008 01:58 AM

Cảm ơn anh Falleaf nhiều.Mong anh chỉ em thêm

hezman1987 07-05-2009 11:12 PM

Hix đúng cái mình cần . lâu quá rồi ko biết bạn có thể share tài liệu nghiên cứu cho mình được ko . email :hezman1987@gmail.com
thx

thichtatca 23-06-2009 10:23 AM

bạn KDD04 và hezman1987 có bài này không cho mình tham khảo với cám ơn 2 bạn nhìu

Vo Hoang SOn 09-07-2009 03:46 PM

Hi Ban,

Minh thay trang web nay rat hay .Mach dieu khien DC servo motor .Rat tiec la minh chua thu lam no bao gio.Hy vong anh em dien dan lam duoc no!
http://elm-chan.org/works/smc/report_e.html

LeDuc 11-07-2009 06:38 PM

truoc day toi da lam xong cai driver cho dc servo , dieu khien vi tri hay toc do gi cung duoc ..
Ban can gi cu lien he voi toi : Thuyhu_letinh@yahoo.com

Vo Hoang SOn 13-07-2009 03:00 PM

Con mot trang web chi cach thuc hien lam mach DC servo cung rat hay Minh xin gioi thieu den cac Ban.neu Ban nao lam thanh cong thi chia se nhe
http://www.embeddedtronics.com/uhuservo.html
Rat tiec la minh phai mua source cua Tac gia.Con mach PCB thi no cho minh layout roi.

Chuc cac Ban thanh cong

loanmapdit 19-08-2009 11:04 AM

cảm ơn bạn .mình đang nghiên cứu về nó!

congson36 15-11-2010 11:16 AM

thanks các bác rất nhiều

dtbamboo36 21-11-2010 05:22 PM

điều khiển động cơ dc dung pic (băm xung)...!
 
2 Attachment(s)
xin các bác giúp đỡ....!
em đang làm đề tài vi xử lý dùng pic16f877a điều khiển động cơ dc như sau:
+dùng bàn phím ma trận để nhập giá trị để băm xung (từ 000-255).
+dùng lcd hiển thị giá trị từ bàn phím.
+sau khi nhập 3 số,so sánh vói giá trị 256 nếu nhỏ hơn thì xuất ra băm xung điều khiển động cơ;nếu vượt quá thì nhập lại.
em dùng ngôn ngữ probasic để viết,biên dịch thành công nhưng ko chạy đúng yêu cầu,em đã kiểm tra kỹ (nhưng ko pit tai em dốt hay sao nữa) mà ko tim được lỗi...!
mong các bác giúp đỡ..!thành thật cám ơn mọi người
dưới đây là code và mạch mô phỏng của em,xin các bác cho ý kiến...!
nếu chị nào có thể thành ý muốn giúp đỡ cũng được lun...!hi

anhtuhaui0512 10-10-2011 12:10 AM

thank anh nhieu a.

tungoctran 05-07-2013 12:04 AM

dc servo
 
chào các anh các chị
Em đang dùng 4 dc servo MG946R để điểu khiển cánh tay máy như clip bên dưới .còn mấy ngày nữa báo cáo rồi mà chưa chạy mong anh chị giúp em
em dung con 16f877a qua mach nap big kit2 va driver starter1 [mua ở thiên minh]
đây là đoạn code: tan so 16MHZ
#include <16f877A.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
#use rs232(baud=9600,Xmit=PIN_C6,rcv=PIN_C7)
#use rs232
#use msdelay(clock=160000000)
#INT_RA
#INT_RB;
#INT_RC;
#INT_RD;
char dem;
char value,value1,value2,value3;
#INT_TIMER0
Void set_servo() {
set_timer0(164);
dem++; //bien dem tang thêm 1 giá tri moi 0,1ms
if (dem >= 200) // 200*0,1=20ms (xung 50Hz)
{
dem=0; //
output_high(PIN_A1);
output_high(PIN_B1);
output_high(PIN_C1);
output_high(PIN_D1);
msdelay(5000);
}
if (dem >= value)output_LOW(PIN_A1);
if (dem >= value1)output_LOW(PIN_B1);
if (dem >= value2)output_LOW(PIN_C1);
if (dem >= value3)output_LOW(PIN_D1);
msdelay(5000);
}


void main()
{
set_tris_a(0);
OUTPUT_A(0xff);
set_tris_b(0x00);
OUTPUT_B(0xff;
set_tris_c(0x00);
OUTPUT_C(0xff);
set_tris_d(0x00);
OUTPUT_D(0xff);
enable_interrupts(int_timer0); //cho phép ng?t timer0
enable_interrupts(global);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); //chon t?n s? cho timer0 t? clock chính (16MHz)
set_timer0(156); //cài ??t timer ?? timer0 tràn m?i 0,1ms
while(true) //vòng lap
{
value=12;
value1=12;
value2=12;
value3=13;
}
}

mr.spkt 20-08-2013 03:27 PM

Trích:

Nguyên văn bởi tungoctran (Post 82406)
chào các anh các chị
Em đang dùng 4 dc servo MG946R để điểu khiển cánh tay máy như clip bên dưới .còn mấy ngày nữa báo cáo rồi mà chưa chạy mong anh chị giúp em
em dung con 16f877a qua mach nap big kit2 va driver starter1 [mua ở thiên minh]
đây là đoạn code: tan so 16MHZ
#include <16f877A.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
#use rs232(baud=9600,Xmit=PIN_C6,rcv=PIN_C7)
#use rs232
#use msdelay(clock=160000000)
#INT_RA
#INT_RB;
#INT_RC;
#INT_RD;
char dem;
char value,value1,value2,value3;
#INT_TIMER0
Void set_servo() {
set_timer0(164);
dem++; //bien dem tang thêm 1 giá tri moi 0,1ms
if (dem >= 200) // 200*0,1=20ms (xung 50Hz)
{
dem=0; //
output_high(PIN_A1);
output_high(PIN_B1);
output_high(PIN_C1);
output_high(PIN_D1);
msdelay(5000);
}
if (dem >= value)output_LOW(PIN_A1);
if (dem >= value1)output_LOW(PIN_B1);
if (dem >= value2)output_LOW(PIN_C1);
if (dem >= value3)output_LOW(PIN_D1);
msdelay(5000);
}


void main()
{
set_tris_a(0);
OUTPUT_A(0xff);
set_tris_b(0x00);
OUTPUT_B(0xff;
set_tris_c(0x00);
OUTPUT_C(0xff);
set_tris_d(0x00);
OUTPUT_D(0xff);
enable_interrupts(int_timer0); //cho phép ng?t timer0
enable_interrupts(global);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); //chon t?n s? cho timer0 t? clock chính (16MHz)
set_timer0(156); //cài ??t timer ?? timer0 tràn m?i 0,1ms
while(true) //vòng lap
{
value=12;
value1=12;
value2=12;
value3=13;
}
}

sao tớ ko thấy clip nào hết vậy?
http://www.youtube.com/watch?v=7-3hXQz1LCU


Múi giờ GMT. Hiện tại là 06:02 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam