3.2.2.1. Khối PIC16F887
Hình 3. 2 – Khối PIC16F887 a. Nhiệm vụ của các Port
Port A: có 6 chân từ A0 đến A6. A0 và A1 xuất ra giá trị của vị trí buồng thang. A2 và A3 xuất ra trạng thái đi lên hoặc đi xuống của buồng thang. A4 không sử dụng. A5 được sử dụng để đưa vào chân LE của 74HC573 (IC chốt). A6, A7 kết nối thạch anh tạo dao động, vì sử dụng thạch anh 20 MHz (dao động tần số cao HS) nên sử dụng 2 tụ có giá trị từ 15 pF đến 33 pF ( ta chọn 22 pF ), việc gắn thêm tụ giúp cho dao động được ổn định và mạch hoạt động tốt khi nhiệt độ thay đổi.
Port B: có 8 chân từ B0 đến B7, được nối vào khối nút nhấn. B0 được sử dụng cho việc nhận ngắt ngoài. Ngắt ngoài xảy ra khi có sự thay đổi điện áp từ mức cao xuống mức thấp. B1, B2, B3 xuất ra tín hiệu mức cao hoặc mức thấp. B4. B5, B6, B7 nhận tín hiệu vào từ khối nút nhấn. Tín hiệu xuất ra kết hợp với tín hiệu nhận vào giúp cho việc xác định nút tại vị trí nào được nhấn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34 Port C: có 8 chân từ C0 đến C7. C0 và C1 điều khiển động cơ truyền động. C2 và C3 điều khiển cửa buồng thang. C4 xuất tín hiệu điều khiển Buzzer. C5, C6, C7 nhận tín hiệu từ cảm biến hồng ngoại trong buồng thang; với mục đích xác định vị trí cửa buồng thang và vật cản đặt ở cửa buồng thang.
Port D: có 8 chân từ D0 đến D7. D0, D1, D2, D3 được sử dụng để nhận tín hiệu từ cảm biến hồng ngoại vị trí buồng thang, tương ứng với với vị trị buồng thang tại tầng dưới cùng (tầng 0) đến tầng trên cùng (tầng 3). Từ D4 đến D7 không sử dụng.
Port E: có 3 chân E0, E1, E2, E3, chân E3 kết nối nút nhấn Reset. Chân E0 được kết nối với switch tác động tích cực mức 0, có chức năng khóa thang khi cần thiết như : bảo trì, sửa chữa thang máy khi gặp sự cố, vận chuyển hàng hóa…Switch khóa thang này được đặt trong buồng thang máy và có ổ khóa để khóa lại. Khi gạt switch, chức năng khóa thang được kích hoạt, thang máy sẽ dừng ở vị trí tầng được khóa thang, khi có các lệnh gọi thang từ tầng trên hoặc dưới, vị trí tầng vẫn được nhớ và buồng thang sẽ tiếp tục di chuyển lên - xuống khi gạt switch trở lại trạng thái ban đầu.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35 b. Ngắt ngoài INT_EXT
PIC16F887 có đến 15 nguồn tạo ra hoạt động ngắt được điều khiển bởi thanh ghi INTCON (bit GIE). Bên cạnh đó mỗi ngắt còn có một bit điều khiển và cờ ngắt riêng. Các cờ ngắt vẫn được set bình thường khi thỏa mãn điều kiện ngắt xảy ra bất chấp trạng thái của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ thuôc vào bit GIE và các bit điều khiển khác. Bit điều khiển ngắt RB0/INT và TMR0 nằm trong thanh ghi INTCON, thanh ghi này còn chứa bit cho phép các ngắt ngoại vi PEIE. Bit điều khiển các ngắt nằm trong thanh ghi PIE1 và PIE2. Cờ ngắt của các ngắt nằm trong thanh ghi PIR1 và PIR2.Việc xác định ngắt ngoài cần 3 hoặc 4 chu kì lệnh, tùy thuộc vào thời điểm ngắt xảy ra.
Ngắt này dựa trên sự thay đổi trạng thái của pin RB0/INT. Cạnh tác động gây ra ngắt có thể là cạnh lên hay cạnh xuống và được điều khiển bởi bit INT_EDG. Khi có cạnh tác động thích hợp xuất hiện tại pin RB0/INT, cờ ngắt INTF được set bất chấp trạng thái các bit điều khiển GIE và PEIE.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36 3.2.2.2. Khổi nút nhấn
Hình 3. 4 – Khối nút nhấn
Ở trạng thái bình thường – không có bất kì phím nào nhấn, điện áp tại chân B1, B2 và B3 (tương ứng với các hàng ngang trên nút nhấn) luôn ở mức thấp (0VDC). Điện áp tại chân B4, B5, B6 và B7 (tương ứng với các cột trên nút nhấn) luôn ở mức cao.
Khi có bất kì phím nào được nhấn, điện áp tại cột của phím nhấn sẽ xuống mức thấp. Tín hiệu điện áp này đưa qua 74LS08 (IC logic AND loại 2 ngõ vào) ta thu được tại chân thứ 8 của 74LS08 là điện áp mức thấp. Chân thứ 8 này nối tiếp với chân B0 của PIC. Từ đó bắt đầu chương trình ngắt ngoài, tuần tự cho giá trị điện áp tại B1 xuống mức thấp, B2 và B3 lên mức cao. Sau đó bắt đầu quá trình xét tín hiệu điện áp tại B4, B5, B6, B7. Nếu điện áp thu được là điện áp mức thấp ta sẽ xác định được vị trí nút được nhấn. Nếu không xác định được điện áp mức thấp sẽ tuần tự làm lại công việc trên với B2 và B3.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37 3.2.2.3 Khổi cảm biến.
Hình 3. 5 – Khối cảm biến
Module cảm biến phát hiện vật cản hồng ngoại luôn thích nghi với môi trường xung quanh, nó có một cặp mắt phát hiện tia hồng ngoại với một tần số nhất định, khi phát hiện ra tia hồng ngoại của một vật cản bề mặt phản xạ sẽ nhận tín hiệu và xử lý đèn báo sẽ sáng đồng thời đầu cho tín hiệu ra ở mức thấp.
Để biết được vị trí của buồng thang, ta gắn những cảm biến hồng ngoại trên thanh ray ứng với từng vị trí dừng của buồng thang. Khi buồng thang dừng, ngõ ra của cảm biến hồng ngoại tương ứng sẽ đưa ra tín hiệu điện áp mức thấp.
Để biết vị trí của cửa buồng thang và người hoặc vật cản đứng tại cửa buồng thang, ta gắn từng module cảm biến hồng ngoại ứng với vị trí cửa đã mở hết, đóng hết và vị trí giữa của cửa buồng để phát hiện người. Khi có người tại cửa, ngõ ra cảm biến hồng ngoại xác đinh người sẽ đưa ra tín hiệu mức cao và ngược lại. Khi cửa đã đóng hết hoặc mở hết, ngõ ra cảm biến hồng ngoại tại vị trí cửa đóng hết hoặc vị trí cửa mở hết sẽ có mức điện áp thấp và ngược lại.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38 3.2.2.4. Khối hiển thị, chuông báo.
Hình 3. 6 – Khối hiển thị, chuông báo.
Khối led hiển thị bao gồm: led đơn hiển thị trạng thái buồng thang, led 7 đoạn loại anode chung, IC giải mã 74LS247, IC chốt 74HC573.
Tín hiệu điện áp từ Port A của PIC16F887 được đưa vào ngõ vào của IC chốt như sau: A0 (của PIC) ứng với D0 (của IC chốt), A1 ứng với D1, A2 ứng với D2, A3 ứng với D3, A5 ứng với LE của IC chốt. Với A0 và A1 là vị trí của buồng thang; A2 và A3 là trạng thái đi lên đi xuống của buồng thang.
IC chốt 74HC573 có 20 chân: 8 chân ngõ vào D0 đến D7, 8 chân ngõ ra Q0 đến Q7, 1 chân LE, 1 chân OE (output enable) tích cực mức thấp, 1 chân VCC và 1 chân GND.
Tín hiệu ngõ ra Q0, Q1 đưa vào 74LS247 giải mã từ hê nhị phân sang mã BCD và hiển thị qua led 7 đoạn. Tín hiệu ngõ ra Q2, Q3 nối tiếp với Transisitor điều khiển led đơn hiển thị trạng thái đi lên hoặc đi xuống của buồng thang.
Chuông báo được kết nối chân C4, chuông báo sẽ báo hiệu khi cabin đến tầng mong muốn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39 Thông số Giá trị hFE 100 VCE(SAT) 0.1V VBE 1V IC(MAX) 150mA IB(MAX) 50mA PMAX 400mW VLED 2V ILED(MAX) 15mA VBUZZER 5V IBUZZER 20mA IO(74HC573) 20mA IO(16F887) 20mA I7SEG 25mA
Bảng 3. 1 – Thông số của các linh kiện trong khối
1. Tính chọn các linh kiện điều khiển led lên, xuống: 3 led lên mắc song song, 3 led xuống mắc song song.
Tính cho 3 led lên: Áp dụng Kirchhoff 2 VBB=IBRB+VBE (3.1) VCC=ICRC+VLED+VCE (3.2) Tính chọn RB VCE= VCE(SAT) IB= IO(74HC573) RB(MIN)= (VBB- VBE)/IB=(5-1)/0,02=200Ω (chọn 220Ω) (3.3) RC(MIN)= (VCC- VCE- VLED)/(3ILED)=(12-0,1-2)/(3.0,015)=220Ω (3.4) (chọn 330Ω)
Ta thấy các thông số trên phù hợp với transistor C1815 Tính cho 3 led xuống (tương tự)
2. Tính chọn các linh kiện điều khiển Buzzer. Áp dụng Kirchhoff 2
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40 VBB=IBRB+VBE (3.5) Tính chọn RB VCE= VCE(SAT) IB= IO(16F887) RB(MIN)= (VBB- VBE)/IB=(5-1)/0,02=200Ω (chọn 220Ω) (3.6) Ta thấy các thông số trên phù hợp với transistor C1815
3. Tính chọn điện trở điều khiển 5 led 7 đoạn anode chung mắc song song. Vì mỗi đoạn của led như một led đơn nên ta tính điện trở của mỗi đoạn như sau: R= (VCC- VLED- VO(16F887))/(5.I7SEG)=(5-2,2-0)/(5 0,025
7 )=157Ω (3.7) (chọn 220Ω)
Vậy ta chọn 7 điện trở 220Ω
3.2.2.5. Khổi điều khiển động cơ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41 Phương pháp điều khiển:
Một động cơ DC có 2 đầu A và B, nối 2 đầu dây này với một nguồn điện DC. Ai cũng biết rằng nếu nối A với cực (+), B với cực (–) mà động cơ chạy theo chiều thuận (kim đồng hồ) thì khi đảo cực đấu dây (A với (–), B với (+)) thì động cơ sẽ đảo chiều quay.
Để điều khiển được như thế, cần phải sử dụng thêm Opto, transistor kết hợp với relay đảo chiều quay của động cơ. Mỗi động cơ ta sử dụng 2 transistor với 2 relay và 2 opto cách li, tín hiệu xuất ra từ PIC16F887 sẽ kích cho 2 opto với 2 mức logic khác nhau, nó sẽ điều khiển 2 transistor để kích 2 relay để đảo chiều quay động cơ, nếu không có tín hiệu kích thì động cơ không quay. Không cùng lúc kích 2 transistor vì với trường hợp này, cả 2 đầu A, B của động cơ cùng nối với một mức điện áp và sẽ không có dòng điện nào chạy qua, mạch không hoạt động.
Có 2 thông số quan trọng cho 1 relay là điện áp kích solenoid và dòng lớn nhất mà các tiếp điểm chịu được. Điện áp kích solenoid là 12V, việc kích solenoid chính là công việc của chip điều khiển PIC16F887. Vì tiếp xúc giữa cực Com và các tiếp điểm là dạng tiếp xúc tạm thời, không cố định nên rất dễ bị hở mạch. Nếu dòng điện qua tiếp điểm quá lớn, nhiệt có thể sinh ra lớn và làm hở tiếp xúc. Vì thế chúng ta cần tính toán dòng điện tối đa trong ứng dụng của mình để chọn relay phù hợp.
Ta thấy dòng qua động cơ tối đa khi có tải là 170 mA << dòng mà tiếp diểm relay có thể chịu được là 10A nên đảm bảo rất an toàn khi vận hành.
Ở sơ đồ mạch trên ta sử dụng transistor NPN để kích dòng cho relay đóng tiếp điểm thường mở, nguyên lý hoạt động như sau:
– Khi tín hiệu “đóng” và “mở” đưa vào 2 opto là mức 1 (Tức =5V) thì Q3, Q4 không dẫn do không có dòng Ibe nên relay không làm việc. Khi tín hiệu “đóng” đưa vào là mức 0 (Tức =0V) và tín hiệu “mở” đưa vào là mức 1 (Tức =5V) thì dòng sẽ qua R hạn dòng, làm cho Q3 dẫn thông lúc này ta có dòng Ice là dòng điện chạy qua cuộn dây => Q => GND, relay bên Q3 đóng tiếp điểm thường mở sinh ra dòng điện từ nguồn động cơ qua động cơ rồi về GND làm cho động cơ quay thuận (cửa đóng). Ngược lại khi tín hiệu “đóng” đưa vào là mức 1 (Tức =5V) và tín hiệu “mở” đưa vào là mức 0 (Tức =0V) thì cửa mở.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42 – Khi tín hiệu “lên” và “xuống” đưa vào 2 opto là mức 1 (tức =5V) thì Q1, Q2 không dẫn do không có dòng Ibe nên relay không làm việc. Khi tín hiệu “lên” đưa vào là mức 0 (Tức =0V) và tín hiệu “xuống” đưa vào là mức 1 (Tức =5V) thì sẽ qua R hạn dòng, làm cho Q1 dẫn thông lúc này ta có dòng Ice là dòng điện chạy qua cuộn dây => Q => GND, relay bên Q1 đóng tiếp điểm thường mở sinh ra dòng điện từ nguồn động cơ qua động cơ rồi về GND làm cho động cơ quay thuận (cabin đi lên). Ngược lại khi tín hiệu “lên” đưa vào là mức 1 (Tức =5V) và tín hiệu “xuống” đưa vào là mức 0 (Tức =0V) thì cabin đi xuống.
Diode D trong mạch có tác dụng chống lại dòng điện cảm ứng do cuộn dây sinh ra làm hỏng transistor. Mục đích của R là tạo dòng vào cực B của transistor tới ngưỡng bão hòa để transistor hoạt động như 1 chiếc khóa có điều kiện. Lưu ý, dòng vào của tín hiệu là rất nhỏ không thể chạy thẳng relay được nên ta mới sử dụng transistor để kích dòng cho relay.
Bản chất của relay là 1 cuộn cảm, cuộn cảm thì có xu hướng giữ ổn định dòng điện đi qua nó, tức là nếu dòng điện qua nó đột ngột tăng lên, thì cuộn cảm sẽ tự nó kiếm chế sự tăng của dòng điện. Nếu dòng điện đột ngột giảm xuống thì cuộn cảm cũng sẽ tự kiếm chế sự giảm dòng điện đi qua nó.
Xét trường hợp relay bị ngắt, trước khi bị ngắt vẫn còn dòng điện đi qua relay và transistor, nhưng khi transistor ngắt, dòng điện bị sụt giảm đột ngột, nhưng relay là cuộn cảm nên từ trường của nó sẽ tạo ra 1 dòng điện đi từ cực 12V xuống phía transistor nhưng vì transistor ngắt rồi nên điện tích dương sẽ tập hợp lại ở cực Colletor của transistor, điều đó khiến điện áp tăng vọt tại điểm này, khi điện áp tăng vọt quá mức chịu đựng thì transistor sẽ chết. Vậy thì ta chỉ cần nối 1 con diode dẫn dòng điện từ đầu tăng điện áp về nguồn 12V. Khi điện áp tăng lên diode sẽ dẫn dòng về nguồn 12V, như vậy điện áp bên đầu transistor sẽ không tăng đáng kể. Việc sử dụng opto giúp cách li phần điều khiển và phần công suất để bảo vệ vi điều khiển khi hoạt động. Các transistor được sử dụng trong mạch vì dòng kích cần thiết cho transistor khá nhỏ thích hợp với PIC 16F887 và có thể điều khiển được động cơ tiêu thụ dòng điện lớn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43
Tính chọn Opto
Tính điện trở R1 hạn dòng đi vào led phát của Opto:
Chọn dòng IF = 20mA, IC = 1 mA, VF = 1.4V, VCE(sat) = 0.2V R1(min) = VCC−VF−Vled−Vvdk
IF = 5−1.4−2−0
0.02 = 80 Ω (3.8)
Vì giá trị nhỏ nhất của R1 là 80 Ω mà để led phát của Opto phân cực thuận nên ta chọn R1 là 220 Ω là đủ.
R1(min) = 80 Ω » Chọn R1 = 220 Ω
Bảng 3. 2 – Thông số chọn Opto
Tính chọn transistor
Theo thông số của nhà sản xuất, dòng điện qua cuộn dây của relay là 60 mA, để relay hoạt động được thì IC (transistor) > IL (relay). Transistor C1815 là lựa chọn phù hợp do có dòng IC max lên tới 150 mA.
Ta có IC(Opto) = IB(transistor) = 1mA.
Tính dòng điện IB của transistor ứng với IC qua relay (12V) = 60 mA (bão hòa): Tra đồ thị quan hệ giữa IC và VCE(sat) ta được: VCE(sat) khoảng 0.08V
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44 Hình 3. 8 – Đồ thị quan hệ giữa IC và VCE(sat)
Tính điện trở R2 hạn dòng đi vào cực B của transistor:
Điện trở R2 có tác dụng giúp cho mối nối BE phân cực thuận để transistor dẫn. R2(max) =Vrelay−VCEopto−VBEtransistorIB = 12−0.2−0.70.001 = 11100 Ω (3.9) Vì giá trị lớn nhất của R2 là 11100 Ω mà để điều khiển tải relay tiêu thụ dòng nhỏ nên ta chọn R2 là 220 Ω là đủ.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45 3.2.2.6. Khối nguồn.
Hình 3. 9 – Khối nguồn
Đầu tiên, điện lưới quốc gia 220VAC thông qua bộ nguồn xung AC_DC biến đổi về nguồn 12VDC sau đó qua LM2576 hạ áp xuống 5V và giữ ổn định cấp cho các linh kiện trong mạch hoạt động. Do trong mạch có nhiều linh kiện như : PIC16F887 có dòng ra tối đa cho mỗi I/O là 25mA theo thông số của nhà sản xuất, ở đây nhóm sử dụng cả PortA, PortB, PortC và PortD nên dòng có thể lên tới tối đa 500mA. IC 74LS247 có dòng tối đa lên tới 13mA, IC 74LS08 có dòng tối đa lên tới 8mA, IC 74HC573 có dòng từ 20 – 35mA. Ngoài các IC trên, mạch điều khiển còn cấp nguồn cho các ngoại vi khác như : 5 led 7 đoạn với mỗi led cần dòng từ 10 - 20mA, 8 led đơn và dòng ứng mỗi led cũng từ 10 - 20mA, 7 module vật cản hồng ngoại, mỗi module cần cung cấp dòng lên tới 43mA. Với những linh kiện kể trên thì dòng tối đa có thế lên tới hơn 1A.
Do cấp cho nhiều linh kiện nên đòi hỏi dòng ra phải cao, nhưng nếu sử dụng IC 7805 trong trường hợp này, dòng max của 7805 chỉ 1A và rất nóng, tổn hao trên điện trở nhiều. Đó cũng là nhược điểm của IC nguồn tuyến tính. Thay vào đó sử dụng
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46 LM2576 lắp mạch nguồn xung theo nguyên lý nguồn Buck, với dòng điện định mức