PDA

View Full Version : Điều chỉnh độ rộng xung


JVeron
22-03-2007, 11:24 PM
Chào các bác!
Hiện giờ e đang phai làm báo cáo môn học về đề tài ĐIỀU CHỈNH ĐỘ RỘNG XUNG BẰNG VI ĐIỀU KHIỂN. Bác nào đã từng nghiên cứu vần đề này có thể chỉ dẫn cho e một chút được không?
Cảm ơn các bác rất nhiều!

namqn
23-03-2007, 01:39 AM
Chào các bác!
Hiện giờ e đang phai làm báo cáo môn học về đề tài ĐIỀU CHỈNH ĐỘ RỘNG XUNG BẰNG VI ĐIỀU KHIỂN. Bác nào đã từng nghiên cứu vần đề này có thể chỉ dẫn cho e một chút được không?
Cảm ơn các bác rất nhiều!
Bạn phải cho biết yêu cầu của đề tài đã chứ. Có khi chỉ cần học cách sử dụng module CCP (hay ECCP) của PIC mà thôi.

Thân,

JVeron
23-03-2007, 10:08 PM
Yêu cầu của e là điều chỉnh độ rộng xung để thay đổi vận tốc của động cơ (trong để tài của e là động cơ của bơm cánh dẫn)
Cảm ơn các trưởng lão namqn! Rất mong nhận được sự giúp đỡ của bạn!

namqn
23-03-2007, 11:06 PM
Yêu cầu của e là điều chỉnh độ rộng xung để thay đổi vận tốc của động cơ (trong để tài của e là động cơ của bơm cánh dẫn)
Cảm ơn các trưởng lão namqn! Rất mong nhận được sự giúp đỡ của bạn!
Với động cơ thì tần số điều chế thường quanh quẩn 20 kHz. Bây giờ bạn cho biết bạn dùng loại bộ điều khiển nào để điều chỉnh vận tốc của động cơ, bạn có đo vận tốc chứ? Từ ngõ ra của bộ điều chế độ rộng xung bạn làm thế nào để điều chỉnh vận tốc của động cơ? Động cơ đó có công suất khoảng bao nhiêu?

Thân,

linhnc308
27-03-2007, 07:14 PM
bạn cần nêu rõ bộ DK của bận mức độ ra sao, DK có phản hồi hay DK mù. Bạn cứ nêu cụ thể và khó khăn gặp phải. Vấn đề của bạn chắc chắn sẽ dc giải quyết.

binhdt04
17-08-2007, 10:33 PM
mình củng có đề tài như thế nhưng khác ở chổ là mình dùng sóng vô tuyến dể diều chỉnh tốc độ củ hai dộng cơ cùng một lúc chỉ dùng bốn kênh diều khiển và có đảo chiều dộng cơ nửa mình dùng pic 16f877a không biết hướng giải quyết các anh chỉ giúp em

binhdt04
17-08-2007, 10:35 PM
tốc độ dộng co của mình quay tối đa là 20000vòng/phut

uydanh
04-10-2007, 06:35 PM
Em cũng có đề tài dùng pic để điều khiển tốc độ động cơ DC,nhưng chưa biết bắt đầu như thế nào. Rất mong được mọi người chỉ dẫn.
Em muốn đề tài của mình như thế này :dùng một keypad ngay trên bo mạch,cài đặt tốc độ động cơ DC, nhấn phím khởi động thì động cơ hoạt động và quay đến tốc độ mong muốn.
Đây là lần đầu tiên em làm một sản phẩm thực tế sau một thời gian dài học lý thuyết nên chưa biết bắt đầu như thế nào. Em định dùng pic16f877a.Rất mong được sự hướng dẫn tận tình của mọi người trên diễn đàn.

uydanh
05-10-2007, 10:15 PM
Trời! Có anh nào làm rồi thì giúp đàn em chut xíu đi!
Chỉ cần các anh chỉ cái hướng đi,hướng thực hiện để em có hướng suy nghĩ đề tài!
Cảm ơn mọi người!

uydanh
06-10-2007, 06:06 PM
Quá hay!
Các anh có tai liệu nào về điều khiển động cơ DC share cho em nhé!
Em muốn dùng một keypad để nhập tốc độ vào thể hiện qua 4 led 7 đoạn.Dùng một nút start,nhấn vào thì động cơ quay đến tốc độ đó ( tất nhiên là có vọt lố, sai số và việc nhập tốc độ có thể thực hiện bất cứ lúc nào).Với suy nghĩ như vậy, để thực hiện được em có phải dùng cái giải thuật gì đó gọi là điều khiển bám theo không? Bới vì nếu phải "bám theo" thì trình độ của em làm chưa nổi.Rất cảm ơn các anh.

ntkha1985
01-11-2007, 07:42 PM
mình thấy trong ccsc có file example về pwm bạn coi thử coi dùng đc kô

manttforever
07-03-2008, 03:13 PM
các bác ơi! Bác nào có tài liệu về phương pháp điều chế độ rộng xung PMW thì post lên cho tôi với. Cảm ơn các bác trước nhé!
email: doanvanmank40tdh4@gmail.com

anh_gioi
09-03-2008, 02:03 PM
ví dụ 1 đoạn mã có pwm.các anh em thao khao ...(^+^)

#include "C:\Documents and Settings\anh gioi\Desktop\dieu xung\12f683\ex06.h"

void main()
{
int8 i;



setup_timer_2 ( T2_DIV_BY_4, 0xc0, 2);
setup_ccp1(ccp_pwm);

while(true){
if ( (input(PIN_A0) == 0) & (input(PIN_A1) == 0) )
{
setup_ccp1(CCP_OFF);
}

if ( (input(PIN_A0) == 0) & (input(PIN_A1) == 1) )
{
setup_ccp1(CCP_PWM);
set_pwm1_duty(500);
}

if ( (input(PIN_A0) == 1) & (input(PIN_A1) == 0) ){
setup_ccp1(CCP_PWM);
set_pwm1_duty(1020);
}
}
}


đây là dùng pic 12F683.rất đơn giản

dangtq84
08-05-2008, 11:53 PM
Chào anh namqn. Em cũng đang làm đề tài về điều khiển tốc độ động cơ DC bằng cách điều xung dùng PIC6F876A ghép với con IC điều khiển động cơ L298N.
Với con PIC6F876A thì : tín hiệu enable cho con L298 là chân RC0, động cơ quay thuận dùng chân RC1, và quay ngược là RC2.
Còn con L298 thì : enable dùng chân 6, động cơ quay thuận dùng chân 5 vf động cơ quay ngược dùng chân 7. Em viết chương trinh như sau mà không thấy tốc độ động cơ thay đổi:
#include <16F876A.h>
#fuses HS,NOPROTECT,NOWDT,BROWNOUT,PUT,NOLVP
#use delay(clock=20000000)

#define EN2 PIN_B0
#define D21 PIN_B1
#define D22 PIN_B2

void main()
{
static int value=11;
SETUP_CCP1(CCP_PWM);
setup_timer_2(T2_DIV_BY_1, 127, 1);

set_tris_c(0x00);
//output_c(0x00);

while(1)
{
set_pwm1_duty(value);

output_bit(EN2,1);
output_bit(D21,1);
output_bit(D22,0);
}

}

Anh giúp em với, sắp bảo vệ đồ án rôi mà không chay được, đang lụt rồi...

namqn
09-05-2008, 12:24 AM
Code của bạn dùng các chân RB0, RB1, và RB2 chứ không phải các chân RC0, RC1, và RC2 như bạn đã mô tả.

Bạn chưa cho biết phần cứng của bạn kết nối ra sao, đọc vào tôi có cảm giác lộn xộn thế nào đó.

Trước khi viết code, bạn phải hiểu được nguyên tắc điều khiển và đổi chiều cho động cơ khi dùng L298. L298 gồm 2 mạch cầu H, giả sử bạn dùng một mạch cầu H thì bạn có 2 tín hiệu điều khiển cho 2 nửa cầu. Nguyên tắc điều khiển sẽ là: đặt logic cố định cho 1 nửa cầu và điều rộng xung cho nửa cầu kia. Khi đổi chiều thì đổi vai trò của hai nửa cầu.

Nếu bạn chỉ dùng ngõ ra của CCP1 để điều rộng xung thì bạn phải có mạch logic để phân phối tín hiệu PWM đến nửa cầu cần thiết. Bạn chưa cho biết những phần này thì code của bạn vô nghĩa.

Thân,

dangtq84
09-05-2008, 10:29 AM
Em có gửi file đỉnh kèm.
Hai con slave pic điều khiển 4 động cơ, mỗi con điều khiển 2 động cơ (có đảo chiều). Anh xem có cách nào không vậy.

1234567as
22-05-2009, 11:10 PM
úi các anh ơi!
em không hiểu nếu mà dùng PWM điều chỉnh độ rộng xung mà T(chu kì xung) chỉ thay đổi t(mức 0) thì tần số xung ra có thay đổi đâu nhỉ?
mong các bác chỉ giáo!

quocchinh
24-05-2009, 07:01 PM
úi các anh ơi!
em không hiểu nếu mà dùng PWM điều chỉnh độ rộng xung mà T(chu kì xung) chỉ thay đổi t(mức 0) thì tần số xung ra có thay đổi đâu nhỉ?
mong các bác chỉ giáo!
Mình chưa hiểu câu hỏi của bạn,bạn muốn nói T không thay đổi phải không?Như bạn đã biết thì xung chỉ có 0 và 1 thôi.Việc này bạn đọc kỹ thuật xung là biết thôi.
Ở đây là thay đổi thời gian chuyển mức trong 1 chu kì : Nếu bạn cho trong một chu kì (giả sử ở đây là T =1s) ở mức 1 trong 0.5 s và mức 0 trong 0.5 s thì điều chế xung là 50% , tiếp theo sau đó bạn cho ở mức 1 trong 0.6 s và mức 0 trong 0.4 s thì xung là bao nhiêu bạn tính được chứ. Như vậy theo bạn thì đầu ra thay đổi cái gì?Câu trả lời là ở bạn.

Chúc vui