Sinh viên thưc hiên : Nguyễn Đức Hải
Lớp : DKTD K7A
Môn : Thực tập nghề ban đầu
Mạch Kiểm Soát Tốc độ Động Cơ DC
Dùng Pic18F2620 processor
Giới thiệu:
• Mạch điện tủ sẽ điều khiển và duy trì tốc độ không đổi cho động cơ DC
• ( DC speed controller )
• Điều khiển tôc độ nhanh chậm so với tốc độ quy định của động cơ
• Phát hiện chính xác tốc độ động cơ đang chạy
• Kiểm tra trạng thái động cơ theo đèn led
I Phần cứng
1 Sơ đồ mạch
2 Sơ đồ mẫu
3 Mô tả mạch
4 các thành phần cơ bản
5 vẽ mạch in bằng orcad
II Bộ công cụ làm việc với PIC18F2620
I Phần cứng
I.1 Sơ đồ mạch
Sơ đồ 1 (sơ đồ mẫu )
Sơ đồ 2 ( sơ đồ nguyên lý được vẽ bằng phần mềm orcad )
Chú giải: sơ đồ 1 là sơ đồ tổng quát
Sơ đồ 2 sơ đồ chính
Gồm khối vi xủ lý , khối cống suất ,khối nguồn . và connecter kết nối vơi động cơ , nguồn điện , bộ phân hiển thị .
I.3 mô tả mạch
I.3.1 Là mạch điều khiển điện áp đầu vào
Sơ đồ trên ta thấy
• Điều khiển điện áp để phát hiện tốc độ quay của đầu vào cho các mạch PIC.
• đầu vào cho PIC là chuyển đổi A / D được sử dụng để kiểm soát thông tin, PWM( điều chế độ rộng xung
• động cơ M2 được sử dụng như một máy phát điện.
• PIC điều khiển động cơ M1 khi M2 thay đổi tốc độ
• D1 ( diot zenner) để phát hiện tốc độ động cơ điện áp cao hơn PIC phép (5V) được vượt quá đối với 5V điốt Zener.
• C1 là để bỏ qua độ nhiễu.
• VR1 là biến trở động cơ tăng hoặc giảm tốc độ thi biến trơ sẽ thay đổi
I.3.2 mạch điều khiển M1
Sơ đồ
Gồm các phần tử công suất , vi xủ lý , động cơ
• . Trong PWM CCP1 nhiệm vụ có thể thay đổi dữ liệu đầu ra xung .
•
• kiểm soát động cơ hiện tại do bộ điều chế độ rộng xung PWM của PIC (Pulse Width Modulation) của bộ định thời
I.3.3 bộ cộng hưởng
•
sử dụng một bộ cộng hưởng 10MHz.
Tốc độ quay của động cơ sẽ không trực tiếp liên quan liên quan đến chu kỳ xung chạy bằng mô tơ
sử dụng một bộ cộng hưởng 10MHz.
Tốc độ quay của động cơ sẽ không trực tiếp liên quan liên quan đến chu kỳ xung chạy bằng mô tơ
I.3.4 bộ ổn định nguồn
Sử dụng IC KA7805
I.4 Các thành phần cơ bản trong mạch
- PIC 18F2620 ( chíp dán )
được sử dụng.
Trong mạch ,kiểm soát PWM. Tốc độ quay của động cơ (động cơ này được sử dụng để phát hiện tốc độ), một điện áp tương ứng với các A / D sẽ được để nắm bắt điều khiển của tôc độ hiện hành để chuyển đổi
Trong mạch ,kiểm soát PWM. Tốc độ quay của động cơ (động cơ này được sử dụng để phát hiện tốc độ), một điện áp tương ứng với các A / D sẽ được để nắm bắt điều khiển của tôc độ hiện hành để chuyển đổi
.Ngoài ra, điều khiên bộ hiển thị LED cũng kiểm soát các tốc độ của động cơ.
PIC18F2620
MOS FET ổ đĩa bán dẫn (2SC1815)
Dầu ra PIC là 0V tới 5V đầu ra, FET để kiểm soát các chuyển đổi điện áp 0V-12V.
Dầu ra PIC là 0V tới 5V đầu ra, FET để kiểm soát các chuyển đổi điện áp 0V-12V.
Power MOS FET (2SK3142)
N-kênh MOS FET.
60A giá trị tối đa tiêu hiện nay là ở đó.
Về nhà nước khi thoát FET – trở kháng là 4mΩ.
Vì vậy, về 10A trong khi mất điện là 0.4W khi dòng chảy.
Trong mạch này, FET là công suất lớn hơn nhiều, nhưng không có nhu cầu sử dụng, vì vậy tôi sử dụng được trên tay.
N-kênh MOS FET.
60A giá trị tối đa tiêu hiện nay là ở đó.
Về nhà nước khi thoát FET – trở kháng là 4mΩ.
Vì vậy, về 10A trong khi mất điện là 0.4W khi dòng chảy.
Trong mạch này, FET là công suất lớn hơn nhiều, nhưng không có nhu cầu sử dụng, vì vậy tôi sử dụng được trên tay.
Điốt Zener (RD5A)
PIC pin điện áp đến phải chịu +5 V là. Điều này đi-ốt phát hiện điện áp của 5V cho việc bảo vệ vượt quá tốc độ động cơ. Nếu cần sử dụng một điện áp V 5 bên ngoài được áp dụng trên nó thì không.
Bảo vệ động cơ đi-ốt cầu kết nối tốc độ phát hiện (W02G)
Tôi đặt một cây cầu đi-ốt silic là một vấn đề kết nối thậm chí đảo ngược các điện cực vận động phát hiện tốc độ. Nếu không có cần phải sử dụng kết nối sai.
Tôi đặt một cây cầu đi-ốt silic là một vấn đề kết nối thậm chí đảo ngược các điện cực vận động phát hiện tốc độ. Nếu không có cần phải sử dụng kết nối sai.
BỘ CỘNG HƯỞNG
sử dụng một bộ cộng hưởng 10MHz.
Nếu bạn thay đổi tần số cộng hưởng, bạn cần thay đổi các thiết lập khác nhau trong phần mềm.
sử dụng một bộ cộng hưởng 10MHz.
Nếu bạn thay đổi tần số cộng hưởng, bạn cần thay đổi các thiết lập khác nhau trong phần mềm.
Tốc độ điều chỉnh điên áp
đã được sử dụng cho một cái gì đó.
Trong mạch này, số pinđược hiển thị bên trái.
Khi bạn rẽ trái và chậm, chuyển sang bên phải nhanh hơn.
Pin số cũng có thể đảo ngược các mạch sử dụng một thứ hai và thứ ba. Có vẻ như có nhiều chính xác.
đã được sử dụng cho một cái gì đó.
Trong mạch này, số pinđược hiển thị bên trái.
Khi bạn rẽ trái và chậm, chuyển sang bên phải nhanh hơn.
Pin số cũng có thể đảo ngược các mạch sử dụng một thứ hai và thứ ba. Có vẻ như có nhiều chính xác.
LED, kết nối tốc độ động cơ điều chỉnh chiết áp
Ban đầu, đèn LED điện trở biến để thiết lập tốc độ động cơ và không có kế hoạch sử dụng một phần của kết nối này để đính kèm vào nắp. Tuy nhiên, trường hợp không thể được lưu trữ để sử dụng trong thiết bị đầu cuối nối dây.
Dây thiết bị đầu cuối
Được sử dụng như thiết bị đầu cuối để kết nối các đường dây điện và dây chuyền sản xuất.
Động cơ chính
Trong mạch này, để lái xe máy. Mabuchimota của sử dụng RS-380PH. Motor thông số kỹ thuật như sau: I.
Giới hạn điện áp: | 12V | Đúng tải RPM: | 14.200 vòng / phút | |
Sửa điện áp: | 7.2V | Thích hợp tải trọng tĩnh hiện tại: | 2.90A | |
Thích hợp tải trọng: | · Cm 100g | Shaft: | 2.30mm | |
Không RPM Load: | 16.400 vòng / phút |
Tốc độ phát hiện
Tôi không tìm thấy một động cơ cho các lái xe một mạch động cơ tốc độ phát hiện thời gian này. Mabuchimota RE-280 được sử dụng. Motor thông số kỹ thuật như sau: I.
Giới hạn điện áp: | 1.5V ~ 4.5V | Đúng tải RPM: | 6.850 vòng / phút | |
Sửa điện áp: | 3.0V | Thích hợp tải trọng tĩnh hiện tại: | 750mA | |
Thích hợp tải trọng: | 17.7g · cm | Shaft: | 2.0mm | |
Không RPM Load: | 9.000 vòng / phút |
Nếu bạn xoay tốc độ động cơ truyền động, ngoài các thông số kỹ thuật trên. Tạo ra điện áp vượt quá đặc tả kỹ thuật, hiện tại là gần như tuôn ra bởi vì tôi không nghĩ. Nói đúng ra, có một vấn đề vì cách điện chịu được điện áp hơn so với điện áp quy định là có lẽ không phải là một điện áp cao mà không gặp khó khăn.
lắp khung Động cơ
Các động cơ đã được mở các vít cố định ở bên động cơ của ổ trục trụ. Panel để gắn động cơ và sử dụng lỗ này. Chúng tôi sử dụng một động cơ loại bánh gắn khung.
Gear
Được sử dụng để phát hiện và kết nối tốc độ của động cơ truyền động động cơ. Vì tình hình hoạt động của động cơ điều khiển tốc độ động cơ không chỉ là một động cơ biến để phát hiện tốc độ.
LED hiển thị trạng thái động cơ (GL-107S12)
LED 7 thanh hiển thị một biểu đồ được xây dựng trong hình LED thanh. Hai 8 mạch điều khiển LED có để có thể kiểm soát, từng có 8 LED với điều đó trong bảy không thể có được
LED 7 thanh hiển thị một biểu đồ được xây dựng trong hình LED thanh. Hai 8 mạch điều khiển LED có để có thể kiểm soát, từng có 8 LED với điều đó trong bảy không thể có được
AC Adapter
Việc đầu tiên là sức mạnh động cơ chính sẽ được chia sẻ với một đơn vị kiểm soát chuyên dụng cung cấp năng lượng bởi vì nó là yêu cầu của các loại động cơ.
bộ chuyển đổi này là dành cho bộ điều khiển.
Núm điều chỉnh tốc độ
Các núm điện trở biến để kiểm soát tốc độ.
Các núm điện trở biến để kiểm soát tốc độ.
Thiết bị đầu cuối bao gồm
FET cống bị đầu cuối (giữa) tôi đặt một trải trên thiết bị đầu cuối. Điều này là để ngăn ngừa tiếp xúc với thiết bị đầu cuối liền kề.
FET cống bị đầu cuối (giữa) tôi đặt một trải trên thiết bị đầu cuối. Điều này là để ngăn ngừa tiếp xúc với thiết bị đầu cuối liền kề.
I.5 VẼ MẠCH IN VỚI PHẦN MỀM ORCAD
Các chú ý quan trọng khi vẽ bảng mạch thiết kế:
Trong phần Layout chúng ta chú ý đến 2 vấn đề chính là vẽ mạch in tự động và vẽ
mạch in bằng tay (manual), nhưng cho dù là vẽ bằng cách nào đi chăng nữa chúng ta cũng có
một số chú ý sau:
1. Để biết được kích thước của bảng mạch in thì ta vào Tool/Dimension/New (hoặc select
tool),rồi ra màn hình vẽ mạch ta chỉ cần nhấp chuột trái và khi thấy có hình 2 mũi tên
hương ra và ta kéo chuột đi và muốn đo đến đoạn nào thì ta nhấp chuột trái thì thanh
thước đo sẽ hiển thị ra giá trị đo được, nhưng giá trị này mặc nhiên là Mils do đó muốn
đổi về dạng mm hoặc cm thì ta vào Options/systems setting và chọn đơn vị cần đo. Và
bây giờ giá trị này vẫn chưa thay đổi, muốn thay dổi thì ta chỉ cần nhấp chuột vào thước
đo trên bản mạch in rồi nhấp chuột lại lần nữa để xác định.
2. Phải vẽ đường viền bao quanh bản mạch in để kiểm soát đường vẽ, linh kiện để khi vẽ
sẽ không bị vượt ra ngoài giới hạn cho phép. Để làm được điều này ta làm như sau:
Vào Tool/Obstacle/new (hoặc select tool) hay nhấp chuột vào Obstacle Tool trên Menu
lệnh, rồi chọn 0 Global layer (có màu vàng).Nhấp chuột trái và khi thấy con trỏ là dấu
cộng nhỏ hơn. Sau đó kéo chuột cà muồn dừng tại điểm nào thì nhấp chuột trái. Khi
điểm đầu và điểm cuối gặp nhau thì ta nhấp chuột phải để chọn End Command để kết
thúc.
3. Để đặt chiến lươc vẽ mạch in tự động ta vào trong menu Options/ Route
Strategies/Route Sweep. Để chọn vẽ lớp trên bao nhiêu % và lớp dưới bao nhiêu %.
4. Vào Options chọn Global Spacing để chọn khoảng cách giữa các track to track, via to
via, track to via, track to pad, via to pad …
5. Tạo Copper pour cho bản mạch in khi đã thiết kế xong, mục đích của vấn đề này là để
chống nhiễu cho mạch điện. Có thể kéo lớp phủ này đối với VCC hay với GND. Cách
làm như sau:
Từ menu Tool/Obstacle/properties ( nếu đã tạo đường viền bao quanh bản mạch rồi) hoặc
là Tool/Obstacle/new đối với trường hợp chưa tạo đường viền cho bản mạch in và ta phải
vẽ đường viền bao quanh bản mạch. Khi vẽ xong, nhấp chuột trái khi thấy con trỏ co
hình dấu + nhỏ thì nhấp chuột trái chọn Properties. Sau khi trên màn hình xuất hiện hộp
thoại Edit Obstacle. Kế tiếp chúng ta chọn Obstacle Type chọn Copper pour, chọn
Obstacle layer chọn lớp cần phủ copper pour ( có thể là TOP hay BOTTOM…) còn Net
Attachment thì chọn là GND hay VCC tùy theo chúng ta muốn phủ theo GND hay VCC
… Còn Hatch Pattern thì ta chọn là Line hay Cross Hatching hay Soild rồi chọn OK. Sau
đó chọn tiếp OK Sau đó chọn ESC hoặc nhấp chuột phải rồi chọn End Command hoặc
Finish. Thi chúng ta sẽ có một bản mạch in đã phủ Copper pour.
6. Kích hoạt kiểm tra lỗi khi vẽ mạch in vào menu Tool/erro chọn select tool để kích hoạt
bẩy lỗi. Muốn xem lỗi thì chọn menu Tool/erro/select from spreadsheet hoặc cũng có
thể chọn menu Auto/Design rule check để kiểm tra lỗi, hoặc kích chuột vào menu lệnh
Design Rule Check.
7. In các linh kiện trên board mạch ở mặt trên của board mạch để thuận tiện cho việc gắn
linh kiện về sau thì ta làm như sau:
Vào menu Options/Post Process Settings thì hộp hộithoại xuất hiện. Sau đó chọn Plot
Output File name là *.AST nhấp chuột phải và chọn Preview để xem các linh kiện ở
mặt trên của board mạch. Bây giờ chỉ cần ta in file này ra để thấy các linh kiện đã được
sắp xếp ở mặt trêncủa board mạch.
8. Sau khi vẽ xong board mạch in, bây giờ Layout trong Orcad có hỗ trợ chức năng filter
tối ưu hóa để làm cho mạch gọn và tối ưu nhất ( trong cả hai chế độ vẽ tự động và vẽ
bằng tay đều sử dụng được tính năng này và chỉ co trong Layout và Layout Plus). Bằng
cách chọn Menu Auto\ Cleanup Design hoặc có thể vào từ Menu
Auto\Refresh/minimize conections .
9. Để thay đổi độ rộng của đường mạch ta chọn đường mạch cần thay đổi độ rộng (lúc này
ta có thể ở đang ở chế độ vẽ manual hay đã kết thúc việc vẽ tự đông, chỉ còn chỉnh độ
rộng đường mạch cho phù hợp) tacó thể chọn ở mode autopath Route hoặc Add/edit
route hoặc Edit segment và nhấn phím W thì có một hộp hội thoại hiện ra cho chúng ta
chọn để có thể thay đổi có thể là cả segment, net hoặc conections.
10. Ta có thể chọn một khối mạch riêng lẻ trên một board để vẽ. Nhằm kiểm tra các chiến
thuật vẽ đã chọn và để tối ưu board mạch in vẽ sau này. Vào menu View\Zoom
DRC/Route Box để rãi linh kiện ( ta có thể thay đổi kích thước của DRC/Route Box
hiện hành, dời nó hoặc có thể đặt kích cỡ của DRC/Route box bằng mouse và phóng to
và chuyển để ở một vị trí khác). Sau đó vào Menu Auto\Autoroute\DRC/Route Box để
vẽ khối mạch đã chọn. Còn nếu muốn Unroute khối mạch đã vẽ trên thì ta làm ngược
lại vào menu Auto\Unroute\DRC/Route Box để không vẽ.
Mạch lớp trên
Mạch lớp dưới
Hình ảnh cho toàn bộ phần cứng
II Bộ công cụ làm việc với PIC18F2620
1.Mạch nạp: DCSPEED CONTROLLER
2.Chương trình nạp: IC - PROG
3.Bootloader: bootloader FOR PIC18FXXX
4.Debugger: ICD2 Clone
5.Chương trình dịch: MPLAB IDE - CCS C
6. Phần mềm
3.Bootloader : PIC-P28 DEVELOPMENT PROTOTYPE BOARD FOR 28 PIN PIC MICROCONTROLLERS
6 .Phan mem
( dang code ASM)
;********************************************************
;
; DC motor speed controller
;
; Device : PIC18F2620
; Author : Seiichi Inoue
;********************************************************
list p=pic16f873
include p16f873.inc
__config _hs_osc & _wdt_off & _pwrte_on & _lvp_off
errorlevel -302 ;Suppress bank warning
;**************** Label Definition ********************
speed equ d'8' ;Reference speed (5x8/256=0.156V)
change equ d'1' ;Change value (10mV/ms)
led equ h'20' ;LED control data save area
;**************** Program Start ***********************
org 0 ;Reset Vector
goto init
org 4 ;Interrupt Vector
goto int
;**************** Initial Process *********************
init
;*** Port initialization
bsf status,rp0 ;Change to Bank1
movlw b'00000001' ;AN0 to input mode
movwf trisa ;Set TRISA register
clrf trisb ;Set TRISB to uotput mode
clrf trisc ;Set TRISC to output mode
bcf status,rp0 ;Change to Bank0
;*** A/D converter initialization
movlw b'10000001' ;ADCS=10 CHS=AN0 ADON=ON
movwf adcon0 ;Set ADCON0 register
bsf status,rp0 ;Change to Bank1
movlw b'00001110' ;ADFM=0 PCFG=1110
movwf adcon1 ;Set ADCON1 register
bcf status,rp0 ;Change to Bank0
;*** PWM initialization
clrf tmr2 ;Clear TMR2 register
movlw b'11111111' ;Max duty (low speed)
movwf ccpr1l ;Set CCPR1L register
bsf status,rp0 ;Change to Bank1
movlw d'255' ;Period=1638.4usec(610Hz)
movwf pr2 ;Set PR2 register
bcf status,rp0 ;Change to Bank0
movlw b'00000110' ;Pst=1:1 TMR2=ON Pre=1:16
movwf t2con ;Set T2CON register
movlw b'00001100' ;CCP1XY=0 CCP1M=1100(PWM)
movwf ccp1con ;Set CCP1CON register
;*** Compare mode initialization
clrf tmr1h ;Clear TMR1H register
clrf tmr1l ;Clear TMR1L register
movlw h'61' ;H'61A8'=25000
movwf ccpr2h ;Set CCPR2H register
movlw h'a8' ;25000*0.4usec = 10msec
movwf ccpr2l ;Set CCPR2L register
movlw b'00000001' ;Pre=1:1 TMR1=Int TMR1=ON
movwf t1con ;Set T1CON register
movlw b'00001011' ;CCP2M=1011(Compare)
movwf ccp2con ;Set CCP2CON register
;*** Interruption control
bsf status,rp0 ;Change to Bank1
movlw b'00000001' ;CCP2IE=Enable
movwf pie2 ;Set PIE2 register
bcf status,rp0 ;Change to Bank0
movlw b'11000000' ;GIE=ON PEIE=ON
movwf intcon ;Set INTCON register
wait
goto $ ;Interruption wait
;*************** Interruption Process *****************
int
clrf pir2 ;Clear interruption flag
ad_check
btfsc adcon0,go ;A/D convert end ?
goto ad_check ;No. Again
movfw adresh ;Read ADRESH register
sublw speed ;Ref speed - Detect speed
btfsc status,c ;Reference < Detect ?
goto check1 ;No. Jump to > or = check
;--- control to low speed ---
movfw ccpr1l ;Read CCPR1L register
addlw change ;Change value + CCPR1L
btfss status,c ;Overflow ?
movwf ccpr1l ;No. Write CCPR1L
goto led_cont ;Jump to LED control
check1
btfsc status,z ;Reference = Detect ?
goto led_cont ;Yes. Jump to LED control
;--- control to fast speed ---
movlw change ;Set change value
subwf ccpr1l,f ;CCPR1L - Change value
btfsc status,c ;Underflow ?
goto led_cont ;Jump to LED control
clrf ccpr1l ;Set fastest speed
;**************** LED control Process ******************
led_cont
comf ccpr1l,w ;Complement CCPR1L bit
movwf led ;Save LED data
movlw b'00010000' ;Set compare data
subwf led,w ;LED - data
btfsc status,c ;Under ?
goto led1 ;No.
movlw b'00000000' ;Set LED control data
goto int_end ;Jump to interrupt end
led1 movlw b'00100000' ;Set compare data
subwf led,w ;LED - data
btfsc status,c ;Under ?
goto led2 ;No.
movlw b'00000001' ;Set LED control data
goto int_end ;Jump to interrupt end
led2 movlw b'01000000' ;Set compare data
subwf led,w ;LED - data
btfsc status,c ;Under ?
goto led3 ;No.
movlw b'00000011' ;Set LED control data
goto int_end ;Jump to interrupt end
led3 movlw b'01100000' ;Set compare data
subwf led,w ;LED - data
btfsc status,c ;Under ?
goto led4 ;No.
movlw b'00000111' ;Set LED control data
goto int_end ;Jump to interrupt end
led4 movlw b'10000000' ;Set compare data
subwf led,w ;LED - data
btfsc status,c ;Under ?
goto led5 ;No.
movlw b'00001111' ;Set LED control data
goto int_end ;Jump to interrupt end
led5 movlw b'10100000' ;Set compare data
subwf led,w ;LED - data
btfsc status,c ;Under ?
goto led6 ;No.
movlw b'00011111' ;Set LED control data
goto int_end ;Jump to interrupt end
led6 movlw b'11000000' ;Set compare data
subwf led,w ;LED - data
btfsc status,c ;Under ?
goto led7 ;No.
movlw b'00111111' ;Set LED control data
goto int_end ;Jump to interrupt end
led7 movlw b'11100000' ;Set compare data
subwf led,w ;LED - data
btfsc status,c ;Under ?
goto led8 ;No.
movlw b'01111111' ;Set LED control data
goto int_end ;Jump to interrupt end
led8 movlw b'11111111' ;Set LED control data
;************ END of Interruption Process **************
int_end
movwf portb ;Set PROTB
retfie
;********************************************************
; END of DC motor speed controller
;********************************************************
End
Tài liệu được tham khảo trên các trang web
và datasheet
Và một số trang web khác
Địa chỉ liên hê k7aduchai@live.com
THANK YOU