cho mình hỏi làm sao để tăng giảm độ rộng xung để điều khiển động cơ quay nhanh hay chậm
Thông báo
Collapse
No announcement yet.
tăng giảm độ rộng xung
Collapse
X
-
Nguyên văn bởi agnort Xem bài viếtcho mình hỏi làm sao để tăng giảm độ rộng xung để điều khiển động cơ quay nhanh hay chậm
Comment
-
đơn giản lắm mà.
Với 8051 : nếu không cần chính xác, bạn có thể tự tạo một hàm trễ, cách sử dụng : lăp : p1.1 =1; delay1; p1.1=0; delay2 ---> ok. Cần chính xác thì dùng timer để tạo thời gian trễ, cứ nghịch rùi sẽ thấy.
pic,avr,psoc,... thì có sẵn bộ pwm bên trong, bạn chỉ việc thay đổi thời gian độ rộng xung là ok luôn (chi tiết nên xem trong datasheet nhé)"Tiền có thể mua được đồng hồ, nhưng không mua được thời gian. Vì vậy chúng ta hãy biết quí trọng thời gian hơn"
Comment
-
Cách hay nhất là bạn sử dụng Timer,
đầu tiên bạn xác lập khoảng timer xảy ra ngắt...
Giả sử có 100 ngắt liên tiếp ( tương ứng 100% trên hình vẽ) của timer. Khi đó để điều khiển tốc độ motor ta cần điều chỉnh duty cycle ( %)
Khi xảy ra ngắt chương trình phục vụ ngắt timer sẽ thực hiện đếm từ 0-> 100 ... đồng thời đoạn chương trình này củng thực hiện so sánh giá trị biến đếm với giá trị Duty_cycle nhận được từ chương trình chính hoặc do mình định trước, để thực hiện chuyển mức điện áp
VD duty_cycle =70 (%) -> sau 70 lần ngắt biến đếm = duty_cycle -> đổi trạng thái chân ra về mức thấp (0) sau đó khi biến đếm đến 100 lại chuyển trạng thái lối ra về mức cao ....
Comment
-
Anh ơi cho em hỏi một chút. Em thấy có hàm băm xung như sau:
void bamxung(unsigned char dutycycle ,unsigned char motorselect)
Khi gọi hàm thì em gọi :
bamxung(200,motor_right)
ở trên thì 200 là cái gì hả anh?
Và làm sao để tính được tần số của xung? Mong anh chỉ rõ cho em. Cảm ơn anh nhiều!
Comment
-
Anh ơi cho em hỏi một chút. Em thấy có hàm băm xung như sau:
void bamxung(unsigned char dutycycle ,unsigned char motorselect)
Khi gọi hàm thì em gọi :
bamxung(200,motor_right)
ở trên thì 200 là cái gì hả anh?
Và làm sao để tính được tần số của xung? Mong anh chỉ rõ cho em. Cảm ơn anh nhiều!
theo mình biết thì cái dutycycle chính là độ rộng xung của bạn đó (bạn nhập sai roài 200% ah .... hic hic), còn cái motoselect chính là động cơ mình chọn ngay trong ví dụ của em thì đó là Righ- motor.
Ok
Comment
-
Để băm xung cần :
- Đưa ra tần số băm xung mong muốn : ví dụng bạn muốn băm xung tần số là f = 5kHz chẳng hạn,
- Giả sử ta sử dụng timer, ta cần tính được thời gian ngắt của timer. Thời gian ngắt tính thế nào? Xuất phát từ tần số xung mong muốn, có thời gian xung là T=1/f ; thời gian ngắt tính tương đối chính xác là T/100. Với 8051 là ta đã xác định được giá trị cần nạp cho thanh ghi timer
- Trong chương trình ngắt timer ta cần làm gì ? ngoài các phần lằng nhằng khác, công việc chính sẽ là tăng 1 cái biến đếm (giả sử count), sau đókiểm tra biến đếm nếu đếm đến hết (100) thì reset lại biến đếm, tiếp sau đó kiểm tra, nếu biến đếm nhỏ hơn một số (số này chính là độ rộng xung mong muốn- nên để là một biến để có thể nhập từ ngoài- phục vụ cho việc điều chỉnh tự động- giả sử biến là duty) thì sẽ đưa chân băm xung lên cao, ngoài khoảng đó thì đưa xuống mức thấp,
đây là một VD một đoạn trong ngắt timer :
// giả sử ban đầu cho count=0;
.
.
.
.
count++;
if (count==100) count=0;
if (count<duty) P1^1=1;
else P1^1=0;
.
.
.
}
Khi đó bạn có thể viết một hàm băm xung như bạn:
void bamxung(unsigned char dutycycle)
{
duty=dutycycle; // chu y bien duty la bien toan cuc
}
Chúc thành công!Last edited by Innovated; 26-09-2007, 17:33."Tiền có thể mua được đồng hồ, nhưng không mua được thời gian. Vì vậy chúng ta hãy biết quí trọng thời gian hơn"
Comment
-
Nguyên văn bởi hongson23_6 Xem bài viếtcho mình hỏi có ai biết chương trình điểu chỉnh độ rộng xug PWM bằng chương trình assembly cho con 89s ko vậy..mình cảm ơn much...!!!bạn nên dùng con 89v51 đi nó tuy mắt nhưng khó die lắm. ah mà quên con 89v51 có 4 chân điều xung rồi độ phân giải là 8 bit cứ khai báo là xài thôi còn muốn nân độ phân giải thì chỉ có cách dùng timer 16 bit viết lệnh cho nó là được thôi
Last edited by 89v51; 28-03-2010, 15:29.WHO AM I ??????????????
Comment
-
Nguyên văn bởi hongson23_6 Xem bài viếtcho mình hỏi có ai biết chương trình điểu chỉnh độ rộng xug PWM bằng chương trình assembly cho con 89s ko vậy..mình cảm ơn much...!!!
#include "REG51M.h"
#include <stdio.h>
#include <math.h>
#include <string.h>
bit nhan;
int dem,index;
sbit PWM=P1^3;
char st_nhan[1];
char ss,phantram;
void delay(int timer)
{ while (timer--)
{ unsigned char j=125;
while (j--);
};
}
void ngatnoitiep() interrupt 4
{ if (RI==1)
{
ss=SBUF;
if (ss==':')index=0;
if (ss=='#') { st_nhan[index++]=ss;
st_nhan[index]='\0';
index=0;
nhan=1;
}
else st_nhan[index++]=ss;
RI=0;TI=1;
}
}
void ngat_timer0() interrupt 1
{ TR0=0;
TF0=0;
dem++;
if(dem>=phantram) {PWM=0;}
else {PWM=1;}
if (dem==99) dem=0;
TR0=1;
}
void init()
{ //CMOD=0x00;
//CR=1;
//CCAPM4=0x42;
////////////////
EA=1;// cho phep dung ngat
ES=1;//cho fep ngat noi tiep
TMOD|=0x02;//timer0 mode 2 reload
//thiet lap tan so baut
SCON=0x50;//unrat che do 8 bit
TMOD|=0x20;//timer 1 che do 2
TH1=0xFD;//chon toc do baut 9600
TR1=1; //cho phep timer 1
EA=1;//cho phep cac ngat
ET0=1;//cho phep ngat timer0
TR0=1;
}
main()
{ //int i;
init();
while(1)
{ //for(i=255;i>0;i--)
//{CCAP4H =st_nhan[0];delay(20);}
if (nhan==1)
{nhan=0;phantram=st_nhan[1];TH0=(- st_nhan[2]);//TL0=(- st_nhan[2]);
}
}
}WHO AM I ??????????????
Comment
-
các bác ơi e dang ngiên cứu về điều khiển động cơ DC dùng 89c51, điều khiển động cơ chạy ngược xuôi, nhanh chậm mà chưa biết viết thế nào bác nào biết thì viết dup e cái code bằng hợp ngử với nhé vì e mới vào nghề nên đang gà lắm mong các bác giúp đở em cảm ơn các bác nhiều.\
các bác gửi cho em qua mail này nhé. \
vvlinhk03dta2@gmail.com or ngonsongdaiduong_1989@yahoo.com.vn
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 14:40 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
-
Channel: Điện tử công suất
Hôm qua, 06:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Tôi biết và tôi biết.
Sẽ bắt đầu với cái Sồn La, rồi mấy mạch nguồn vớ vỉn.... Rồi sẽ đèn led...
Cuộc đời là những chuyến xe, nên sẽ có:
Xe đạp điện, xe máy điện, xe ô tô điện, xe cấp cứu điện, xe tang điện.
Rồi xem.-
Channel: Điện tử công suất
Hôm qua, 01:38 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vấn đề là thu ánh sáng rồi phát ra ánh sáng cơ. Hồi mẫu giáo cô bảo đừng làm, lão không nhớ à?
Tốt nhất im mồm....-
Channel: Điện tử công suất
Hôm qua, 01:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietBài học kiểu trực tuyến dù là loại đơn giản bậc nhất cũng vẫn cần chú tâm. Chỉ bật tai nghe lên thì không có loại nào thấm nổi đâu. Cách hay hơn, dễ hơn là kiếm phim tiếng Anh nào đó xem, ban đầu bật phụ đề tiếng Việt, nghe và...
-
Channel: Tâm tình dân kỹ thuật
14-02-2025, 16:15 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanỞ đtvn này mới biết đến 2 loại mạch
1 step down
2 step up
Bây giờ anh lưu vong làm thuê bên nước lạ còn làm ra cái mach vừa up vùa dow luôn.
Tính chất là:
1 Đầu vào bằn ra cho nối thẳng
2 Đầu vào cao hơn...-
Channel: Điện tử công suất
14-02-2025, 00:51 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanHa ha !
Thay đổi cách nghĩ thì sẽ nghĩ ra.
.
.
.
Một thứ cần kiểm soát dòng + nhiệt + công suất tiêu tán. Nhưng lại dùng tư duy ổn áp. Làm sao mà giải quyết được.
Nó là mạch ổn dòng.
Vì thế các anh nước lạ không thèm quan tâm là phải....-
Channel: Điện tử công suất
14-02-2025, 00:42 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Vì cứ phải chỉnh sửa cho mỗi dải điện áp, quên chỉnh thì hư chíp phải bảo hành nên em thấy bất tiện, mới cần cái mạch 1 dải áp cao dùng cho tất cả loại đèn đó bác!...
-
Channel: Điện tử công suất
13-02-2025, 17:02 -
-
Trả lời cho Tiếng Anh cho người Việtbởi hankhungdtMình thỉnh thoảng cũng làm việc với người nước ngoài nói tiếng Anh thì toàn ghép nhặt từ, cộng với quơ tay quơ chân để diễn tả, hix. Nỗi khổ là không biết cách để mô tả sự việc. Tôi muốn tìm các bài giảng tiếng anh nào phù hợp...
-
Channel: Tâm tình dân kỹ thuật
13-02-2025, 08:43 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi ti500Chúc mừng bác đã chỉnh sửa thành công, nhưng theo em thì video hơi rối nếu bác muốn gửi cho bên supplier xem.
Nếu là em thì em chỉ cần nối dây để hiển thị liên tục điện áp ở ngõ ra là 220Vdc trước khi gắn LED, kế đến là cắm...-
Channel: Điện tử công suất
13-02-2025, 07:39 -
Comment