![]() |
|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#46 |
Trưởng lão PIC bang
|
Như tôi đã nói, bạn xem lại phần đọc tín hiệu analog. Bạn đã thử một trong hai tutorial của tôi chưa? Nếu đã thử thì bạn có thể chỉnh code lại để đọc từ RB8 thay vì RB0 xem có thành công hay không.
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 |
![]() |
![]() |
![]() |
#47 |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Sai ở hàm main đó bạn,
Vong lặp while(1) của bạn đặt ở cuối chương trình nên không hiện thị nhiệy độ đúng, bạn sửa lại như sau: Code:
void main(void) { int ADCVoltage; char Nhietdo[40]; ADPCFG = 0xFEFF; SystemInit(); Init_ADC10(); LCD_Gotoxy(1,1); LCD_WriteString("nhiet do la"); LCDdelayms(10); while(1){ LCD_Gotoxy(3,2); ADCVoltage=ADCValue/2; sprintf(Nhietdo, "%d",ADCVoltage ); LCD_WriteString(Nhietdo); }; }
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !. Bạn có thể nếu bạn tin bạn có thể !. thay đổi nội dung bởi: namqn, 27-03-2009 lúc 07:14 PM. Lý do: định dạng code |
![]() |
![]() |
![]() |
#48 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
#49 |
Đệ tử 2 túi
Tham gia ngày: Nov 2008
Bài gửi: 42
: |
Ha ha, được rồi bác ạ . Em bị lỗi tý phần cứng, giờ ngon rồi, ha ha! Thank cả nhà rất rất là nhiều.
|
![]() |
![]() |
![]() |
#50 |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Thầy Nam cho em hỏi (hơi ngoài luồng) : em đang làm đồ án muôn học là dùng vi điều khiển (dsPIC) để PID tốc độ và vị trí động cơ, em dung động cơ DC secvo 24v/60w, và encoder 504xung/vòng; về thuật toán PID thì em được học rồi nhưng khi vào làm thực tế thì em không biết cách nào để xác định được Kpgh, Ki , Kd, ?!
Trên lí thuyết : xác định Kpgh bằng cách cho ki = 0,Kd = 0, sau đó tăng từ từ Kp cho tới khi có dao động (với chu kì là Tgh) ở ngõ ra, thì đây là Kpgh, và lúc này ta có Kp = 0.6*Kpgh còn Ki = kp / Ti , Kd = Kp*Td, với Ti = 0.5*Tgh, Td = 0.125*Tgh Thầy nói rõ cho em hơn chố này được không thầy , ý em là viết phần mềm như thế nào để tăng Kp mà ta có thể tìm được Kgh và Tgh? Em cảm ơn thầy nhiều lắm !. Trân trọng !.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !. Bạn có thể nếu bạn tin bạn có thể !. |
![]() |
![]() |
![]() |
#51 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
#52 |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Tại vì Thầy em đang đi công tác , trước khi đi thầy có cho em địa chỉ mail để liên lạc nhưng em mail cho thầy mà chưa thấy Thầy reply nên em suốt ruột quá ! Đành lên diễn đàn để hỏi, đây là Tutorial liên quan tới PWM mà PID lại liên quan tới PWM, nên mong Thầy Nam giúp em với ,hoặc bạn nào trong diễn đàn đã tứng làm PID thì chỉ cho mình cái nhé, hết nửa học kì rồi mà chưa làm được gì cả ! SOS!
Cảm ơn tất cả !. Trân trọng !.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !. Bạn có thể nếu bạn tin bạn có thể !. |
![]() |
![]() |
![]() |
#53 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2006
Bài gửi: 5
: |
Trích:
|
|
![]() |
![]() |
![]() |
#54 |
Nhập môn đệ tử
Tham gia ngày: Mar 2006
Bài gửi: 5
: |
Một chú ý khi sử dụng ADC auto input scanning là buffer kết quả kô phải là tương ứng 1-1 với kênh ADC. Ví dụ bạn scan AN3,4,5 ở chế độ auto scanning
ADCON2bits.CSCNA = 1; ADPCFGbits.PCFG3 = 0; ADPCFGbits.PCFG4 = 0; ADPCFGbits.PCFG5 = 0; ADCSSLbits.CSSL3 = 1; ADCSSLbits.CSSL4 = 1; ADCSSLbits.CSSL5 = 1; thì kết quả ADCBUF0 sẽ là của AN3, ADCBUF1 là của AN4.... |
![]() |
![]() |
![]() |
#55 | |
Nhập môn đệ tử
Tham gia ngày: Feb 2009
Bài gửi: 1
: |
Help me!
Trích:
|
|
![]() |
![]() |
![]() |
#56 | |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Trích:
#define Fpwm 40000 //Tan so PWM = 40 kHz Thành : #define Fpwm 200000 //Tan so PWM = 200 kHz Trân trọng !.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !. Bạn có thể nếu bạn tin bạn có thể !. |
|
![]() |
![]() |
![]() |
#57 |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Giúp em về dead time của dsPIC.
Thầy Nam và các anh chị trong diễn đàn cho em hỏi về dead time của dsPIC cái ah.
Ở hình 15-16 trang 360 mục Motor control PWM của tài liêu dsPIC Family Reference , họ có nói là trong lúc dead time thì mức tín hiệu ở hai chân PWMxH và PWMxL đều ở mức thấp (LOW), do mạch công suất của em (đã đặt và thi công mất rồi) nếu cả hai chân này đều ở mức thấp thì sẽ kích cả 2 nửa cầu H cùng lúc và xảy ra trùng dẫn, vậy trong dsPIC có cung cấp cho mình lựa chọn mức tín hiệu của 2 chân PWMxH và PWMxL trong lúc dead time không ah ?. cụ thể là em muốn mức tín hiệu của 2 chân PWM lúc dead time là mức cao (High). Do sự cố trên nên trước mắt , em đang điều khiển động cơ mà không set dead time (dead time = 0 ) , nó vẫn chạy được nhưng FET rất nóng (do quá trình chuyển trạng thái của 2 mức tín hiệu trên cặp chân PWM không lý tưởng) nên sau đó một lúc (hơn 3 phút) bị chết FET. Thầy và anh chị cho em hỏi câu nữa là trong thanh ghi FBORPOR ( BOR and POR Configuration Register) mục Device Configuration trang 710 của tài liêu dsPIC Family Reference có 2 bit là HPOL và LPOL, họ có giải thích nhưng em chưa hiểu rõ lắm về mục đích của 2 bit này, liệu có phải 2 bit này dùng để set trạng thái của chân PWM khi dead time không ah ? Em xin chân thành cảm ơn !. Trân trọng !.
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !. Bạn có thể nếu bạn tin bạn có thể !. |
![]() |
![]() |
![]() |
#58 |
Đệ tử 3 túi
Tham gia ngày: Jul 2009
Bài gửi: 46
: |
hỏi về tutorial của thầy Nam.thầy cho em hỏi,cái câu lệnh:
ADCValue = ADCBUF0 >>1 //chi lay 9 bit cao nhat tại sao chỉ lấy 9 bit cao nhất.em chưa hiểu rõ chỗ này.em mới đang tiếp cận ADC,mong thầy chỉ rõ cho. cho em hỏi thêm về sơ đồ mạch,cái con MAX232 có tác dụng gì a. |
![]() |
![]() |
![]() |
#59 | |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Trích:
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !. Bạn có thể nếu bạn tin bạn có thể !. |
|
![]() |
![]() |
![]() |
#60 | |
Trưởng lão PIC bang
|
Trích:
Các bit HPOL và LPOL trong thanh ghi cấu hình FBORPOR cho phép chọn trạng thái tích cực của các chân PWMxH và PWMxL một cách tương ứng (nếu bạn không mô tả chúng thì mặc định là các bit này ở mức cao, tương ứng với các chân PWMxH và PWMxL là active-high). Bạn có thể thiết lập xóa các bit cấu hình này để các chân PWMxH và PWMxL là tích cực mức thấp (active-low), khi đó trong khoảng deadtime các chân PWMxH và PWMxL sẽ ở mức cao. Và kiểu logic này mới tương thích với mạch công suất của bạn. 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 |
|
![]() |
![]() |
![]() |
Tags |
dspic30f adc, dspic30f pwm |
Ðiều Chỉnh | |
Xếp Bài | |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 92 | 19-02-2017 11:15 PM |
dsPIC Tutorial 2-Các kỹ thuật cơ bản | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 33 | 17-10-2013 11:09 PM |
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 16 | 22-08-2012 12:35 AM |
dsPIC Tutorial 4-Module UART và I2C | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 76 | 09-05-2012 10:55 AM |
RF module | khanh_pic | Tìm mua sản phẩm | 22 | 20-08-2007 11:25 AM |