Ừ, như vậy thì phải gắn công tắc on/off rồi. Mình đang tính cách dùng mạch để khi dưới 10,2V thì ngắt luôn nguồn cho bo EGS và 3525 chứ quên tắt công tắc thì cạn bình mất!
Thông báo
Collapse
No announcement yet.
TỰ LÀM 600W PURESINE INVERTER 12VDC - 220VAC (Mở lại chủ đề của thanhfdc bị xóa nhầm)
Collapse
This is a sticky topic.
X
X
-
Code:/***************************************************** This program was produced by the CodeWizardAVR V2.05.0 Professional Automatic Program Generator © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 8/31/2016 Author : NeVaDa Company : Comments: Chip type : ATmega8L Program type : Application AVR Core Clock frequency: 16.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega8.h> #include <delay.h> #define A PORTD.0 #define B PORTD.1 #define C PORTD.2 #define D PORTD.3 unsigned int sin_tab[100]={0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 11, 11, 12, 13, 13, 14, 15, 15, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, 24, 24, 24, 24, 23, 23, 23, 22, 22, 22, 21, 21, 20, 20, 19, 19, 18, 18, 17, 17, 16, 15,15, 14, 13, 13, 12, 11, 11, 10, 9, 8, 8, 7, 6, 5, 5, 4, 3, 2, 2, 1}; // Timer1 overflow interrupt service routine unsigned int i; interrupt [TIM1_OVF] void timer1_ovf_isr(void) { OCR1A= sin_tab[i]; i++; if (i==100) { i=0; A=~A;B=~B; C=~A;D=~B; } } void main(void) { PORTB=0x00; DDRB=0x02; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0xff; TCCR0=0x00; TCNT0=0x00; TCCR1A=0x82; TCCR1B=0x1B; // time 1 : 0,25Mhz TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x19; // gia tri TOP=25 OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x04; UCSRB=0x00; ACSR=0x80; SFIOR=0x00; ADCSRA=0x00; SPCR=0x00; TWCR=0x00; // Global enable interrupts #asm("sei") while (1) { } }
Comment
-
đây là code e viết tren codevision dùng time1 chế độ fast PWM top=ICR1 . trong 1/2 chu kỳ (10ms) chia 100 khoảng (mỗi khoảng 0,1ms) .Em sử dụng thạch anh 16M chia 64 =0.25Mhz , =>> cứ 4us thì TCNT1 tăng 1 vậy 0,1ms thì TCNt1 đếm 25 lần =>> set giá trị TOP : (ICR1L=0x19 )còn duty thì dùng cập nhật bảng sin
OCR1A= sin_tab[i]
không biết như vậy có đúng ko nhỉ ???? tín hiệu ABCD dùng để kết hợp với 74hc08 rồi đưa vào cầu H
Comment
-
Tăng 250 lần thì được 1ms vậy nếu chọn độ phân giải duty của pwm là 250 thì 1/2 chu kì sin chỉ tạo được có 10 mẫu (khoảng )là quá ít. => sin xấu. Nếu chia 133 khoảng thì được số bậc mẫu duty là 150 với thạch anhh 16Mhz/8 nhưng Fspwm lúc này được có 13.3khz. Nếu clock 16Mhz/8 thì ICR1=100 và có 200 khoảng (mẫu, nhưng có sự trùng lặp 2 lần 1 mẫu thực ra chỉ có 100 mẫu) và Fspwm = 20khz cũng tạm đc. Còn nếu muốn tăng thêm độ phân giải mà tần số cao thì e là phải tạo bảng sin 16bit. độ phân giải 86 bậc thì có 232 khoảng.Nguyên văn bởi quocviet253 Xem bài viếtđây là code e viết tren codevision dùng time1 chế độ fast PWM top=ICR1 . trong 1/2 chu kỳ (10ms) chia 100 khoảng (mỗi khoảng 0,1ms) .Em sử dụng thạch anh 16M chia 64 =0.25Mhz , =>> cứ 4us thì TCNT1 tăng 1 vậy 0,1ms thì TCNt1 đếm 25 lần =>> set giá trị TOP : (ICR1L=0x19 )còn duty thì dùng cập nhật bảng sin
OCR1A= sin_tab[i]
không biết như vậy có đúng ko nhỉ ???? tín hiệu ABCD dùng để kết hợp với 74hc08 rồi đưa vào cầu H
Comment
-
Hnay cúp điện e lấy cái inveter ra xài quạt máy, wên dặn bà chị nên bả mở máy nước nóng thì cái quạt máy quay rề rề ko nổi đồng thời e nghe cái inveter nó kêu è...è. Hoảng wá lại tắt kịp thời.
E ko hỉu sao con Rshunt e thiết kế cho 600w, đág lý mở máy nước nóng nó phải báo ngắt wá dòng nhưng tại sao nó ko ngắt mà nó kêu è...è và tuột áp ra ạ. E xem lại board EGS thì thấy nó thiếu con R27 như board của bác dinhthuong80, vậy đó có phải là nguyên nhân?. Các bác bắt mạch giúp e với
Comment
-
Vậy mới lạ chứ bác, hay là do board của e ko có con R27, bác xem giúp e board của bác có R27 ko ạ.Nguyên văn bởi Nguyenson318 Xem bài viếtNếu quá tải là EGS ngắt ngay chứ bạn.
Comment
-
Hình như bạn nhầm rồi.bạn đấy chia 100 khoảng mà.và chu kỳ pwm bạn đấy chọn là đúng bằng 1 khoảng luôn nên chỉ cần dùng 1 timer 1 để vừa tạo pwm vừa cập nhật bảng sin.Nguyên văn bởi TP_Electro Xem bài viếtTăng 250 lần thì được 1ms vậy nếu chọn độ phân giải duty của pwm là 250 thì 1/2 chu kì sin chỉ tạo được có 10 mẫu (khoảng )là quá ít. => sin xấu. Nếu chia 133 khoảng thì được số bậc mẫu duty là 150 với thạch anhh 16Mhz/8 nhưng Fspwm lúc này được có 13.3khz. Nếu clock 16Mhz/8 thì ICR1=100 và có 200 khoảng (mẫu, nhưng có sự trùng lặp 2 lần 1 mẫu thực ra chỉ có 100 mẫu) và Fspwm = 20khz cũng tạm đc. Còn nếu muốn tăng thêm độ phân giải mà tần số cao thì e là phải tạo bảng sin 16bit. độ phân giải 86 bậc thì có 232 khoảng.
Còn code của mình mới là chia 250 bậc sin.tuy nhiên mình chọn chu kỳ pwm lớn hơn mỗi khoảng.vì vậy trong 1 khoảng thì pwm nhiều lần nên tần số song mang của mình cũng cao hơn.đến tận 62khz.trước mình dùng bo egs cuộn lọc kêu e e nhưng dùng avr lập trình với tần số vậy thì cuộn lọc k kêu,fet mình chưa tản nhiệt chạy bóng 75w thử thì chỉ hơi ấm ấm
Còn code mình thì minhfvdungf avrstudio7.
Comment
-
Hì bạn cho mình hỏi ngu cái là lõi pssu là lõi gì nhỉ.mình cũng chuẩn bị làm lại phần dc dc vì hiện tại đang dùng dc dc của bo santak.khi có tại nó sụt xuống còn 290v kể cả thay trở hồi tiếp.áp nó chỉ co khi không tải.cứ có tải là về 290v mới khó chịu chứNguyên văn bởi dinhthuong80 Xem bài viếtĐây là thành quả lao động nè, sin ra không được 100% nhưng đảm bảo hơn điện lưới rồi, cảm giác tự chế thật thú vị biết bao! Đúng là EGS cũng không đến nỗi khó chịu như mình nghĩ.
BAX mình dùng lõi EỊ33 của PSU, sơ 3 vòng, thứ 92vòng, chỉnh áp ra 360V, dòng không tải 0.2A, chạy tải 50W fet 3205 tản nhiệt 25x22x12 ấm ấm, hiệu suất chỉ đạt >82% chắc cũng ổn vì mới tải 50W nhỉ?
Có khúc mắc là khi áp 10.2V ngắt mạch rồi sau đó áp bình tăng lên mà đợi hoài không thấy mạch DC-DC không hoạt động, phải ngắt nguồn cấp lại mới chạy tiếp, như vậy là bình thường phải không các bạn?
Comment
-
Xin lỗi bác moto con R27 bỏ trống, trên datasheet của nó cũng không có trị số (để phòng). Còn bác dinhthuong80 hôm trước chủ yếu là hỏi về con C21, vì trên bo của bác ấy đang thiếu con này.Nguyên văn bởi moto Xem bài viếtVậy chắc là nó wá, để mai rãnh e hàn xem sao, nó làm e một vố hết hồn. Lấy về e đống vô chứ cũng ko xem lại sơ đồ xem thiếu đủ ra sao nửa. Hnay mới xem kỹ lại thì bị thiếu, nhưng board của bác giá trị bao nhiu ạ.
Comment
-
Không nhầm đâu bạn. Mình cũng nói là chỉ sử dụng 1 timer và ngắt tràn TOP của nó để update duty. Bạn ấy chia 100 khoảng trong 10ms tức mỗi khoảng chỉ có 0,1ms = 100us <=> Fspwm = 10khz. mà clock timer chọn là chia 16Mhz/64 = 0,25Mhz => Ttimer clock = 4us. Vậy cứ 4us là tăng được 1 giá trị mà mỗi khoảng chỉ có 100us nên dutyMAX = 100/4 = 25. Vậy nạp vào ICR1 là 25 và Fspwm chỉ được có 10khz. Độ phân giải pwm chỉ có 25 cho biên áp là quá thấp.Nguyên văn bởi developerv Xem bài viết
Hình như bạn nhầm rồi.bạn đấy chia 100 khoảng mà.và chu kỳ pwm bạn đấy chọn là đúng bằng 1 khoảng luôn nên chỉ cần dùng 1 timer 1 để vừa tạo pwm vừa cập nhật bảng sin.
Còn code của mình mới là chia 250 bậc sin.tuy nhiên mình chọn chu kỳ pwm lớn hơn mỗi khoảng.vì vậy trong 1 khoảng thì pwm nhiều lần nên tần số song mang của mình cũng cao hơn.đến tận 62khz.trước mình dùng bo egs cuộn lọc kêu e e nhưng dùng avr lập trình với tần số vậy thì cuộn lọc k kêu,fet mình chưa tản nhiệt chạy bóng 75w thử thì chỉ hơi ấm ấm
Còn code mình thì minhfvdungf avrstudio7.
Comment
-
Độ phân giải pwm chỉ có 25 cho biên áp là quá thấp.
bạn TP_Electro cái câu in đậm này mình thấy thật sự là k có ý nghĩa. timer nó tăng đến 25 thì nó xảy ra ngắt tràn timer và cập nhật giá trị bảng sin mới cho pwm. cho dù cái này có là 250 hay 1000 cũng vẫn như nhau. bởi vì ở đây bạn đấy chọn timer để ngắt cũng là tạo pwm luôn nên nếu muốn tăng tần số thì tăng khoảng chia. chứ cái con số 25 ở đây k có ý nghĩa gì cả. cái chính ảnh hưởng chỉ là tần số pwm và số khoảng chia. còn cái 25 này là bạn đấy chọn để thời gian ngắt timer nó bằng đúng 1 khoảng sin đã chia để cập nhật pwm. nếu ở đây bạn chọn click timer chia 2 chẳng hạn thì con số 25 sẽ phải là 50 và mọi thứ k hề thay đổi. tần số pwm vẫn vậy. giá trị sin vẫn là 100 khoảng. nên mình nói cái số 25 này chỉ là tính toán sao cho nó khớp thời gian cập nhật. chứ k có ý nghĩa gì khác.
mình nghĩ bạn đang hiểu nhầm còn số này với cái gì đó. ở đây nếu nói rõ ràng thì chia nửa chu kỳ sin cho 100 như vậy là 0.1ms 1 khoảng. và theo như code này thì trong 0.1ms đó chân pwm chỉ on và off đúng 1 lần vừa khít khoảng 0.1ms đó(chu kỳ pwm =0.1ms). và sau mỗi 0.1ms thì phải cập nhật giá trị mới cho pwm khớp với bảng sin. và cái 25 này là để tính thời gian vừa khít 0.1ms để thay đổi giá trị pwm chứ ngoài ra k có ý gì khác nghĩa khác,nếu mình chọn chia tần timer khác đi thì con số 25 này nó khác đi. nhưng nó vẫn phải tính đến 0.1ms để cập nhật pwm. và đếm bao nhiêu k quan trọng quan trọng là đếm đủ đến 0,1ms.
Comment
Bài viết mới nhất
Collapse
-
bởi FotiniChào mọi người.
Cấu trúc khung giàn của tôi sử dụng một động cơ servo tích hợp trên mỗi trục (https://www.oyostepper.es/category-8...integrado.html), với một dây nối đất chung.
Việc kích hoạt từng trục riêng lẻ hoạt động tốt, nhưng...-
Channel: Điện tử dành cho người mới bắt đầu
18-06-2026, 14:03 -
-
Trả lời cho Cấu hình chiến game "quốc dân" cho nền tảng AM5: Lựa chọn tối ưu ngân sách với Ryzen 5 7500Fbởi kumarbrMình đồng ý với hướng build AM5 bằng 7500F, nhưng nếu có thể cố thêm ngân sách thì nên lên RX 7600 ngay từ đầu. 4GB VRAM của RX 6500 XT bắt đầu khá chật với nhiều game mới, còn RX 7600 sẽ dùng thoải mái hơn trong vài năm tới.
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 15:49 -
-
bởi theidiotcatTrong thời buổi vật giá leo thang, việc sắm một bộ máy tính chơi game đáp ứng đủ tiêu chí "ngon, bổ, rẻ" là ưu tiên hàng đầu của nhiều bạn trẻ. Lúc này, combo sử dụng vi xử lý AMD Ryzen 5 7500F kết hợp cùng card màn hình Radeon...
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 10:16 -
-
bởi theidiotcatAMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:21 -
-
bởi theidiotcatBộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:09 -
-
bởi theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -

Comment