Bài tiểu luận môn thực hành cơ sở (1)

16 4 0
Bài tiểu luận môn thực hành cơ sở (1)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÀI TẬP LỚN MƠN HỌC: THỰC HÀNH CƠ SỞ NHĨM MƠN HỌC:01 Đề tài: Đếm số người vào – hiển thị lên LCD 128x64 Giảng viên: Nguyễn Đức Việt Sinh viên: Mã số sinh viên: Nguyễn Đình Tới B19DCDT199 Trần Huỳnh Anh Đức B19DCDT063 Mai Văn Khoái B19DCDT123 Nguyễn Thành Liêm B19DCDT128 Đỗ Văn Đồng B19DCDT055 Hà Nội 2022 PHẦN I CÁC LINH KIỆN ĐƯỢC SỬ DỤNG STT Tên linh kiện Adruino UNO R3 Cảm biến hồng ngoại E18-D80NK LCD128x64 Dây cắm Board test *Ngoài cịn chuẩn bị thêm: - Kìm - Keo dán -… Phần II Tìm hiểu linh kiện sử dụng Giới thiệu Arduino uno: Arduino Uno bảng mạch vi điều khiển nguồn mở dựa vi điều khiển Microchip ATmega328 phát triển Arduino.cc Bảng mạch trang bị chân đầu vào/ đầu Digital Analog giao tiếp với bảng mạch mở rộng khác Mạch Arduino Uno thích hợp cho bạn tiếp cận đam mê điện tử, lập trình…Dựa tảng mở Arduino.cc cung cấp bạn dễ dàng xây dựng cho dự án nhanh ( lập trình Robot, xe tự hành, điều khiển bật tắt led…) 1.1 Thông số kĩ thuật: 1.2 Power +LED: Có LED tích hợp bảng mạch nối vào chân D13 Khi chân có giá trị mức cao (HIGH) LED sáng LED tắt mức thấp (LOW) +VIN: Chân dùng để cấp nguồn (điện áp cấp từ 7-12VDC) +5V: Điện áp 5V (dòng điện chân tối đa 500mA) Chip điều khiển ATmega328P Điện áp hoạt động 5V Điện áp đầu vào(khuyên dùng) 7-12V Điện áp đầu vào (giới hạn) 6-20V Số chân Digital 14 (of which provide PWM output) Số chân PWM Digital Số chân Analog Dòng điện DC chân I/O 20 mA Dòng điện DC chân 3.3V 50 mA Flash Memory 32 KB (ATmega328P) of which 0.5 KB used by bootloader SRAM KB (ATmega328P) EEPROM KB (ATmega328P) Tốc độ thạch anh 16 MHz LED_BUILTIN 13 Chiều dài 68.6 mm Chiều rộng 53.4 mm Cân nặng 25 g +3V3: Điện áp 3.3V (dòng điện chân tối đa 50mA) +GND: Là chân mang điện cực âm board +IOREF: Điệp áp hoạt động vi điều khiển Arduino UNO đọc điện áp chân IOREF Chân IOREF không dùng để làm chân cấp nguồn 1.3 Bộ nhớ -Vi điều khiển ATmega328: +32 KB nhớ Plash: bootloader chiếm 0.5KB +2 KB cho SRAM: (Static Random Access Menory): giá trị biến khai báo lưu Khai báo nhiều biến tốn nhiều nhớ RAM Khi nguồn liệu SRAM bị +1 KB cho EEPROM: (Electrically Eraseble Programmable Read Only Memory): Là nơi đọc ghi liệu vào không bị liệu nguồn 1.4 Các chân đầu Trên Board Arduino Uno có 14 chân Digital sửdụng để làm chân đầu vào đầu chúng sử dụng hàm pinMode(), digitalWrite(), digitalRead() Giá trị điện áp chân 5V, dòng chân 20mA bên có điện trở kéo lên 20-50 ohm Dịng tối đa chân I/O khơng vượt 40mA để tránh trường hợp gây hỏng board mạch Ngồi ra, số chân Digital có chức đặt biệt: Serial: (RX) (TX): Được sử dụng để nhận liệu (RX) truyền liệu (TX) TTL Ngắt ngoài: Chân PWM: 3, 5, 6, 11 Cung cấp đầu xung PWM với độ phân giải bit hàm analogWrite () SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Các chân hỗ trợ giao tiếp SPI thư viện SPI LED: Có LED tích hợp bảng mạch nối vào chân D13 Khi chân có giá trị mức cao (HIGH) LED sáng LED tắt mức thấp (LOW) TWI/I2C: A4 (SDA) A5 (SCL) hỗ trợ giao tiếp I2C/TWI với thiết bị khác Ứng dụng Arduino uno: +Arduino có nhiều ứng dụng đời sống, việc chế tạo thiết bị điện tử chất lượng cao Một số ứng dụng kể đến như: +Lập trình robot: Arduino phần quan trọng trung tâm xử lí giúp điều khiển hoạt động robot +Lập trình máy bay khơng người lái Có thể nói ứng dụng có nhiều kì vọng tương lai +Game tương tác: dùng Arduino để tương tác với Joystick, hình,… để chơi trò Tetrix, phá gạch, Mario… nhiều game sáng tạo +Arduino điều khiển thiết bị ánh sáng cảm biến tốt Là phần quan trọng đèn giao thông, hiệu ứng đèn nháy cài đặt làm bật biển quảng cáo +Arduino ứng dụng máy in 3D nhiều ứng dụng khác tùy thuộc vào khả sáng tạo người sử dụng Giới thiệu LCD 128x64 LCD Graphic (gọi tắt GLCD) loại chấm khơng màu loại hình tinh thể lỏng nhỏ dùng để hiển thị tí tự (chữ, số) hình ảnh Nhưng khác với Text LCD, GLCD không chia thành ô để hiển thị mã ASCII khơng có nhớ CGRAM (Character Generation RAM) GLCD 128x64 gồm 128 cột 64 hàng tương ứng có 128x64=8192 chấm (dot) Mỗi chấm tương ứng với bit liệu, cần 8192 bits hay 1024 bytes RAM để chứa liệu hiển thị đầy 128x64 GLCD Tùy theo loại chip điều khiển mà nguyên lý hoạt động GLCD khác Chip KS0108 có loại nhớ RAM Vì vậy, liệu ghi vào RAM hiển thị trực tiếp GLCD Mỗi chip KS0108 có 512 bytes RAM tương đương với 4096 chấm nửa (64x64) LCD RAM KS0108 cho phép truy cập theo byte, điều có nghĩa nghĩa lần bạn viết giá trị vào byte RAM GLCD, có chấm nằm cột bị tác động Vì lý này, 64 dịng GLCD thường chia thành pages, page có độ cao bit rộng 128 cột Nếu bạn cần tìm cơng cụ để hiển thị hình ảnh đồ họa rõ nét LCD Graphic lựa chọn đắn 3.Dây cảm biến hông ngoại Cảm biến vật cản hồng ngoại E18-D80NK Adjustable IR Infrared Proximity Sensor loại chất lượng tốt với độ bền độ ổn định cao, cảm biến sử dụng ánh sáng hồng ngoại để xác định vật cản phía trước cảm biến, cảm biến phát tia hống ngoại với dải tần số chuyên biệt cho khả chống nhiễu tốt kể điều khiện ánh sáng trời Cảm biến vật cản hồng ngoại E18-D80NK Adjustable IR Infrared Proximity Sensor chỉnh khoảng cách mong muốn thông qua biến trở cảm biến, cảm biến có ngõ cấu trúc Transistor NPN (sinking sensors) nối điện trở nội 10k lên VCC nên sử dụng mà khơng cần trở kéo lên VCC Thông số ki thuật:  Model: E18-D80NK  Dạng đóng ngắt: Thường mở (NO - Normally Open)  Số dây tín hiệu: dây (2 dây cấp nguồn DC dây tín hiệu)  Nguồn điện cung cấp: 5VDC  Khoảng cách phát hiện: ~ 80cm  Có thể điều chỉnh khoảng cách qua biến trở  Dịng kích ngõ ra: 300mA  Chân tín hiệu ngõ ra: dạng Transistor NPN kéo nội trở 10k lên VCC, có vật cản xuất mức thấp (Low-GND), khơng có vật cản mức cao (High-VCC)  Chất liệu sản phẩm: nhựa  Có led hiển thị ngõ màu đỏ  Kích thước: 18 x 45mm Sơ đồ chân: Màu nâu: VCC, nguồn dương 5VDC Màu xanh dương: GND, nguồn âm 0VDC Màu đen: Chân tín hiệu cấu trúc Transistor NPN kéo trở nội 10k lên VCC Hướng dẫn kết nối: Vì cảm biến kéo trở nội 10k lên VCC nên điện áp mức cao chân tín hiệu (Vout) cảm biến điện áp VCC, có hai trường hợp sau: +Nếu mạch cần giao tiếp sử dụng mức tín hiệu có điện áp với điện áp VCC cảm biến (Ví dụ cảm biến Arduino cấp nguồn chung VCC=5VDC, điện áp giao tiếp Arduino 5VDC Vout cảm biến 5VDC) khơng cần nối trở Rx mà nối trực tiếp chân tín hiệu cảm biến với chân tín hiệu Arduino +Nếu mạch cần giao tiếp sử dụng mức tín hiệu có điện áp khác với điện áp VCC cảm biến (Ví dụ cảm biến cấp VCC=10VDC, điện áp giao tiếp Arduino=5VDC) cần nối thêm trở Rx hình để giá trị Vout=5VDC khơng làm cháy mạch Arduino, giá trị Rx tính theo công thức cầu phân áp là: Rx= (Vout*R1) / (VCC-Vout) = (5*10) / (10-5) = 10k Phần II.Sơ đồ nguyên lý PHẦN II MẠCH MÔ PHỎNG VÀ MẠCH THỰC TẾ Mạch mô Mạch thực tế 10 PHẦN III Code #include "U8glib.h" #define DELAY_TIMEOUT 1500 U8GLIB_ST7920_128X64_1X u8g(13,11,10); int ir_right_pin = 6; int ir_left_pin = 7; int ir_right_state = 0; int ir_left_state = 0; int ir_right_state_last = -1; 11 int ir_left_state_last = -1; int in_counter = 0; int out_counter = 0; bool bWalkIn = false; bool bWalkOut = false; unsigned long tm; // Để hiển thị giá trị số nguyên enum {BufSize=8}; char buf[BufSize]; void draw(void) { // Các lệnh vẽ lên hình lcd u8g.setFont(u8g_font_fub20); u8g.drawStr( 10, 25, "IN"); u8g.drawStr( 65, 25, "OUT"); u8g.setFont(u8g_font_timB24); if( in_counter < 10){ snprintf (buf, BufSize, "00%d", in_counter); } else if( in_counter < 100){ snprintf (buf, BufSize, "0%d", in_counter); } u8g.drawStr( 5, 60, buf); if( out_counter < 10){ snprintf (buf, BufSize, "00%d", out_counter); } else if( out_counter < 100){ snprintf (buf, BufSize, "0%d", out_counter); 12 } u8g.drawStr( 70, 60, buf); u8g.drawLine(60,0,60,63); } void setup(void) { Serial.begin(9600); pinMode( ir_right_pin, INPUT); pinMode( ir_left_pin , INPUT); // Gán giá trị màu mặc định if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { u8g.setColorIndex(255); // white } else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) { u8g.setColorIndex(3); // max intensity } else if ( u8g.getMode() == U8G_MODE_BW ) { u8g.setColorIndex(1); // pixel on } else if ( u8g.getMode() == U8G_MODE_HICOLOR ) { u8g.setHiColorByRGB(255,255,255); } updateLCD(); } void loop(void) { ir_right_state = digitalRead( ir_right_pin ); ir_left_state = digitalRead( ir_left_pin ); 13 Serial.print( ir_left_state ); Serial.print( " " ); Serial.println( ir_right_state ); checkWalkIn(); checkWalkOUT(); } void checkWalkIn(){ if( ir_right_state != ir_right_state_last ){ ir_right_state_last = ir_right_state; if( (bWalkIn == false) && ( ir_right_state == LOW ) ){ bWalkIn = true; tm = millis(); } } if( (millis() - tm) > DELAY_TIMEOUT ){ bWalkIn = false; } if( bWalkIn && (ir_left_state == LOW) && (ir_right_state == HIGH) ){ bWalkIn = false; in_counter++; updateLCD(); } } void checkWalkOUT(){ if( ir_left_state != ir_left_state_last ){ ir_left_state_last = ir_left_state; 14 if( (bWalkOut == false) && ( ir_left_state == LOW ) ){ bWalkOut = true; tm = millis(); } } if( (millis() - tm) > DELAY_TIMEOUT ){ bWalkOut = false; } if( bWalkOut && (ir_right_state == LOW) && (ir_left_state == HIGH) ){ bWalkOut = false; out_counter++; updateLCD(); } } void updateLCD(){ u8g.firstPage(); { draw(); } while( u8g.nextPage() ); } 15 PHẦN IV Nguyên lý hoạt động Cảm biến hồng ngoại E18-D80NK xác định vật cản khoảng 3-80cm Nếu cảm biến nhân tín hiệu = khơng phát vật cản, cảm biến nhân tín hiệu = phát vật cản Khi có người vào cảm biến bên trái nhận tín hiệu bên phải nhận tin hiệu nên số người vào tăng lên hiển thị lcd 128x64 Ngược lại, có người cảm biến bên phải nhận tín hiệu bên trái nhận tin hiệu nên số người tăng lên hiển thị lcd 128x64 16 ... giá trị Rx tính theo cơng thức cầu phân áp là: Rx= (Vout*R1) / (VCC-Vout) = (5*10) / (10-5) = 10k Phần II.Sơ đồ nguyên lý PHẦN II MẠCH MÔ PHỎNG VÀ MẠCH THỰC TẾ Mạch mô Mạch thực tế 10 PHẦN III... có chấm nằm cột bị tác động Vì lý này, 64 dịng GLCD thường chia thành pages, page có độ cao bit rộng 128 cột Nếu bạn cần tìm cơng cụ để hiển thị hình ảnh đồ họa rõ nét LCD Graphic lựa chọn đắn... trình…Dựa tảng mở Arduino.cc cung cấp bạn dễ dàng xây dựng cho dự án nhanh ( lập trình Robot, xe tự hành, điều khiển bật tắt led…) 1.1 Thông số kĩ thuật: 1.2 Power +LED: Có LED tích hợp bảng mạch

Ngày đăng: 24/06/2022, 11:01

Hình ảnh liên quan

Arduino Uno là một bảng mạch vi điều khiển nguồn mở dựa trên vi điều khiển Microchip ATmega328 được phát triển bởi Arduino.cc - Bài tiểu luận môn thực hành cơ sở (1)

rduino.

Uno là một bảng mạch vi điều khiển nguồn mở dựa trên vi điều khiển Microchip ATmega328 được phát triển bởi Arduino.cc Xem tại trang 3 của tài liệu.
+LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13. Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW). - Bài tiểu luận môn thực hành cơ sở (1)

1.

LED được tích hợp trên bảng mạch và được nối vào chân D13. Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW) Xem tại trang 4 của tài liệu.
LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13. Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW). - Bài tiểu luận môn thực hành cơ sở (1)

1.

LED được tích hợp trên bảng mạch và được nối vào chân D13. Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW) Xem tại trang 6 của tài liệu.
LCD Graphic (gọi tắt là GLCD) loại chấm không màu là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị tí tự (chữ, số) hoặc hình ảnh - Bài tiểu luận môn thực hành cơ sở (1)

raphic.

(gọi tắt là GLCD) loại chấm không màu là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị tí tự (chữ, số) hoặc hình ảnh Xem tại trang 7 của tài liệu.
Arduino=5VDC) thì cần nối thêm trở Rx như hình dưới để giá trị của Vout=5VDC không làm cháy mạch Arduino, giá trị của Rx được tính theo công thức cầu phân áp là: Rx=  (Vout*R1) / (VCC-Vout) = (5*10) / (10-5) = 10k. - Bài tiểu luận môn thực hành cơ sở (1)

rduino.

=5VDC) thì cần nối thêm trở Rx như hình dưới để giá trị của Vout=5VDC không làm cháy mạch Arduino, giá trị của Rx được tính theo công thức cầu phân áp là: Rx= (Vout*R1) / (VCC-Vout) = (5*10) / (10-5) = 10k Xem tại trang 9 của tài liệu.

Mục lục

    MẠCH MÔ PHỎNG VÀ MẠCH THỰC TẾ

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan