PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 29-07-2011, 01:19 PM   #1
pstin
Đệ tử 7 túi
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 190
:
Do cosphi lưới điện dùng 74ls86

Lúc trước bạn ocean_86 có hỏi, tui có ý kiến như sau:
Nếu bạn tạo được tín hiệu xung vuông áp và dòng có "bề rộng" như nhau như hình bên dưới, thì giải thuật tính:
theo hình: dòng trễ t0 so với tín hiệu áp.
u=u0*sin(wt); i=i0*sin(w(t-t0). Góc lệch pha wt0.
cosphi=cos(wt0)=cos(2*pi*f*t0). w radian/s, do đó góc tính theo radian, tính theo độ là trớt wớt.
Dùng "mọi chiêu" để đo được t0 là ok thui!!!!!!!!!!!.
Tui thấy các cao thủ hay dùng ADE7753 hay hơn!!!!!!!!.
Để các cao thủ cho ý kiến thêm vậy!!!!!!!
File Kèm Theo
File Type: pdf SO PHA.pdf (157.2 KB, 111 lần tải)
File Type: pdf ADE7753.pdf (1.44 MB, 128 lần tải)
pstin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-07-2011, 02:24 AM   #2
ocean_86
Đệ tử 1 túi
 
Tham gia ngày: Mar 2010
Bài gửi: 12
:
cám ơn picpen
mình đã so pha như vậy rồi đó còn đây là chương trình của mình, mình viết mà nó không chạy(không đo được khoảng thời gian lệch pha đó)
#INCLUDE <16F877A.h>
//#include <math.h>
#DEVICE *=16 ADC = 10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
#USE DELAY (CLOCK = 12000000)
#INCLUDE <lcd_lib_4bit.C>
//================================================== ============================
// DINH NGHIA THANH GHI, PORT, CAC CHAN
#byte PORTA = 0x05
#byte PORTB = 0x06
#byte PORTC = 0x07
#byte PORTD = 0x08
#byte PORTE = 0x09

#byte TRISA = 0x85
#byte TRISB = 0x86
#byte TRISC = 0x87
#byte TRISD = 0x88
#byte TRISE = 0x89
#bit RB7 = 0X06.7
#bit RB6 = 0X06.6
#bit RB5 = 0X06.5
#bit RB4 = 0X06.4

char BANG[90]={0x01,0x03,0x05,0x06,0x08,0x0A,0x0C,0x0D,0x0F,
0x11,0x13,0x14,0x16,0x18,0x19,0x1B,0x1D,0x1E,0x20,
0x22,0x23,0x25,0x27,0x28,0x2A,0x2B,0X2D,0x2E,0x30,
0x32,0x33,0X34,0x36,0x37,0x39,0x3A,0x3C,0x3D,0x3E,
0x40,0x41,0x42,0x44,0x45,0x46,0x47,0x49,0x4A,0x4B,
0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,
0x56,0x57,0x58,0x59,0x59,0x5A,0x5B,0x5C,0x5C,0x5D,
0x5D,0x5E,0x5F,0x5F,0x60,0x60,0x61,0x61,0x61,0x62,
0x62,0x62,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, 0x64};
int16 temp2,k;
int16 a1,b1,c1, state;
#int_timer1
#int_ext
void ngat()
{
if(k=0)
{
set_timer1 (0);
ext_int_edge(l_to_h);
k = 1;

}
else
{
temp2=get_timer1();
ext_int_edge(h_to_l);
k = 0;
state = 1;
}

}
void main()
{
k=0;
temp2 = 0;
state = 0;
output_bit (pin_D2, 0); // DK RS
output_bit (pin_D3, 1); // DK CS
enable_interrupts(global);
enable_interrupts(int_ext);
ext_int_edge (l_to_h);
enable_interrupts(int_timer1);
setup_timer_1(t1_internal|t1_div_by_1);
while(true);
{
if(state=1)
{
temp2 = get_timer1();
temp2=bang[temp2-90];
state = 0;
a1=temp2/100;
temp2=temp2%100;
b1=temp2/10;
c1=temp2%10;
}

}
lcd_putcmd(0xc0);
printf(lcd_putchar,"COS = ");
lcd_putchar(a1 + 0x30);
printf(lcd_putchar,".");
lcd_putchar(b1 + 0x30);
lcd_putchar(c1 + 0x30);
}
rất mong các cao thủ giúp đỡ em.
thanks!!!
ocean_86 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam