![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 2 túi
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
: |
![]() Bảng Sin được nêu trong bài này là làm thế nào mà có được vậy các bạn, ai biết ko chỉ giúp mình với, hay là chỉ cóp rồi sửa lại cái có sẵn. Ví dụ như ở trang 1, trong chuơng trình CCS có bảng sin 800 phần tử, vậy cách tìm ra chúng theo đúng yêu cầu, chẳng hạn với tuơng ứng tần số fx nào đó của sóng sin, thì thế nào? Mong các cao thủ chỉ giáo. Thanks. // ý mình là cách tìm ra các giá trị của bảng đó, 1 cách chính xác (vì nếu ko chính xác thì e...).
thay đổi nội dung bởi: truongqt, 21-04-2009 lúc 11:41 PM. |
![]() |
![]() |
![]() |
#2 | |
Trưởng lão PIC bang
|
Trích:
- Chọn giá trị đỉnh, ví dụ là 400, khi đó bạn sẽ cộng thêm offset bằng giá trị đỉnh để các giá trị trong bảng luôn luôn không âm. - Chọn số phần tử trong bảng, ví dụ là 1000 - Trong bảng tính, tạo ra một cột với các giá trị chỉ số chạy từ 0 đến 999 (1000 hàng, tương ứng với 1000 phần tử). - Ở cột bên cạnh, nhập công thức tính giá trị = 400*sin(giá trị của ô bên trái*2*pi/1000) + 400. Chẳng hạn, giả thiết cột A chứa các chỉ số từ 0 đến 999, ô B1 sẽ có công thức = 400*sin(A1*2*pi/1000) + 400 Sau đó xuất cột B ra một tập tin văn bản, rồi cắt/dán vào mã nguồn, và thêm các dấu "," vào những vị trí cần thiết. Nếu dùng MATLAB thì có thể tự động xử lý toàn bộ phần định dạng, rồi xuất ra tập tin văn bản, sau đó chỉ cần cắt/dán vào mã nguồn. Lập trình khéo hơn một chút thì chỉ cần lưu 1/4 bảng trên vào flash/ROM là đủ. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 2 túi
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
: |
Hi
Thanks trưởng lão.
thay đổi nội dung bởi: truongqt, 29-04-2009 lúc 02:15 PM. |
![]() |
![]() |
![]() |
#4 | |
Đệ tử 2 túi
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
: |
Trích:
u=400+400*sin(2*pi*f_dieuche*t) tại các thời điểm t = {0,1,2,....,998,999} phải ko anh Nam. Em băn khoăn vì sao biểu thức trong hàm sin anh viết: sin(A1*2*pi/1000), chia cho 1000 là sao vậy anh? Như vậy có phải tần số điều chế là (1/1000). Em chưa hiểu chỗ này. Đáng lẽ phải thế này chứ: T_dieuche=sophantubangsin*T_pwm =1000*T_pwm --> f_dieuche=1/T_dieuche = 1/(1000*T_pwm)= f_pwm/1000 Như vậy biểu thức trên phải là: công thức = 400*sin(A1*2*pi*f_pwm/1000) + 400 Anh coi giùm em với. thay đổi nội dung bởi: truongqt, 22-04-2009 lúc 12:42 AM. |
|
![]() |
![]() |
![]() |
#5 | |
Trưởng lão PIC bang
|
Trích:
u = 400 + 400*sin(2*pi*(f_sw/1000)*t) Vì các giá trị của cột A chạy từ 0 đến 999, các giá trị của cột B sẽ chạy từ 400 + 400*sin(0) đến 400 + 400*sin(999*2*pi/1000), tức là vừa đúng một chu kỳ sóng sin (chú ý là sin(1000*2*pi/1000) = sin (0) = 0). Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 2 túi
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
: |
![]() 1). Chương trình bác Nam sửa ở trang 1,#11, mình mô phỏng bằng proteus 7.4, code viết trong CCS 4.0.., kết quả mô phỏng chạy ra đúng như tính toán:
Tpwm=20us --> Fpwm=50KHz Tsin = 16ms --> Fsin=62,5Hz. Trong đó, mình dùng thẳng thạch anh 40MHz để tần số clock=40MHz. Mình gửi kèm file đã làm (tên file: PWM-truonglao.rar). 2). Thế nhưng khi mình điều chế sin Fsin= 50Hz: Chọn: Fpwm=20KHz hay Tpwm=50us, theo cthuc Tpwm=4*(PTPER+1)/Fosc suy ra: PTPER=49. (Thach anh Fosc = 4MHz) Sóng sin có Fsin=50Hz --> so ptu bang sin = Fpwm:Fsin=20000:50=400 phần tử. Như vậy: Tpwm = 50us Tsin = 20ms Nhưng kết quả mô phỏng được: Tpwm=50us ( tức Fpwm=20KHZ -> Fpwm đúng theo tính toán) Tsin = 40ms --> Fsin = 25Hz (--> cái này như vậy là sai mất rồi) Mình gửi kèm file đã làm các bạn xem (20KHzPWM-sin50Hz.rar). 3). Vì theo câu (2), khi mình điều chế Fsin=50Hz mà kết quả ra là 25Hz, nên mình đã đi điều chế Fsin=100Hz xem thử nó có ra tần số 50Hz ko. --> kết quả mô phỏng: điều chế Fsin=100Hz thì kết quả mô phỏng ra là 50Hz. Gửi kèm file (20KHzPWM-sin100Hz.rar). *** Mong các bạn xem và sớm giải thích giùm mình, ngày hnay mất 1 ngày mà vẫn chưa tìm ra cause. // bổ sung thông tin CCS: mình cài CCS trong ổ đĩa G, nên nếu các bạn cài CCS trong ổ C thì phải chọn lại đường dẫn file devices và drivers cho chương trình thì mới complie được đó. thay đổi nội dung bởi: truongqt, 01-05-2009 lúc 06:05 PM. Lý do: sửa vị trí trang bài viết bác Nam + bổ sung thông tin CCS |
![]() |
![]() |
![]() |
#7 |
Đệ tử 2 túi
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
: |
Bảng sin
Gửi kèm luôn file excel tính bảng sin.
Bảng sin 200 tuơng ứng Fsin=100Hz ''' 400 ''' Fsin=50Hz |
![]() |
![]() |
![]() |
#8 |
Đệ tử 2 túi
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
: |
Ủa sao ko thấy ai nói j zậy ta. Mọi người nghỉ lễ kĩ thế.
|
![]() |
![]() |
![]() |
#9 | |
Đệ tử 3 túi
Tham gia ngày: Jul 2009
Bài gửi: 46
: |
Trích:
thay đổi nội dung bởi: JohnnyNguyen, 20-09-2009 lúc 08:03 PM. |
|
![]() |
![]() |
![]() |
#10 | |
Đệ tử 1 túi
Tham gia ngày: Feb 2008
Bài gửi: 19
: |
Trích:
Em mới vào diễn đàn thấy các anh bàn luận hay quá. Anh có thể giải thichcs giúp em tại sao a lại chọn giá trị đỉnh là 400 được k? Anh căn cứ vào đâu để chọn như vậy? Cám ơn anh nhiều! |
|
![]() |
![]() |
![]() |
#11 | |
Trưởng lão PIC bang
|
Trích:
Module PWM của PIC có sự giới hạn đối với duty cycle khá gần 0% và 100%, do đó có thể giảm trị đỉnh xuống vài phần trăm để khắc phục. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#12 | |
Đệ tử 1 túi
Tham gia ngày: Feb 2008
Bài gửi: 19
: |
Trích:
Anh có thể giải thích cụ thể căn cứ chọn đỉnh thông qua code ví dụ a sửa cho bạn tienminh đc k? Giá trị đỉnh của tín hiệu sine ra sau cầu H và giá trị điện áp 1 chiều cấp cho cầu H và bảng sine có quan hệ như thế nào hả a? Em cám ơn anh nhiều! |
|
![]() |
![]() |
![]() |
|
|