Đặt vấn đề , chọn đề tài Em đã tìm hiểu nhiều nguồn trên internet và tham khảo ý kiến của thầy giáo hướng dẫn T.s Cao Minh Quyền qua đó em đã đúc kết được một số kiến thức cũng như rút được kinh nghiệm như: Cách thiết kế mạch có thể sử dụng các IC số hoặc vi điều khiển. Các cách thì có ưu nhược điểm riêng. Nếu sử dụng IC số thì không cần đòi hỏi các kiến thức về lập trình. Nhưng mạch cồng kềnh, nhiều linh kiện, mạch layout phức tạp, hệ thống khó phát triển nâng cấp.
Nếu sử dụng vi điều khiển thì mạch nhỏ gọn ít IC, layout đơn giản, hệ thống dễ nâng cấp phát triển,. Nhưng đòi hỏi người thực hiện phải nắm các kiến thức về lập trình cho vi điều khiển. Vì môn học đồ án 2 yêu cầu người thực hiện nắm những kiến thức về các linh kiện điện tử, IC số, các kĩ năng về thi công, thiết kế mạch, những kiến thức chuyên môn, chuyên sâu về thiết kế điều khiển lập trình tự động cho các hệ thống theo quy trình công nghệ. Nên em đã chọn thiết kế mạch đèn giao thông tại ngã 2 với thời gian hiển thị không thay đổi sử dụng vi điều khiển ARDUINO UNO R3.
Mục tiêu và nhiệm vụ nghiên cứu - Mục tiêu : Nghiên cứu và thiết kế hệ thống đèn giao thông sử dụng arduino để điều khiển. - Nhiệm vụ nghiên cứu: Tìm hiểu về hệ thống đèn giao thông và nghiên cứu tìm hiểu về ngôn ngữ lập trình cho vi điều khiển Arduino để hoàn thành hệ thống đèn giao thông sử dụng Arudino Uno R3. Đối tượng nghiên cứu Đối tượng: + Tìm hiểu và nghiên cứu hệ thống đèn giao thông sử dụng Arduino để diều khiển + Các thành phần có trong hệ thống 8 CHƯƠNG 2 :PHÂN TÍCH YÊU CẦU CỦA ĐỀ TÀI VÀ THIẾT KẾ MẠCH 1. Yêu cầu bài toán Đề tài : Thiết kế mạch đèn giao thông tại ngã 2 với thời gian mặc định sử dụng arduino để điều khiển 2.
Giải pháp thiết kế 2. Sơ đồ khối Khối điều khiển Khối hiển thị Khối nguồn Mạch có 3 khối : - Khối nguồn - Khối điều khiển - Khối hiển thị 2. Phân tích chức năng và nhiệm vụ của từng khối a) Khối nguồn Khối nguồn cung cấp dòng điện cho toàn mạch. + Cung cấp nguồn cho Arduino + Cung cấp cho khối hiển thị b) Khối điều khiển 9 Bao gồm arduino uno r3 và ic 74hc595 có nhiệm vụ đọc dữ liệu , xử lý thuật toán và đưa tín hiệu đến khối hiển thị.
c) Khối hiển thị Khối hiển thị có tác dụng hiển thị các tín hiệu từ khối điều khiển bao gồm các led đơn (xanh , đỏ , vàng ) và các led 7 thanh. Sơ đồ nguyên lý Hình 1:Sơ đồ nguyên lý của mạch 4. Nguyên lý hoạt động của mạch Đèn giao thông tại ngã hai có 2 cột đèn, và 2 tuyến. Mỗi cột có 3 đèn, như vậy tất cả có 6 đèn.
Chương trình sẽ điều khiển 6 đèn gồm đèn Đỏ, Vàng, Xanh trên tuyến 1 và đèn Đỏ, Vàng, Xanh trên tuyến 2. 10 Hình 2: Hình ảnh mô phỏng nguyên tắc hoạt động của đèn giao thông Khi cấp nguồn 5V DC cho mạch thì IC 74HC595 nhận được tín hiệu từ Arduino sau đó sẽ dịch dữ liệu và hiển thị số giây đèn tín hiệu trên Led 7 đoạn và Arduino sẽ điều khiển đèn giao thông được hiển thị trên các led đơn Ở đây với chương trình được lập trình sẵn,khi đèn xanh sáng ở tuyến 1 với thời gian đèn xanh sáng 35 s đếm ngược thì tất cả các phương tiện tuyến 1 được di chuyển đồng thời đèn đỏ sẽ sáng ở tuyến 2 với thời gian 40s đếm ngược thì tất cả các phương tiện ở tuyến 2 sẽ ngừng di chuyển.Trong khoảng thời gian 40s đèn đỏ sáng ở tuyến 2 thì hết 35s đèn xanh ở tuyến 1 đèn vàng sẽ sáng trong 5s ở tuyến 1. Hết 40s đèn đỏ ở tuyến 2 thì đèn xanh ở tuyến 2 sẽ sáng với thời gian sáng là 35s đếm ngược, đồng thời đèn đỏ ở tuyến 1 sẽ sáng với thời gian sáng là 40s đếm ngược.Trong khoảng 40s thời gian đèn đỏ sáng ở tuyến 1 thì hết 35s đèn xanh ở tuyến 2, đèn vàng ở tuyến 2 sẽ sáng trong 5s. Để hiểu rõ hơn ta sẽ lập 1 giản đồ thời gian đơn giản như sau : Hình 3: Giản đồ thời gian Nhìn vào bản đồ thời gian ta dễ dàng nhận thấy thời gian hoạt động của các đèn trên mỗi tuyến, mối liên hệ giữa các đèn của 2 tuyến.
Khi tuyến 1 đèn Xanh hoặc Vàng thì tuyến 2 sẽ đèn Đỏ, ngược lại khi tuyến 1, đèn Đỏ thì tuyến 2 sẽ Xanh hoặc Vàng tùy theo thời gian. Thời gian đèn Đỏ = Thời gian đèn Xanh + Thời gian đèn Vàng 11 5. Lựa chọn linh kiện Tên linh kiện Số lượng Arduino Uno R3 1 IC 74hc595 4 Led đơn màu vàng 2 Led đơn màu đỏ 2 Led đơn màu xanh lá 2 Led 7 thanh 4 Điện trở 330 8 Bảng 1: Các linh kiện có trong mạch 5. Giới thiệu arduino uno r3 5.
Khái niệm Arduino UNO R3 là kit Arduino UNO thế hệ thứ 3, với khả năng lập trình cho các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh cho các loại bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C). 12 Hình 4: Hình ảnh Arduino uno r3 5. Các cổng vào ra Hình 5: Các chân vào ra của Arduino Arduino UNO R3 có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA.
Một số chân digital có các chức năng đặc biệt như sau: 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi và nhận dữ liệu TTL Serial. 13 Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này. Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.
LED 13: trên Arduino UNO R3 có 1 đèn LED màu cam (kí hiệu chữ L). Khi bấm nút Reset, đèn LED nhấp nháy để báo hiệu. Nó được nối với chân số 13 khi chân này được sử dụng đèn LED sẽ sáng. Arduino UNO R3 có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 2 10-1) để đọc giá trị điện áp trong khoảng 0V → 5V.
Với chân AREF trên board, có thể đưa vào điện áp tham chiếu khi sử dụng các chân analog. Đặc biệt, Arduino UNO R3 có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác. Chức năng các chân 14 Arduino Tên Ghim Kiểu Chức Năng NANO Pin 15 1 D1 / TX I/O Chân I / O digital, chân TX nối tiếp 2 D0 / RX I/O Chân I / O digital, chân RX nối tiếp 3 RESET INPUT Reset (hoạt đông khi đăt › mức Thấp) 4 GND POWER Chân Nguồn 5 D2 I/O Pin I/O digital 6 D3 I/O Pin I/O digital 7 D4 I/O Pin I/O digital 8 D5 I/O Pin I/O digital 9 D6 I/O Pin I/O digital 10 D7 I/O Pin I/O digital 11 D8 I/O Pin I/O digital 12 D9 I/O Pin I/O digital 13 D10 I/O Pin I/O digital 14 D11 I/O Pin I/O digital 15 D12 I/O Pin I/O digital 16 D13 I/O Pin I/O digital 17 3V3 OUTPUT Đầu ra 3.3 V 18 AREF INPUT Đầu vào điện áp tham chiếu 19 A0 INPUT Kênh đầu vào analog 20 A1 INPUT Kênh đầu vào analog 21 A2 INPUT Kênh đầu vào analog 22 A3 INPUT Kênh đầu vào analog 23 A4 INPUT Kênh đầu vào analog 24 A5 INPUT Kênh đầu vào analog 25 A6 INPUT Kênh đầu vào analog 26 A7 INPUT Kênh đầu vào analog 27 +5V I/O Đầu ra 5V từ bô điều › chỉnh trên bo hoăc › đầu vào 5V từ nguồn bên ngoài 28 RESET INPUT Reset (hoạt đông khi đăt ›mức Thấp) 29 GND POWER Chân Nguồn 30 VIN POWER Chân Nguồn Bảng 2: Chức năng các chân của Arduino UNO R3 Arduino UNO R3 có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi 16 chân là 40mA và có điện trở kéo lên khoảng 20-50k ohms.
Các chân nguồn: Arduino Uno R3 được cấp nguồn 5V qua cáp usb hoặc cấp nguồn ngoài thông qua Adaptor chuyển đổi , với điện áp khuyên dùng là khoảng 6-9V. Có thể cấp nguồn từ máy tính qua cổng usb về.3V là chân dùng để cấp nguồn đầu ra cho các thiết bị chứ không phải chân cấp nguồn vào. Vin(Voltage Input): Dùng để cấp nguồn ngoài cho Arduino Uno, nối dương cực vào chân nà và cực âm vào chân GND. GND(Ground): Cực âm của nguồn điện cấp cho Arduino Uno.
Khi sử dụng các thiết bị sử dụng những nguồn điện riêng biệt thì phải nối các chân này. IOREF: Điện áp hoạt động của Arduino, có mức điện áp là 5V. Không được sử dụng để lấy nguồn từ chân này. RESET: Việc nhấn nút RESET trên mạch arduino tương tự như khi nối chân RESET với GND qua điện trở 10KΩ.
Thông số kỹ thuật 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 32 KB (ATmega328P) Flash Memory 0.5 KB được sử dụng bởi bootloader SRAM 2 KB (ATmega328P) 17 Vi điều khiển ATmega328P EEPROM 1 KB (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 Bảng 3: Thông số kỹ thuật của arduino 5. Lập trình cho Arduino UNO R3 Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án này đã cũng cấp đến cho người dùng một môi trường lập trình Arduino được gọi là Arduino IDE Hình 6: Giao diện lập trình Cấu trúc của một chương trình: Cấu trúc ban đầu của chương trình trong Arduino IDE khá đơn giản, chỉ bao gồm hai hàm setup() và loop(). Khi chương trình bắt đầu chạy, những lệnh trong setup() sẽ được xử lý đầu tiên, ta thường dùng hàm này để khởi tạo trạng thái và giá trị của các biến hay các thông số trong chương trình. 18 Sau khi setup() chạy xong, những lệnh trong loop() được chạy.