0
Tải bản đầy đủ (.pdf) (115 trang)

TỔNG QUAN VỀ CÁC THIẾT BỊ TRÊN MÔ HÌNH

Một phần của tài liệu NGHIÊN CỨU LÝ THUYẾT, THỰC HIỆN MÔ HÌNH HỆ THỐNG CHIẾU SÁNG THÔNG MINH TRÊN Ô TÔ (Trang 83 -83 )

I. Lý do chọn đề tài

1910 – 1960)

4.2 TỔNG QUAN VỀ CÁC THIẾT BỊ TRÊN MÔ HÌNH

4.2.1. Hệ thống đèn chiếu sáng- tín hiệu

- Cụm đèn đầu bao gồm: đèn pha, đèn cốt, đèn xi nhan trước, đèn chạy ngày.

Đèn xi nhan Đèn cốt Đèn DRL Đèn pha

Hình 4.4: Cụm đèn đầu

- Cụm đèn hậu bao gồm: đen đuôi, đèn xi nhan sau.

Đèn đuôi Đèn xi nhan

4.2.2. Công tắc điều khiển đèn

Công tắc điều khiển đèn Công tắc điều khiển gạt nước

Hình 4.6: Công tắc điều khiển đèn

4.2.3. Các thiết bị điện tử

4.2.3.1 Mạch Arduino UNO R3

Arduino Uno được xây dựng với phân nhân là vi điều khiển ATmega328P sử dụng thạch anh có chu kì dao động là 16 MHz. Với vi điều khiển này, ta có tổng cộng 14 pin (ngõ) ra / vào được đánh số từ 0 tới 13 (trong đó có 6 pin PWM, được đánh dấu ~ trước mã số của pin). Song song đó, ta có thêm 6 pin nhận tín hiệu analog được đánh kí hiệu từ A0 - A5, 6 pin này cũng có thể sử dụng được như các pin ra / vào bình thường (như pin 0 - 13). Ở các pin được đề cập, pin 13 là pin đặc biệt vì nối trực tiếp với LED trạng thái trên board.

Trên board còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõ cấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter hay thông qua ắc-quy nguồn.

Hình 4.7: Mạch Arduino UNO R3

Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:

- Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt điện. Về vai trò, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu trên board. Chương trình được viết cho Arduino sẽ được lưu ở đây. Kích thước của vùng nhớ này thông thường dựa vào vi điều khiển được sử dụng, ví dụ như ATmega8 có 8KB flash memory. Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi / xoá.

- RAM: tương tự như RAM của máy tính, sẽ bị mất dữ liệu khi ngắt điện nhưng bù lại tốc độ đọc ghi xoá rất nhanh. Kích thước nhỏ hơn Flash Memory nhiều lần.

- EEPROM: một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kì ghi / xoá cao hơn - khoảng 100,000 lần và có kích thước rất nhỏ. Để đọc / ghi dữ liệu ta có thể dùng thư viện EEPROM của Arduino.

Ngoài ra, board Arduino còn cung cấp cho ta các pin khác nhau như pin cấp nguồn 3.3V, pin cấp nguồn 5V, pin GND...

Hình 4.8: Tổng quan các bộ phận của mạch Arduino UNO R3

1. Cáp USB Đây là dây cáp thường được bán kèm theo bo, dây cáp dùng để cắm vào máy tính để nạp chương trình cho bo và dây đồng thời cũng lấy nguồn từ nguồn usb của máy tính để cho bo hoạt động. Ngoài ra cáp USB còn được dùng để truyền dữ liệu từ bo Arduino lên máy tính. Dây cáp có 2 đầu, đầu 1a được dùng để cắm vào cổng USB trên board Arduino, đầu 1b dùng để cắm vào cổng USB trên máy tính.

2. IC Atmega 16U2 IC này được lập trình như một bộ chuyển đổi USB –to-Serial dùng để giao tiếp với máy tính thông qua giao thức Serial (dùng cổng COM).

3. Cổng nguồn ngoài Cổng nguồn ngoài nhằm sử dụng nguồn điện bên ngoài như pin, bình acquy hay các adapter cho board Arduino hoạt động. Nguồn điện cấp vào cổng này

là nguồn DC có hiệu điện thế từ 6V đến 20V, tuy nhiên hiệu điện thế tốt nhất mà nhà sản xuất khuyên dùng là từ 7 đến 12V.

4. Cổng USB Cổng USB trên bo Arduino dùng để kết nối với cáp USB

5. Nút reset Nút reset được sử dụng để reset lại chương trình đang chạy. Đôi khi chương trình chạy gặp lỗi, người dùng có thể reset lại chương trình..

6. ICSP của ATmega 16U2 ICSP là chữ viết tắt của In-Circuit Serial Programming. Đây là các chân giao tiếp SPI của chip Atmega 16U2. Các chân này thường ít được sử trong các dự án về Arduino.

7. Chân xuất tín hiệu ra Có tất cả 14 chân xuất tín hiệu ra trong Arduino Uno, những chân có dấu ~ là những chân có thể băm xung (PWM), tức có thể điều khiển tốc độ động cơ hoặc độ sáng của đèn. Hình 2 thể hiện rất rõ những chân để băm xung này.

8. IC ATmega 328 IC Atmega 328 là linh hồn của bo mạch Arduino Uno, IC này được sử dụng trong việc thu thập dữ liệu từ cảm biến, xử lý dữ liệu, xuất tín hiệu ra, …

9. Chân ICSP của ATmega 328 Các chân ICSP của ATmega 328 được sử dụng cho các giao tiếp SPI (Serial Peripheral Interface), một số ứng dụng của Arduino có sử dụng chân này, ví dụ như sử dụng module RFID RC522 với Arduino hay Ethernet Shield với Arduino.

10. Chân lấy tín hiệu Analog Các chân này lấy tín hiệu Analog (tín hiệu tương tự) từ cảm biến để IC Atmega 328 xử lý. Có tất cả 6 chân lấy tín hiệu Analog, từ A0 đến A5.

11. Chân cấp nguồn cho cảm biến Các chân này dùng để cấp nguồn cho các thiết bị bên ngoài như role, cảm biến, RC servo,…trên khu vực này có sẵn các chân GND (chân nối đất, chân âm), chân 5V, chân 3.3V như được thể hiện ở hình 2. Nhờ những chân này mà người sử dụng không cần thiết bị biến đổi điện khi cấp nguồn cho cảm biến, role, rc servo,… Ngoài ra trên khu vực này còn có chân Vin và chân reset, chân IOREF. Tuy nhiên các chân này thường ít được sử dụng nên trong tài liệu này xin không đi sâu về nó. 12. Các linh kiện khác trên board Arduino Uno Ngoài các linh kiện đã liệt kê bên trên, Arduino Uno còn 1 số linh kiện đáng chú ý khác. Trên bo có tất cả 4 đèn led, bao gồm 1

led nguồn (led ON nhằm cho biết boa đã được cấp nguồn), 2 led Tx và Rx, 1 led L. Các led Tx và Rx sẽ nhấp nháy khi có dữ liệu truyền từ board lên máy tính hoặc ngược lại thông qua cổng USB. Led L được được kết nối với chân số 13. Led này được gọi là led on board (tức led trên board), led này giúp người dùng có thể thực hành các bài đơn giản mà không cần dùng thêm led ngoài.

Trong 14 chân ra của board còn có 2 chân 0 và 1 có thể truyền nhận dữ liệu nối tiếp TTL. Có một số ứng dụng cần dùng đến tính năng này, ví dụ như ứng dụng điều khiển mạch Arduino Uno qua điện thoại sử dụng bluetooth HC05. Thêm vào đó, chân 2 và chân 3 cũng được sử dụng cho lập trình ngắt (interrupt), đồng thời còn 1 vài chân khác có thể được sử dụng cho các chức năng khác, như được thể hiện ở hình 3.5.

Thông số kỹ thuật:

Bảng 4.1: Thông số kỹ thuật của mạch Arduino Uno R3

Vi điều khiển ATmega328P

Điện áp hoạt động 5V

Điện áp vào khuyên dùng 7-12V

Điện áp vào giới hạn 6-20V

Digital I/O pin 14 (trong đó 6 pin có khả năng băm xung)

PWM Digital I/O Pins 6

Analog Input Pins 6

Cường độ dòng điện trên mỗi I/O pin 20 mA Cường độ dòng điện trên mỗi 3.3V pin 50 mA

Flash Memory 32 KB (ATmega328P)

0.5 KB được sử dụng bởi bootloader

EEPROM 1KB (ATmega328P)

Tốc độ 16 MHz

Chiều dài 68.6 mm

Chiều rộng 53.4 mm

Trọng lượng 25 g

 Một số lưu ý khi làm việc với Arduino Uno R3:

Mặc dù Arduino có cầu chi tự phục hồi (resettable fuse) bảo về mạch khi xảy ra quá tải, tuy nhiên cầu chì này chỉ được mắc cho cổng USB nhằm tự động ngắt điện khi nguồn vào USB lớn hơn 5V.

Vì vậy, khi thao tác với Arduino, ta cần tính toán cẩn thận để tránh gây hư tổn đến board. Các thao tác sau đây có thể gây hỏng một phần hoặc toàn bộ board Arduino.

- Nối trực tiếp dòng 5V vào GND

Khi nối trực tiếp dòng 5V vào GND mà không qua bất kì một điện trở kháng nào sẽ gây ra hiện tượng đoản mạch và phá hỏng Arduino.

- Cấp nguồn lớn hơn 5V cho bất kì pin I/O nào

Theo tài liệu của nhà sản xuất, với vi điều khiển ATmega328P thì 5V là ngưỡng lớn nhất mà vi điều khiển này có thể chịu được. Nếu bất kì pin nào bị cấp điện áp vượt quá 5V sẽ gây ra hỏng vi điều khiển này.

- Tổng cường độ dòng điện trên các I/O pin vượt quá ngưỡng chịu được

Dựa theo datasheet của vi điều khiển ATmega328P, tổng cường độ dòng điện cấp cho các I/O pin tối đa là 200mA. Vì vậy, ví dụ như trong trường hợp ta ép Arduino cấp nguồn cho hơn 10 đèn LED (mỗi đèn thông thường sẽ cần 20mA) hay dùng trực tiếp các chân I/O cấp nguồn cho động cơ sẽ có thể gây tổn hại đến vi điều khiển.

- Thay đổi các kết nối trong lúc đang vận hành

Khi Arduino đang vận hành, việc thanh đổi các kết nối có thể gây ra sự không ổn định của điện áp dẫn đến hư hỏng Arduino. Vì vậy, trong thực tế làm việc ta nên ngắt nguồn Arduino trước khi thực hiện bất kì các thay đổi nào.

Phần mềm lập trình Arduino IDE

Giới thiệu về phần mềm

Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và Linux. Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm. Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++. Và do ngôn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn có thể nhúng thêm code viết bằng AVR C vào chương trình nếu muốn.

Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng cross-platform (nền tảng) được viết bằng Java, và từ IDE này sẽ được sử dụng cho ngôn ngữ lập trình xử lý (Processing programming language) và project wiring. Nó được thiết kế để dành cho những người mới tập làm quen với lĩnh vực phát triển phần mềm. Nó bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng như compile (biên dịch) và upload chương trình lên board chỉ với 1 cú nhấp chuột. Một chương trình hoặc code viết cho Arduino được gọi là một sketch.

Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring", từ project wiring gốc, có thể giúp các thao tác input/output được dễ dàng hơn. Chỉ cần định nghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy được:

setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt. loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch.

Hình 4.9: Giao diện phần mềm lập trình Arduino IDE

Vào menu Tools → Board → chọn Arduino/GenuinoUNO. Vào menu Tools → Port → chọn cổng Arduino đang kết nối với máy tính. Xác nhận cổng COM của Arduino IDE ở góc dưới cùng bên phải cửa sổ làm việc. Vào menu Tools → Programmer → chọn AVRISP mkII. Bấm tổ hợp phím Ctrl + U để tải chương trình lên mạch Arduino UNO, như ở trên.

Thông số kỹ thuật:

Bảng 4.2: Thông sô kỹ thuật của modul cảm biến quang

Điện áp hoạt động 3,3V – 5V

Một biến trở 10K ohm dùng để điều chỉnh độ nhạy sáng

Tích hợp sẵn bộ so sánh opamp LM393

4 chân tín hiệu - VCC: nguồn +5V

- GND: mass

- A0: tín hiệu ra analog - D0: tín hiệu ra digital

Cách kết nối module cảm biến quang trở với Arduino UNO R3:

Cảm biến này có thể sử dụng kết hợp với Arduino để lập trình bật tắt thay vì mạch Rơ-le.

Chân tín hiệu D0 có thể chọn từ chân số 2 đến 13 trên mạch arduino.

Chân tín hiệu A0 có thể chọn từ chân A0 đến A5 trên arduino.

2 chân nguồn dc lấy từ nguồn 5V.

Ưu điểm:

- Thiết kế đơn giản, nhỏ gọn. - Độ chính xác cao.

- Sử dụng điện áp 5V tương thích với nền tảng lập trình arduino. - Có thể thay đổi được độ nhạy thông qua biến trở trên module.

4.2.3.4 Mạch giảm áp LM2596

Hình 4.11: Mạch giảm áp LM2596

Điện áp ra có thể điều chỉnh được bằng biến trở. IC LM2596S là IC nguồn xung có chu kì đóng, ngắt lên đến 125 KHz cho hiệu suất làm việc cao.

Mạch giảm áp có một số ưu điểm:

+ Dòng ra đỉnh 3A (có thể gắn tản nhiệt cho IC để tăng dòng đầu ra cực đại) + Điện áp đầu vào dao động từ 3V - 40V

+ Điện áp đầu ra từ 1.23V - 37V

Mạch giảm áp có chức năng tạo ra điện áp nhỏ hơn điện áp đầu vào và luôn duy trì mức áp này mặc dù áp đầu vào tăng, giảm. Ví du: điện áp ra 5V trong khi áp đầu vào là 1 acquy có điện áp từ 10.8V → 13V.

Mạch giảm áp LM2596 sử dụng các tụ thể rắn do Sanyo cung cấp có khả năng lọc nhiễu cao và trữ điện tốt.

 Trong đề tài này chúng tôi dùng mạch LM2596 để giảm áp nguồn 12V của acquy xuống 5V để cấp cho Arduino UNO và các relay hoạt động.

4.2.3.5 Module Relay 1 kênh và 2 kênh

Module relay 1 kênh dùng để điều chỉnh khiển mở tail và đèn led chạy ngày. Module relay 2 kênh dùng để điều khiển mở đèn pha, cốt.

Hình 4.12: Modul relay 1 kênh

Đây là module được thiết kế dựa trên relay SRD để đóng cắt các thiết bị điện áp cao (có thể lên tới 250V) như đèn, quạt... Nó có thể sử dụng trực tiếp tín hiệu điều khiển từ vi điều khiển. Module được thiết kế với cách li quang nhằm đảm bảo an toàn cho mạch điều khiển và giảm nhiễu trong quá trình đóng cắt mạch.

Thông số kỹ thuật:

Bảng 4.3: Thông số modul relay 1 kênh

Kích cỡ module 17mmx43mm

Gồm có 2 Led báo

Led xanh(sáng khi cấp nguồn cho relay)

Led đỏ(sáng khi kích relay)

Gồm có 3 chân tín hiệu vào

- IN: Chân điều khiển module relay. Khi chân này ở mức cao (HIGH) relay ở trạng thái đóng và ngược lại. - GND: nối với cực GND của nguồn cấp.

- VCC: nối với VCC (5VDC) của nguồn cấp (nguồn 5v được.

Có 2 tiếp điểm

-Tiếp điểm thường đóng (hai đầu là NC và COMMON) .

-Tiếp điểm thường mở chân (NO và COMMON) của relay.

Hình 4.13: Module relay 2 kênh

Relay 2 Kênh gồm 2 rơ le hoạt động tại điện áp 5VDC, chịu được hiệu điện thế

lên đến 250VAC 10A. Relay 2 kênh được thiết kế chắc chắn, khả năng cách điện tốt. Trên module đã có sẵn mạch kích relay sử dụng transistor và IC cách ly quang giúp cách ly hoàn toàn mạch điều khiển (vi điều khiển) với rơ le bảo đảm vi điều khiển hoạt động ổn định. Có sẵn header rất tiện dụng khi kết nối với vi điều khiển.

Mạch relay 2 kênh sử dụng chân kịch mức Thấp (0V), khi có tín hiệu 0V vào

chân IN thì relay sẽ nhảy qua thường Hở của Relay. ứng dụng với relay module khá nhiều bao gồm cả điện DC hay AC.

Thông số kỹ thuật

Bảng 4.4: Thông số modul relay 2 kênh

Điện áp hoạt động 5V DC

Dòng tiêu thụ 200mA/1Relay

Tín hiệu kích 5V

Nguồn nuôi 5V DC

Tiếp điểm đóng ngắt max 250VAC-10A hoặc 30VDC-10A

4.2.3.6 Servo Motor

Điều khiển choá đèn cũng tức là điều khiển động cơ Servo. Ta xét cấu tạo và nguyên lý điều khiển của một motor Servo.

Trên mô hình sử dụng Servo loại RC Servo là loại sử dụng vôn kế để xác định vị trí góc quay. Về cấu tạo, động cơ RC Servo chỉ có 3 dây, bao gồm: một dây dương, một dây nối mass, một dây điều khiển.RC Servo cũng là loại điều khiển hồi tiếp vòng kín nhưng nó không sử dụng encoder để xác định vị trí vòng quay như động cơ Servo thường gặp, động cơ RC Servo có cấu tạo cơ bản như sau. Bao gồm:

+ 1. Động cơ DC.

+ 2. Mạch điều khiển. + 3. Biến trở.

+ 4. Bánh răng hộp số.

Hình 4.14: Cấu tạo động cơ RC Servo

Vai trò của biển trở trong động cơ RC Servo có vai trò như một cầu phân áp, khi trục động cơ RC Servo quay làm xoay biển trở, qua đó làm thay đổi giá trị tín

Một phần của tài liệu NGHIÊN CỨU LÝ THUYẾT, THỰC HIỆN MÔ HÌNH HỆ THỐNG CHIẾU SÁNG THÔNG MINH TRÊN Ô TÔ (Trang 83 -83 )

×