THIẾT KẾ VÀ THI CÔNG HỆ THỐNG AUDIO KĨ THUẬT SỐ......................................................................................................................................................................................................................................................................................................................
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA: ĐIỆN – ĐIỆN TỬ BỘ MÔN: ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG AUDIO KĨ THUẬT SỐ GVHD: ThS Nguyễn Trường Duy SVTH: Đỗ Hồng Phúc Hoàng Gia Huy MSSV:13141239 MSSV: 13141112 Tp Hồ Chí Minh – 12/2019 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA: ĐIỆN – ĐIỆN TỬ BỘ MƠN: ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG AUDIO KĨ THUẬT SỐ GVHD: ThS Nguyễn Trường Duy SVTH: Đỗ Hồng Phúc MSSV: 13141239 Hoàng Gia Huy MSSV: 13141112 Tp Hồ Chí Minh – 12/2019 TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o -Tp HCM , ngày tháng 12 năm 2019 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Họ tên sinh viên 2: Chuyên ngành: Hệ đào tạo: Khóa: Đỗ Hồng Phúc Hoàng Gia Huy Kỹ thuật Điện - Điện tử Đại học quy 2013 MSSV: 13141239 MSSV: 13141112 Mã ngành: 01 Mã hệ: Lớp : 13141DT I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG HI-END AUDIO KĨ THUẬT SỐ II NHIỆM VỤ Các số liệu ban đầu: - Sử dụng Raspberry Pi Model B 1.2v để làm music server chạy hệ điều hành Volumio - Tín hiệu số chất lượng cao sử dụng hệ thống file nhạc chuẩn Lossless, Hi-res audio, DSD Rip từ CD, DVD, SACD số mua trực tuyến - Module DAC pifi để làm giải mã âm kĩ thuật số chất lượng cao xuất tín hiệu qua xử lý - Bộ Aduino làm điều khiển module PT2315 làm chỉnh âm sắc cho tín hiệu lấy từ DAC - Bộ khuếch đại công suất dùng chipamp KIA6210 lấy tín hiệu qua xử lý xuất tín hiệu loa - Loa Victor tồn dải T150D dùng để phát âm cho hệ thống Nội dung thực hiện: - Nghiên cứu raspberry, arduino - Tìm hiểu hệ điều hành Volumio - Nghiên cứu kiến thức liên quan đến Audio, chuẩn nhạc( nhạc số & tương tự),thiết kế mạch khuếch đại công suất, thiết kế thùng loa, cách chống nhiễu cho hệ thống âm thanh, kiến thức bao quát cách bố trí hệ thống audio, xử lý phịng nghe (tán âm, tiêu âm, basstrap,vv) - Tìm hiểu module DAC pifi, LCD 16x2, pt2315, cảm biến chạm - Tiến hành thiết kế thành phần ban đầu hệ thống - Tiến hành thiết kế sơ đồ nguyên lý cho module hệ thống - Tiến hành thiết kế PCB cho module - Lập trình kết nối điều khiển - Chạy thử nghiệm hệ thống ii - Cân chỉnh hoàn thiện hệ thống Viết báo cáo Báo cáo đề tài tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 15/09/2019 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 02/12/2019 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Nguyễn Trường Duy CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH iii TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o -Tp HCM, ngày 30 tháng 12 năm 2018 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Đỗ Hồng Phúc Hoàng Gia Huy MSSV: 13141239 MSSV: 13141112 Tên đề tài: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG HI-END AUDIO KĨ THUẬT SỐ Tuần/ngày Tuần (19/8 – 25/8) Tuần (26/8 – 1/9) Tuần (2/9 – 8/9) Tuần (9/9 – 15/9) Tuần (16/9 – 22/9) Tuần 6,7,8,9 (23/9 – 20/10) Tuần 10 (21/10 – 27/10) Tuần 11 (28/10 – 3/11) Tuần 12 (4/11 – 10/11) Tuần 13,14 (11/11 – 24/11) Tuần 15 (25/11 – 1/12) Tuần 16,17 (2/12 – 15/12) Tuần 18 (16/12 – 20/12) Nội dung Xác nhận GVHD Gặp giáo viên hướng dẫn, nhận đề tài đồ án tốt nghiệp Tìm tài liệu phục vụ cho nghiên cứu thực đề tài, viết đề cương đồ án tốt nghiệp Thiết kế sơ đồ khối, tìm tài liệu, nghiên cứu đề tài Cài đặt công cụ hỗ trợ lập trình điều khiển để thực đề tài Cài đặt phần mềm, cấu hình volumio raspi3, tìm nguồn nhạc số demo, làm mạch demo module PT2315 Lập trình điều khiển Module PT2315, điều chỉnh tăng giảm volume, bass, treble Arduino Uno Tiến hành vẽ mạch KIA6210, mạch nguồn 12v cho KIA6210, mạch nút nhấn phím cảm ứng, mạch hoàn thiện module Arduino + PT2315 + connector (audio processor) hồn chỉnh Tiến hành thi cơng module nguồn, module audio processor, module nút nhấn, đặt mạch in lớp cho module KIA6210 Tiến hành kết nối module vào hệ thống, test chạy thử tất hệ thống Có lỗi phát sinh hệ thống nên phải tiến hành tìm lỗi khắc phục lỗi kèm tinh chỉnh hệ thống Lấy kết thực nghiệm viết đề cương cho báo cáo Viết báo cáo tốt nghiệp Chỉnh sửa, kiểm tra lần cuối nộp báo cáo iii Báo cáo đồ án tốt nghiệp Tuần 19 (21/12 – 26/12) GV HƯỚNG DẪN (Ký ghi rõ họ tên) iv LỜI CAM ĐOAN Đề tài nhóm đồ án tự thực dựa vào số tài liệu cơng trình nghiên cứu, khơng chép từ tài liệu hay cơng trình có trước Nếu có chép nhóm đồ án hồn tồn chịu trách nhiệm Tp Hồ Chí Minh, ngày 09 tháng 12 năm 2019 Người thực đề tài Đỗ Hồng Phúc Hoàng Gia Huy iv LỜI CẢM ƠN “Uống nước nhớ nguồn, ăn nhớ kẻ trồng cây” truyền thống mang giá trị nhân văn vô quý báu mà từ xưa đến ông cha ta dạy gìn giữ tận ngày hơm Chính lẽ mà nhóm nghiên cứu ln ln vơ tỏ lịng biết ơn chân thành đến tất người giúp đỡ nhóm tận tình thời gian qua để hồn thành tốt đề tài đồ án tốt nghiệp “Thiết kế thi công hệ thống Hi-end audio kĩ thuật số” Và điều vô đặc biệt mà không nhắc đến hướng dẫn vơ tận tình Thầy ThS.Nguyễn Trường Duy Thầy Cô môn Điện Tử Công Nghiệp – Y Sinh giúp đỡ nhiệt tình nhóm suốt q trình nghiên cứu hoàn thành đề tài giao Quả với câu “Khơng Thầy đố mày làm nên” Vì thế, lời báo cáo đồ án tốt nghiệp này, Nhóm muốn dành lời cảm ơn chân thành sâu sắc đến Thầy ThS.Nguyễn Trường Duy Thầy Cô môn Điện Tử Công Nghiệp – Y Sinh Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chính Minh Đồng thời nhóm nghiên cứu thể biết ơn bạn lớp góp ý kiến xây dựng đề tài hồn thiện Khơng thể qn được, nhóm nghiên cứu xin gửi lời cảm ơn đến đấng sinh thành dưỡng dục hỗ trợ, động viên niềm động lực lớn lao để nhóm hồn thành tốt đề tài Mặc dù cố gắng nhiều, nhóm khó tránh khỏi lúc làm Thầy Cơ, bạn phiền lịng Kính mong q Thầy Cơ, bạn lượng thứ bỏ qua Với vốn kiến thức hạn hẹp kinh nghiệm sống ỏi chắn báo cáo có sai lầm thiếu sót Nhóm nghiên cứu làm thứ lỗi mong nhận dạy, đóng góp vơ q báu q Thầy bạn để nhóm hoàn thiện tốt đề tài Một lần nữa, xin chân thành cảm ơn! Người thực đề tài Đỗ Hồng Phúc Hoàng Gia Huy v MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iii Cam đoan iv Lời cảm ơn v Mục lục vi Liệt kê hình vẽ ix Liệt kê bảng vẽ …………………………………………………………………… xi Tóm tắt xii CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Nội dung nghiên cứu 1.3.1 Kết nối thiết bị 1.3.2 Tiến hành xử lý ban đầu 1.3.3 Tiến hành thiết kế 1.3.4 Thi công kết nối thiết bị 1.3.5 Hoàn thiện sản phẩm 1.3.6 Viết báo cáo 1.4 Giới hạn 1.5 Bố cục CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu hệ thống Hi-end Audio kĩ thuật số 2.1.1 Giới thiệu chung 2.1.2 Các khái niệm lĩnh vực Audio 2.1.3 Các chuẩn âm Audio 16 2.1.4 Các kiến thức xử lý âm học phòng nghe 27 2.2 Hệ điều hành Volumio khái niệm Music Server 30 2.2.1 Hệ điều hành Volumio 30 2.2.2 Ngôn ngữ Python 32 2.2.3 Music Server 34 2.2.4 Lý thuyết thùng loa 37 2.2.5 Âm Hi-End 44 2.3 Giới thiệu phần cứng 45 2.3.1 Raspberry Pi Model B V1.2 45 2.3.2 Module DAC Pifi V2.0 48 2.3.3 LCD 16x2 49 2.3.4 Module I2C 51 2.3.5 Arduino Uno 53 2.3.6 IC Audio Processor PT2315 55 2.3.7 Module cảm biến chạm TTP223 58 2.3.8 IC khuếch đại âm tần KIA6210 59 2.3.9 Loa toàn dải 12cm 61 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 62 3.1 Giới thiệu 62 3.2 Tính tốn thiết kế hệ thống 63 3.2.1 Thiết kế sơ đồ khối hệ thống 63 3.2.2 Tính tốn thiết kế hệ thống 65 3.2.2.a Khối nguồn phát giải mã 66 3.2.2.b Khối tiền khuếch đại 68 3.2.2.c Khối khuếch đại công suất 79 3.2.2.d Khối nguồn 83 3.2.2.e CNC vỏ hoàn thiện 85 3.6 Thiết kế thùng loa toàn dải 12cm 86 CHƯƠNG THI CÔNG HỆ THỐNG 89 4.1 Giới thiệu 89 4.2 Thi công hệ thống 89 4.2.1 Tiến hành vẽ PCB thi công mạch nguồn 13VDC 89 4.2.2 Tiến hành vẽ PCB mạch tiền khuếch đại 91 4.2.3 Tiến hành vẽ PCB mạch khuếch đại 92 4.2.4 Tiến hành kết nối module hệ thống 94 4.3 Đóng khung thành phẩm 97 4.4 Lập trình hệ thống 98 ii CHƯƠNG : KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ bị ù phần khúc nhạc có tiếng trống Dump 5.1.2 Điều chỉnh phù hợp cho thể loại nhạc Do khả cảm thụ âm nhạc người nghe khác Nên việc sử dụng mạch tiền khuếch đại điều chỉnh âm sắc sở thích cá nhân người dùng Với nhóm nghiên cứu, việc chế tạo thiết bị âm Hi-end hướng đến thiết bị chất lượng cao với linh kiện tốt, độ ổn định tính trung thực hát nên nhóm giữ nguyên nhạc âm chân thật nghe 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ CHUNG Dựa vào kết Demo hệ thống, đề tài nghiên cứu hướng đến việc chế tạo thiết bị âm chất lượng cao giá thành rẻ so với hãng mang lại chất âm Hi-end cho người sử dụng Ngoài cơng nghệ Audio tích hợp tất thiết bị wifi, airplay, music server, DAC, nhạc số chất lượng cao giúp giảm chi phí mua phương tiện chơi nhạc đĩa CD, đĩa than hay băng cối Tuy nhiên, nhóm đồ án chế tạo thiết bị mức tạm chấp nhận thiết bị Hi-end Audio, linh kiện loa chưa phải chất lượng cao Khả chơi nhạc số hạn chế giải mã DAC mức nhạc số PCM 32bit cao nhất, giải mã nhạc số DSD hạn chế cần có DAC khác hỗ trợ chất lượng cao Ngồi ra, nhóm chưa mua biến áp cách ly cho hệ thống chi phí cao nên việc trải nghiệm hệ thống chưa đạt trạng thái tốt BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 121 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Mục tiêu đề tài chế tạo thiết bị tích hợp cơng nghệ lĩnh vực Audio có khả phát nhạc số chất lượng cao mà thiết bị amply thị trường làm Qua thời gian nghiên cứu thực nhóm chế tạo thiết bị chơi tốt hầu hết loại nhạc số thị trường ngày Hạn chế thiết bị khả giải mã chưa tốt loại nhạc định dạng DSD chiếm thị phần nhạc số thị trường module DAC giải mã có giới hạn khả đọc liệu số cao nhạc 32bit Về khả phối ghép, thiết bị ghép với hầu hết dịng loa phân khúc cơng suất nhỏ độ nhạy cao Nhóm ấn tượng ghép thiết bị với loa toàn dải phát thể loại nhạc không lời nhạc xưa cho chất âm mộc mạc chân thực Trong suốt thời gian nghiên cứu, nhóm thực đồ án học nhiều điều học cách chịu áp lực, cách nghiên cứu vấn đề, khả phân chia công việc lên kế hoạch, đức tính kiên trì lập trình bị lỗi Quả thực, mơi trường Đại Học Sư Phạm Kỹ Thuật tốt việc rèn luyện nhân cách, phương pháp học tập, kinh nghiệm sống chúng người Những điều làm tảng cho việc phát triển cá nhân nhóm sau 6.2 HƯỚNG PHÁT TRIỂN Dựa vào kiến thức tham khảo học hỏi Nhóm nghiên cứu nghĩ đề tài phát triển mở rộng thêm số khía cạnh sau: - Có phát nhạc số DSD nâng cấp giải mã DAC chất lượng cao BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 122 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN - Có thể nâng cấp đồng hóa việc thao tác điều chỉnh âm sắc thơng qua hình chạm điều khiển module Raspberry Pi3 mà không cần phải thêm module vi xử lý cách lập trình nên node.Js hệ điều hành mở Volumio tạo nên plugin cho phép xử lý tín hiệu số - Nâng cấp linh kiện loại tốt hơn, sử dụng biến áp cách ly cho giảm tình trạng nhiễu ổn định nguồn điện lưới cho chất âm nhiều BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 123 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO SÁCH THAM KHẢO [1] Nguyễn Đình Phú, “Giáo trình: Kỹ thuật số ”, Nhà xuất ĐH Quốc Gia, Tp.HCM, 2013 TÀI LIỆU THAO KHẢO [2] Trường Ca Audio, “HIFI gì?”, truongcaaudio.com, Hà Nội, 18/4/2017 [3] Copy 2017, “Chuẩn truyền I2S”, esp32.vn, 2017 [4] Volumio.org, “Tổng quan Volumio OS”, 2019 [5] Volumio Document, “Lập trình Volumio”, volumio.github.io, 2019 [6] Wikibook, “Kiến thức sóng âm”, tieuam.com, 8/2019 [7] Internet, “ Lịch sử phát triển ngành Audio”, stereo.vn, 2015 [8] AudioPsycho, “Kiến thức file nhạc DSD(Hires-audio)”, tinhte.vn, 10/2015 [9] Wikipedia, “Kiến thức network( IP address, Subnet mask, gateway)”, vi.wikipedia.org, 9/2019 [10] Korea Electronic, “Datasheet KIA6210ah”, alldatasheet.com , 2019 [11] ANNGUYEN, “Music Server gì, tìm hiểu Music Server ”, hifivietnam.vn, 3/2019 [12] Nguồn phát “Trải nghiệm A10 - music server Aurender”, stereo.vn, 3/2017 [13] Remk, “Sóng âm kiến thức bản”, www.tieuam.com, 2014 [14] Internet, “ Tìm hiểu lĩnh vực AUDIO”, sonarstudio.vn, 2013 [15] Copy 2016, “Phân biệt khái niệm âm Mono Stereo”, binhminhdigital.com, 2017 [16] Copy 2018, “Tìm hiểu âm Analog Digital ”, loakeoxanh.com 2018 [17] AudioPsycho, “ Âm số - bước phát triển định dạng” , tinhte.vn, 2015 [18] SCIENCE AND TECHNOLOGY, “biến điệu mã xung - pcm ( pulse code modulation)”, 2017 [19] Stereo Wiki, “ Tìm hiểu phân biệt loại củ loa”, stereo.vn, 2017 [20] Copy2019, “Cách đóng thùng loa”, vfun.vn, 2019 BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP- Y SINH 124 TÀI LIỆU THAM KHẢO [21] Nguyễn Thế Anh, “Thông số kĩ thuật loa nỉ Sony treble nỉ Sony ”, linhkienloadai.vn, 2018 [22] Copy 2018, “Cách tính kích thước thùng loa”, thietbiamthanh24h.com, 2018 [23] Maybelle, “Các kiểu thiết kế thùng loa ”, loagom.nanoweb.vn, 2019 [24] Khuyết danh, “Cách chọn điện trở kéo lên bus I2C”, kienltb.wordpress.com, 04/2015 [25] Datasheet, “1 KEY TOUCH PAD DETECTOR IC TTP223-BA6 V2.1”, alldatasheet.com, 11/2009 [26] Datasheet, “2-Channel Audio Processor IC PT2315 V1.2”, alldatasheet.com, 03/2006 [27] Datasheet, “PCF8574 REMOTE 8-BIT I/O EXPANDER FOR I2C BUS”, alldatasheet.com, 07/2001 [28] Huỳnh Bảo Sơn, “Thiết kế thi công hệ thống đếm số lượng cá giống ”, Đồ án tốt nghiệp, trường ĐHSPKT Tp.HCM, 2019 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 125 PHỤ LỤC PHỤ LỤC GIẢI THÍCH CHƯƠNG TRÌNH Khai báo thư viện //KHAI BAO THU VIEN /*Khai bao thu vien dung cho viec giao tiep I2C cua tac gia Nicholas Zambetti*/ #include /*Khai bao thu vien dung cho viec giao tiep I2C voi Module I2C cho Module LCD 1602 cua DFROBOT (www.dfrobot.com).*/ #include Khai báo biến cho việc kết nối nút nhấn và hiển thị lên LCD //Khai bao chan D2, D6, D7 dung cho nut mode, nut down, nut up const int BTN_MODE = 2; const int BTN_DW = 6; const int BTN_UP = 7; //Khai bao bien cho viec dieu khien LCD /*Dia chi giao tiep I2C cua module I2C giao tiep voi LCD la 0x27*/ LiquidCrystal_I2C lcd(0x27,16,2); //Khai bao hang chuoi hien thi hang thu nhat const String CHUOI_HANG_TREN="DATN DTVT"; /*Khai bao bien chuoi hien thi hang thu hai*/ const String CHUOI_MODE[4] ={"Vol: ","Treble: ","Bass: ","Loudness:"}; const String CHUOI_DB ="dB"; const String CHUOI_TREBLE_BASS[]={"-14","-12","-10","-8", "-6 ","-4 ","-2 ","+0 ","+0 ","+2 ","+4 ","+6 ","+8", "+10","+12","+14"}; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 126 PHỤ LỤC Khai báo biến cho việc điều khiển chip PT2315 //Khai bao bien cho viec dieu khien PT2315 /*Dia chi ghi VOLUME, TREBLE, BASS, LOUDNESSFUNCTION -MSB LSB -Volume Control : 0 B2 B1 B0 A2 A1 A0 Speaker ATT L : 0 B1 B0 A2 A1 A0 Speaker ATT R : 1 B1 B0 A2 A1 A0 Bass Control : 1 C3 C2 C1 C0 Treble Control : 1 C3 C2 C1 C0 Loundness Control: * * L * * * L: 0=ON, 1=OFF Doi voi ghi Speaker ATT L va Speaker ATT R: De gia tri lon nhat, khong tac dong.*/ const byte BASS_ADDR = 0x60; const byte TREBLE_ADDR = 0x70; byte loudnessFunction = 0x44; //Mac dinh la loudnessFunction OFF const byte TREBBLE_BASS_ARRAY[16]={0x00,0x01,0x02,0x03, 0x04,0x05,0x06,0x07, 0x0f,0x0e,0x0d,0x0c,0x0b,0x0a, 0x09,0x08}; /*Khai bao hang SPEAKER_R_MAX, SPEAKER_L_MAX Thanh ghi SPEAKER ATTENUATORS nhan gia tri tren ung voi viec am loa trai va loa phai khong bi suy hao (Dua theo datasheet Hien tai an chua co dieu khien tang giam cho SPEAKER ATTENUATORS Do an dung lai o viec dieu chinh volum, treble, bass, loudnessfunction Viec dieu khien SPEAKER ATTENUATORS danh cho huong phat trien an*/ const byte SPEAKER_R_MAX = 0xa0; const byte SPEAKER_L_MAX = 0x80; //Khai bao bien trung gian /*Khi nut nhan duoc tac dong thi bien mode, volume, treble, bass se duoc xu ly Bien volume co gia tri duoc gioi han tu toi 63 o thap phan va tuong ung o dang nhi phan la 0000 0000 toi 0011 1111 Ma ghi VOLUME cua PT2315 nhan gia tri 0000 0000 la gia tri ma am tong duoc khuech dai lon nhat, nen phai lay (63-volume) de xuat ghi VOLUME cua PT2315 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 127 PHỤ LỤC Bien treble, bass la bien trung gian de tro toi mang const byte TREBBLE_BASS_ARRAY[16]={0x00, 0x01,0x02, 0x03, 0x04,0x05, 0x06, 0x07, 0x0f,0x0e, 0x0d, 0x0c,0x0b, 0x0a, 0x09, 0x08}; bien treble, bass se nhan gia tri ban dau la Gioi han cho bien tu toi 15 tuong ung voi ma nhi phan la 0000 0000 toi 0000 1111 Goi ghi TREBLE, BASS cua PT2315 voi cau lenh Wire.write(TREBLE_ADDR | TREBBLE_BASS_ARRAY[treble]); Wire.write(BASS_ADDR | TREBBLE_BASS_ARRAY[bass]); Dia chi cua hai ghi TREBLE, BASS cua PT2315 la: Bass Control : 1 C3 C2 C1 C0 Treble Control : 1 C3 C2 C1 C0 Nen TREBLE_ADDR=0x70 BASS_ADDR =0x60 */ byte mode = 0; byte volume = 32; byte treble = 7; byte bass = 7; const byte DELAY_CHONGDOI = 50; const unsigned int DELAY_THOIGIAN_NHANGIU = 200; Chương trình điều khiển nút mode /*Chuong trinh viet cho nut nhan mode Khi nhan nut mode thi bien mode se thay doi gia tri tu den tuong ung voi che dieu chinh gom dieu chinh volume, treble, bass, functionloudness*/ void nutMode() { if (digitalRead(BTN_MODE) == { delay(DELAY_CHONGDOI); if (digitalRead(BTN_MODE) == 1) { mode++; if(mode>3) mode=0;//gioi han cho bien mode inRaManHinhLCD();/*in gia tri mode man hinh lcd*/ while(digitalRead(BTN_MODE) == 1){} } } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 128 PHỤ LỤC Chương trình điều khiển nút up void nutUp() { if (digitalRead(BTN_UP) == 1) { delay(DELAY_CHONGDOI); if (digitalRead(BTN_UP) == 1) { int demThoiGianNhanUp = 0; { /*Khai bao bien dem so lan delay nhan nut up, vong lap do…while(digitalRead(BTN_UP) == 1); nham muc dich thoi gian nhan nut up nho hon 200*10 ms thi giam don vi/200ms,con thoi gian nhan nut up tu 200*10 ms thi giam don vi/200ms.Con mode=3 va nut up duoc nhan thi bien loudnessFunction=0x40 de bat loudnessFunction*/ //Dem so lan delay 200ms delay(DELAY_THOIGIAN_NHANGIU); demThoiGianNhanUp++; if(demThoiGianNhanUp < 10) { tangGiaTriMotDonVi(); } else { tangGiaTriBaDonVi(); } //Gioi han bien vol, tre, bas gioiHanGiaTri(); /*Vi ham setupForPt2315 va inRaManHinhLCD nam while, nen vua tang bien vua cap nhat gia tri cho pt2315 va LCD lap tuc*/ inRaManHinhLCD(); setupForPt2315(); }while(digitalRead(BTN_UP) == 1); } } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 129 PHỤ LỤC Chương trình điều khiển nút down void nutDown() { if (digitalRead(BTN_DW) == 1) { delay(DELAY_CHONGDOI); if (digitalRead(BTN_DW) == 1) { int demThoiGianNhanDown = 0; { /*Khai bao bien dem so lan delay nhan nut up, vong lap do…while(digitalRead(BTN_UP) == 1); nham muc dich thoi gian nhan nut up nho hon 200*10 ms thi giam don vi/200ms,con thoi gian nhan nut up tu 200*10 ms thi giam don vi/200ms.Con mode=3 va nut up duoc nhan thi bien loudnessFunction=0x40 de bat loudnessFunction*/ //Dem so lan delay 200ms delay(DELAY_THOIGIAN_NHANGIU); demThoiGianNhanDown++; if(demThoiGianNhanDown < { giamGiaTriMotDonVi(); } else { giamGiaTriBaDonVi(); } 10) //Gioi han bien vol, tre, bas gioiHanGiaTri(); /*Vi ham setupForPt2315 va inRaManHinhLCD nam while, nen vua tang bien vua cap nhat gia tri cho pt2315 va LCD lap tuc*/ inRaManHinhLCD(); setupForPt2315(); }while(digitalRead(BTN_DW) == 1); } } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 130 PHỤ LỤC Chương trình giới hạn giá trị cho biến volume, treble, bass void gioiHanGiaTri() { //Gioi han duoi bien vol, tre, bas if(volume15) bass=15; } Các chương trình tăng hoặc giảm biến volume, treble, bass và thay đổi biến loudnessFunction void tangGiaTriMotDonVi() { if(mode==0) volume++; else if(mode==1) treble++; else if(mode==2) bass++; else loudnessFunction=0x40; } void tangGiaTriBaDonVi() { if(mode==0) volume+=3; else if(mode==1) treble+=3; else if(mode==2) bass+=3; else loudnessFunction=0x40; } void giamGiaTriMotDonVi() { if(mode==0) volume ; else if(mode==1) treble ; else if(mode==2) bass ; else loudnessFunction=0x44; } void giamGiaTriBaDonVi() { if(mode==0) volume-=3; else if(mode==1) treble-=3; else if(mode==2) bass-=3; else loudnessFunction=0x44; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 131 PHỤ LỤC Chương trình điều khiển chip PT2315 void setupForPt2315() { //Bat dau viec truyen du lieu toi pt2315 Wire.beginTransmission(0x40); /*Goi byte cho ghi VOLUME cua PT2315 (2 bit cao = 00)*/ Wire.write((byte)(63-volume)); /*Bien treble, bass la bien trung gian de tro toi mang const byte TREBBLE_BASS_ARRAY[16]={0x00,0x01,0x02,0x03, 0x04,0x05,0x06,0x07,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09, 0x08}; Dia chi cua hai ghi TREBLE, BASS cua PT2315 la: Bass Control : 1 C3 C2 C1 C0 Treble Control : 1 C3 C2 C1 C0 Nen TREBLE_ADDR=0x70 BASS_ADDR =0x60 Goi ghi TREBLE, BASS cua PT2315 voi cau lenh Wire.write(TREBLE_ADDR | TREBBLE_BASS_ARRAY[treble]); Wire.write(BASS_ADDR | TREBBLE_BASS_ARRAY[bass]); */ Wire.write(TREBLE_ADDR | TREBBLE_BASS_ARRAY[treble]); Wire.write(BASS_ADDR | TREBBLE_BASS_ARRAY[bass]); /*Thanh ghi LOUDNESSFUNCTION: LOUDNESSFUNCTION : 0 * L * * L=1: OFF LOUDNESSFUNCTION L=0: ON LOUDNESSFUNCTION * : don't care (0, deu duoc) Nen loudnessFunction=0x40 de ON LOUDNESSFUNCTION loudnessFunction=0x44 de OFF LOUDNESSFUNCTION*/ Wire.write(loudnessFunction); /*Viec dieu khien SPEAKER ATTENUATORS danh cho huong phat trien an*/ Wire.write(SPEAKER_R_MAX); Wire.write(SPEAKER_L_MAX); /*Ket thuc viec truyen du lieu tu Arduino sang PT2315*/ Wire.endTransmission(); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 132 PHỤ LỤC Chương trình điều khiển màn hình LCD void inRaManHinhLCD() { /*LCD hang tren hien thi chuoi "DATN DTVT"*/ lcd.setCursor(3,0);//Vi tri bat dau la cot 3, hang for(byte i=0;i