Topic outline

  • Giới thiệu chung môn học Vi điều khiển

    Môn học Vi Điều Khiển (tích hợp 75h)

    Nhóm thực hiện: Ngô Viết Song, Tô Hữu Tuyến, Hoàng Thân, Nguyễn Minh Hải - Tổ Điện Tử - Tự Động Hoá- khoa Đ-ĐT trường CĐCN Huế

    Mục tiêu của môn học: Sau khi học xong môn học này, sinh viên có khả năng:

    - Về kiến thức: Nắm được cơ bản về vi điều khiển Atmega 328. Biết cách cài đặt và sử dụng các phần mềm hỗ trợ: Proteus, Arduino IDE. Biết được ngôn ngữ lập trình C cho vi điều khiển. Biết cách viết 1 chương trình và biên dịch sửa lỗi. Biết cách giao tiếp và hiển thị thông tin lên led đơn, 7 thanh, led matrix, LCD. Hiểu được các chuẩn giao tiếp I2C, SPI, UART . . .Biết cách sử dụng các ngắt ngoài, ngắt thời gian, Hiểu được quá trình chuyển đổi ADC, viết chương trình điều khiển các thiết bị từ xa ... 

    - Về kỹ năng: Sử dụng thành thạo phần mềm Proteus, IDE Arduino 

    - Về năng lực tự chủ và trách nhiệm: Có khả năng làm việc độc lập, nhóm, có khả năng tổng hợp kiến thức. 


    • CHƯƠNG TRÌNH MÔN HỌC 

      (Kèm theo Thông tư số:03/2017/TT-BLĐTBXH ngày 01/03/2017 

      của Bộ trưởng Bộ Lao động – Thương binh và Xã hội) 

      Tên môn học: Vi điều khiển 

      Mã môn học: MĐ06 

      Thời gian thực hiện môn học: 75 giờ;   (Lý thuyết: 15 giờ;  Thực hành, thí nghiệm, thảo luận, bài tập: 58 giờ;   Kiểm tra: 2 giờ) 

      I. Vị trí, tính chất của môn học:  

      - Vị trí: Là học phần thực tập chuyên ngành 

      - Tính chất: Bắt buộc 

      II. Mục tiêu môn học: 

      - Về kiến thức: Nắm được cơ bản về vi điều khiển Atmega 328. Biết cách cài đặt và sử dụng các phần mềm hỗ trợ: Proteus, Arduino IDE. Biết được ngôn ngữ lập trình C cho vi điều khiển. Biết cách viết 1 chương trình và biên dịch sửa lỗi. Biết cách giao tiếp và hiển thị thông tin lên led đơn, 7 thanh, led matrix, LCD. Hiểu được các chuẩn giao tiếp I2C, SPI, UART . . .Biết cách sử dụng các ngắt ngoài, ngắt thời gian, Hiểu được quá trình chuyển đổi ADC, viết chương trình điều khiển các thiết bị từ xa ... 

      - Về kỹ năng: Sử dụng thành thạo phần mềm Proteus, IDE Arduino 

      - Về năng lực tự chủ và trách nhiệm: Có khả năng làm việc độc lập, nhóm, có khả năng tổng hợp kiến thức. 

      III. Nội dung môn học: 

      1. Nội dung tổng quát và phân bổ thời gian: 

      Số TT 

      Tên chương, mục 

      Thời gian (giờ) 

      Tổng số 

      Lý thuyết 

      Thực hành, thí nghiệm, thảo luận,   bài tập 

      Kiểm tra 

      1 

       

       

       

       

       

       

       

       

       

      2 

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      3 

       

       

       

       

       

       

      4 

       

       

       

       

       

       

       

       

       

       

       

       

      5 

       

       

       

       

       

       

       

      6 

       

       

       

       

       

      7 

       

       

       

      8 

       

      Bài 1: Tổng quan vi điều khiển ATmega328 và các công cụ hỗ trợ 

      1.1. Tổng quan về vi điều khiển ATmega328 

      1.2. Các công cụ hỗ trợ - cài đặt phần mềm. 

      1.3. Lập trình C cho vi điều khiển 

      1.4. Cấu trúc chương trình, các hàm cơ bản, cài đặt thư viện với Arduino IDE 

      Bài 2.Lập trình giao tiếp với các thiết bị hiển thị 

      2.1. Lập trình với LED đơn 

      2.1.1 Led đơn tích cực mức thấp 

      2.1.2 Led đơn tích cực mức cao 

      2.1.3. Viết chương trình. 

       

      2.2. Lập trình giao tiếp LED 7 đoạn 

      2.2.1 Cấu trúc Led 7 đoạn 

      2.2.2 Phân loại Led 7 đoạn 

      2.2.3 Phương pháp hiển thị led 7 đoạn – phương pháp quét, phương pháp chốt. 

      2.2.4. Viết chương trình. 

       

      2.3. Lập trình với  LED ma trận 

      2.3.1 Khái niệm 

      2.3.2  Điều khiển dùng HC 595 

      2.3.3 Điều khiển dùng MAX 7219 

      2.3.4. Viết chương trình. 

       

      2.4. Lập trình giao tiếp với LCD 

      2.4.1. Sơ đồ và chức năng LCD 16x2 

      2.4.2  Kết nối LCD với Atmega328 

      2.4.3  Kết nối LCD I2C 

      2.4.4. Viết chương trình 

      Kiểm tra 

      Bài 3 Lập trình giao tiếp với bàn phím 

      3.1 Giao tiếp với 1 nút nhấn, công tắc 

      3.2 Giao tiếp với bàn phím 4x4 

      3.2.1 Sơ đồ cấu tạo bàn phím 4x4 

      3.2.2 Giới thiệu bàn phím Keypad 4x4 

      3.2.3. Viết chương trình 

      Bài 4 Lập trình giao tiếp UART, SPI, I2C 

      4.1 Lập trình giao tiếp UART 

      4.1.1 Giới thiệu chuẩn truyền thông UART 

      4.1.2 Cấu trúc khung truyền và các thành phần tín hiệu 

      4.1.3. Viết chương trình 

      4.2 Lập trình giao tiếp SPI 

      4.2.1 Giới thiệu chuẩn truyền thông SPI 

      4.2.2. Các thành phần cơ bản của chuẩn truyền thông SPI 

      4.3 Lập trình giao tiếp I2C 

      Bài 5 Lập trình sử dụng timer/counter 

      5.1 Timer/counter là gì ? 

      5.2 Phân loại các timer ? 

      5.3 Các thanh ghi cơ bản của Timer/Counter 

      5.4. Ngắt Timer 

      5.5. Viết chương trình 

      Bài 6. Lập trình điều khiển động cơ 

      6.1 PWM là gì ? 

      6.2 Giới thiệu modul cầu H -L298 

      6.3 Ngắt ngoài 

      6.4. Viết chương trình 

      Bài 7. Lập trình giao tiếp ADC 

      7.1 ADC là gì 

      7.2 Các công thức về ADC 

      7.3. Viết chương trình 

      Bài 8 Lập trình điều khiển từ xa - không dây 

      8.1 Điều khiển qua hồng ngoại 

      8.2 Điều khiển qua Bluetooth 

      8.3. Điều khiển qua RF 

      8.4. Điều khiển qua wifi 

      Kiểm tra 

      20 

       

       

       

       

       

       

       

       

      20 

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      5 

       

       

       

       

       

       

      5 

       

       

       

       

       

       

       

       

       

       

       

       

      5 

       

       

       

       

       

       

       

      10 

       

       

       

       

       

      5 

       

       

       

      5 

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      15 

       

       

       

       

       

       

       

       

      15 

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      Cộng 

      75 

      15 

      58 

      3 

      2. Nội dung chi tiết: 

      Bài 1:  Tổng quan vi điều khiển ATmega328 và các công cụ hỗ trợ 

      Thời gian: 20 giờ 

      1. Mục tiêu:  

      - Biết được cấu trúc cơ bản của vi điều khiển Atmega 328. 

      - Biết cách cài đặt và sử dụng các phần mềm hỗ trợ: Proteus, Arduino IDE 

      - Biết cách sử dụng ngôn ngữ C cho vi điều khiển 

      - Biết cách cài đặt các thư viện cho Arduino IDE 

      - Biết các hàm cơ bản của IDE 

      - Rèn luyện tính cẩn thân, an toàn. 

      2. Nội dung chương: 

      1.1 Tổng quan về atmega328 

      1.1.1. Sơ đồ và chức năng các Pin của atmega 328 

      1.1.2. Cấu trúc 

      1.1.3 Giới thiệu các ngắt, phân loại ngắt 

      1.2. Các công cụ hỗ trợ - cài đặt phần mềm. 

      1.2.1 Proteus 

      1.2.2 Phần mềm Arduino IDE 

      1.3. Lập trình C cho vi điều khiển 

      1.3.1 Các kiểu dữ liệu 

      1.3.2 Khai báo biến, hằng. 

      1.3.3  Các câu lệnh có cấu trúc 

      + Câu lệnh điều kiện If  

      + Câu lệnh lặp For 

      + Câu lệnh lặp While 

      + Câu lệnh lặp do ... while 

      + Câu lệnh lựa chọn Switch ... Case 

      1.4. Cấu trúc chương trình, các hàm cơ bản, cài đặt thư viện của Arduino IDE 

      Bài 2.Lập trình giao tiếp với các thiết bị hiển thị 

      Thời gian: 20 giờ 

      1. Mục tiêu:  

      - Biết giao tiếp vi điều khiển với các thiết bị ngoại vi hiển thị như: led đơn, led 7 đoạn, led ma trận, LCD 

      - Hiển thị thông tin lên các thiết bị ngoại vi 

      - Rèn luyện tính cẩn thân, an toàn. 

      2. Nội dung chương: 

      2.1. Lập trình với LED đơn. 

      2.1.1 Giao tiếp led đơn tích cực mức thấp. 

      2.1.2 Giao tiếp led đơn tích cực mức cao. 

      2.1.3 Viết chương trình làm led sáng tắt với khoản thời gian sáng tắt khác nhau 

      2.2. Lập trình giao tiếp LED 7 đoạn 

      2.2.1 Cấu trúc Led 7 đoạn 

      2.2.2 Phân loại Led 7 đoạn, tạo mã cho Led 7 đoạn 

      2.2.3 Phương pháp hiển thị led 7 đoạn – phương pháp quét, phương pháp chốt. 

      2.2.4 Viết chương trình hiển thị thông tin lên Led 7 đoạn 

      Bài tập 1: Viết chương trình hiển thị các số từ 0->9 lên trên led 7 đoạn. 

      Bài tập 2: Viết chương trình hiển thị các số từ 00->99 lên 2 led 7 đoạn. 

      2.3. Lập trình với  LED ma trận 

      2.3.1  Khái niệm. 

      2.3.2  Điều khiển dùng HC 595 

      2.3.3  Điều khiển dùng MAX 7219 

      2.3.4. Viết chương trình hiển thị thông tin lên led ma trận 

               Bài tập: Viết chương trình hiển thị các số từ “0->9” lên led ma trận 8x8 

      2.4. Lập trình giao tiếp với LCD 

      2.4.1. Khái niệm  

      2.4.2 Phân loại LCD 

      2.4.3. Sơ đồ chân và chức năng các chân của LCD (16x2), LCD (20x4) 

      2.4.4. Kết nối LCD với Atmega328 

      2.4.5 Viết chương trình hiển thị thông tin lên LCD 

        Bài tập: Viết chương trình Xuất dòng chữ " CÁC SỐ TỪ 0-9" ở hàng 0 cột 1. Hiển thị tuần tự các số từ 0->9 ở hàng 1 cột 7 

      Kiểm tra 

      Bài 3 Lập trình giao tiếp với bàn phím 

      Thời gian: 5 giờ 

      1. Mục tiêu:  

      - Biết cách giao tiếp nút nhấn, công tác, bàn phím với atmega 328. 

      - Hiểu được cấu tạo của bàn phím keypad 4x4 

      - Rèn luyện tính cẩn thân, an toàn. 

      2. Nội dung chương: 

      3.1 Giao tiếp với 1 nút nhấn, công tắc 

      3.2 Giao tiếp với bàn phím 4x4 

      3.2.1 Sơ đồ cấu tạo bàn phím 4x4 

      3.2.2 Giới thiệu bàn phím Keypad 4x4 

      3.2.3 Viết chương trình điều khiển xử dụng bàn phím keypad 4x4 

      Bài tập: Viết chương trình hiển thị các phím được nhấn từ KEYPAD lên LCD 

      Bài 4 Lập trình giao tiếp UART, SPI, I2C 

      Thời gian: 5 giờ 

      1. Mục tiêu:  

      - Hiểu được các chuẩn truyền thông UART, SPI, I2C 

      - Biết được cấu trúc truyền/ nhận dữ liệu của các chuẩn UART, SPI, I2C 

      - Rèn luyện tính cẩn thân, an toàn. 

      2. Nội dung chương: 

      4.1 Lập trình giao tiếp UART 

      4.1.1 Giới thiệu chuẩn truyền thông UART 

      4.1.2 Cấu trúc khung truyền và các thành phần tín hiệu 

      4.2 Lập trình giao tiếp SPI 

      4.2.1 Giới thiệu chuẩn truyền thông SPI 

      4.2.2. Các thành phần cơ bản của chuẩn truyền thông SPI 

      4.3 Lập trình giao tiếp I2C 

      4.4 Viết chương trình 

      Bài tập: Viết chương trình : Xuất dữ liệu từ máy tính ra cổng UART để điều khiển board  

      ATmega328 làm sáng tắt 1 led đơn (Xuất ""B"" là bật Led sáng, xuất ""T"" tắt led)" 

      Bài 5 Lập trình sử dụng timer/counter 

      Thời gian: 5 giờ 

      1. Mục tiêu:  

      - Biết được số lượng timer/ counter. 

      - Biết được cấu trúc của các thanh ghi cơ bản của các timer/counter 

      - Biết được ứng dụng của timer/counter. 

      - Hiểu được ngắt dùng timer 

      - Rèn luyện tính cẩn thân, an toàn. 

      2. Nội dung chương: 

      5.1 Timer/counter là gì ? 

      5.2 Phân loại các timer ? 

      5.3 Các thanh ghi cơ bản của Timer/Counter 

      5.4. Ngắt Timer 

      5.5 Viết chương trình ứng dụng: 

      Bài tập: Viết chương trình đọc giá trị cảm biến DHT11 lên LCD (Cảm biến mưa, cảm biến độ ẩm, cảm biến PH). Cứ sau 1s thì cập nhật giá trị lên LCD 

       

      Bài 6. Lập trình điều khiển động cơ 

      Thời gian: 10 giờ 

      1. Mục tiêu:  

      - Điều khiển động cơ dừng, chạy thuận, chạy ngược. 

      - Thay đổi tốc độ động cơ. 

      - Biết sử dụng ngắt ngoài để điều khiển. 

      - Rèn luyện tính cẩn thân, an toàn. 

      2. Nội dung chương: 

      6.1 PWM là gì ? 

      6.2 Giới thiệu modul cầu H -L298 

      6.3 Ngắt ngoài. 

      6.4 Viết chương trình điều khiển động cơ 

      "Bài tâp 1: Viết chương trình điều khiển tốc độ động cơ DC, cứ sau 10s thì tốc độ giảm 10% . 

      Bài tâp 2: Viết chương trình điều khiển động cơ chạy thuận, chạy ngược với tốc độ khác nhau sử dụng cầu H - L298. 

      Bài tập 3: Viết chương hiển thị tốc độ động cơ lên LCD." 

      Bài 7. Lập trình giao tiếp ADC 

      Thời gian: 5 giờ 

      1. Mục tiêu:  

      - Hiểu được quá trình ADC. 

      - Biết được các công thức chuyển đổi ADC. 

      - Viết được chương trình có sử dụng ADC như Biến trở, cảm biến. 

      - Rèn luyện tính cẩn thân, an toàn. 

      2. Nội dung chương: 

      7.1 ADC là gì 

      7.2 Các công thức về ADC. 

      7.3 Viết chương trình 

      Bài tập. Viết chương trình đọc và đo nhiệt độ môi trường bằng cảm biến LM35. Hiển thị kết quả lên LCD. Nếu nhiệt độ >35 độ thì bật sáng đèn led và ngược lại.  

      Bài 8 Lập trình điều khiển từ xa - không dây 

      Thời gian: 5 giờ 

      1. Mục tiêu:  

      - Biết cách đọc mã của 1 phím nhấn trên remote hồng ngoại và điều khiển thiết bị 

      - Hiểu cách kết nối điện thoại với modul HC05 với Atmega328 

      - Tìm hiểu modul RF 2.4Ghz 

      - Tìm hiểu modul ESP8266, NodeMHU, Internet Shiled 

      - Rèn luyện tính cẩn thân, an toàn. 

      2. Nội dung chương: 

      8.1 Điều khiển qua hồng ngoại 

      8.2 Điều khiển qua Bluetooth 

      8.3. Điều khiển qua RF 

      8.4. Điều khiển qua wifi 

      8.5. Viết chương trình. 

      Bài  tập 1. Viết chương trình nhấn nút remote hồng ngoại để điều khiển đóng ngắt quạt điện 

      Bài tập 2: Kết nối modul HC05 với atmega 328, sử dụng app Bluetooth để điều kiển xe đóng mở 1 bóng đèn. 

      Bài tập 3: Sử dụng modul RF 2.4Gz thu và phát để điều khiển nhấn 1 nút nhấn sẽ đóng hoặc ngắt thiết bị. 

      Bài tập 4: Sử dụng app blynk kết hợp với modul NodeMHU để điều khiển đóng mở 1 bóng đèn từ xa. 

       

      IV. Điều kiện thực hiện môn học: 

      1. Phòng học chuyên môn hóa/nhà xưởng: Phòng thực hành 

      2. Trang thiết bị máy móc: Máy tính, máy chiếu, bảng đen 

      3. Học liệu, dụng cụ, nguyên vật liệu: Các board thực hành: Board Arduino Uno (nano), cáp, các thiết bị ngoại vi: LCD, Led đơn, led 7 đoạn, LCD, board Bluetooth HC05, cảm biến DHT11, cảm biến mưa, cảm biến siêu âm, LM35, board RF, NodeMHU, board hồng ngoại, cầu LM298, độc cơ DC 12V, 5V... 

      4. Các điều kiện khác: Internet, board đồng, mỏ hàn, linh kiện rời . . . 

      V. Nội dung và phương pháp, đánh giá:  

      1. Nội dung: Sự vận dụng các kiến thức để viết chương trình gồm thiết kế, mô phỏng, biên dịch sửa lỗi và nạp chương trình 

      - Kiến thức: Nắm được cấu trúc chương trình, giao tiếp với thiết bị ngoại vi, viết chương trình. 

      - Kỹ năng: Sữa lỗi, kết nối thiết bị ngoại vi, nạp chương trình, đọc datasheet, tìm kiếm thông tin, thư viện 

      - Năng lực tự chủ và trách nhiệm: có khả năng làm việc độc lập, nhóm, làm việc an toàn cho thiết bị và con người 

      2. Phương pháp: Thuyết trình, vấn đáp, học them nhóm, học theo dự án  

      VI. Hướng dẫn thực hiện môn học: 

      1. Phạm vi áp dụng môn học: Dùng cho sinh viên các ngành Điện - Điện tử 

      2. Hướng dẫn về phương pháp giảng dạy, học tập môn học: 

      - Đối với giáo viên, giảng viên: Dạy học tích cực, phát huy tính chủ động của sinh viên 

      - Đối với người học: Tích cực tìm kiến thức, tích cực làm việc nhóm, dự án 

      3. Những trọng tâm cần chú ý: Kỹ năng lập trình, Giải thuật điều khiển, biên dịch và sửa lỗi 

      4. Tài liệu tham khảo: 

      - Datasheet atmega 328 

      http://arduino.vn/reference 

      www.arduino.cc 

      http://mlab.vn/10609-hoc-arduino-bai-2-nhung-dieu-co-ban-ve-arduino.html 

       

      5. Ghi chú và giải thích (nếu có): 


  • Bài 2: Lập trình Giao tiếp với các thiết bị hiển thị

  • Lập trình giao tiếp với nút nhấn

  • Lập Trình Điều Khiển Động Cơ

  • Lập trình giao tiếp ADC

  • Topic 5