Báo cáo đồ án chế tạo oscilloscope bằng arduino có code

29 1.4K 6
Báo cáo đồ án chế tạo oscilloscope bằng arduino có code

Đ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

An oscilloscope, previously called an oscillograph,12 and informally known as a scope or oscope, CRO (for cathoderay oscilloscope), or DSO (for the more modern digital storage oscilloscope), is a type of electronic test instrument that allows observation of varying signal voltages, usually as a twodimensional plot of one or more signals as a function of time. Other signals (such as sound or vibration) can be converted to voltages and displayed.

MỤC LỤC LỜI NĨI ĐẦU Hiện nay, máy sóng thiết bị thiếu sinh viên chuyên ngành kỹ thuật điện tử, máy phục vụ cho việc nghiên cứu đồ án học tập cho sinh viên Bên cạnh đó, máy cơng cụ đắc lực chuyên gia nghiên cứu Công nghệ người làm sản xuất, lắp ráp, sửa chữa thiết bị điện tử viễn thông, công nghệ thông tin… Ngồi ra, máy sóng khơng bị giới hạn giới thiết bị điện tử Với chuyển đổi thích hợp, máy sóng đo đạc tất kiểu tượng vật lý, âm thanh, áp lực khí, áp suất, ánh sáng nhiệt độ… Khoa học công nghệ ngày phát triển, vi điều khiển AVG vi điều khiển PIC ngày thơng dụng hồn thiện hơn, nói xuất Arduino vào năm 2005 Italia mở hướng cho vi điều khiển Sự xuất Arduino hỗ trợ cho người nhiều lập trình thiết kế, người bắt đầu tìm tòi vi điều khiển mà khơng có q nhiều kiến thức, hiểu sâu sắc vật lý điện tử Phần cứng thiết bị tích hợp nhiều chức mã nguồn mở Ngơn ngữ lập trình Java lại vơ dễ sử dụng tương thích với ngôn ngữ C hệ thư viện phong phú chia sẻ miễn phí Chính lý nên Arduino dần phổ biến phát triển ngày mạnh mẽ toàn giới Trên sở kiến thức học môn học: Kỹ thuật vi điều khiển, Điện tử tương tự số…cùng với hiểu biết thiết bị điện tử, chúng em định thực đề tài: “Nghiên cứu, thiết kế mơ hình oscilloscope sóng Arduino sử dụng hình LCD Nokia 5110” với mục đích để tìm hiểu thêm Arduino làm quen với thiết bị điện tử, nâng cao hiểu biết cho thân, quan trọng tạo thiết bị đáp ứng phần nhu cầu công việc học tập, nghiên cứu lĩnh vực điện tử Do kiến thức hạn hẹp nên chắn khơng tránh khỏi thiếu sót hạn chế chúng em mong có góp ý, nhắc nhở từ thầy giáo để hồn thiện đề tài Chúng em xin chân thành cảm ơn thầy giáo ThS Tạ Hùng Cường giúp đỡ chúng em nhiều trình tìm hiểu, thiết kế hồn thành đề tài Nghệ An, ngày….tháng… năm 2017 Sinh viên thực Lê Xuân Tiến Trần Thị Thanh Trâm CHƯƠNG I TỔNG QUAN ARDUINO 1.1 Giới thiệu chung Arduino Arduino biết đến cách rộng rãi Việt Nam, giới q phổ biến Sức mạch chúng ngày chứng tỏ theo thời gian với ứng dụng mở độc đáo chia sẻ rộng rãi Với Arduino bạn ứng dụng vào mạch đơn giản mạch cảm biến ánh sáng bật tắt đèn, mạch điều khiển động cơ…hoặc cao bạn làm sản phẩm máy bay không người lái, máy in 3D… Arduino thực gây sóng gió thị trường người yêu thích chế tạo sản phẩm toàn giớ năm gần đây, gần giống với Apple làm đc thị trường thiết bị di động Số lượng người dùng cực lớn đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học làm cho người sáng tạo chúng phải ngạc nhiên mức độ phổ biến Arduino board mạch vi xử lý dùng để lập trình tương tác với thiết bị phần cứng cảm biến, động cơ, đèn thiết bị khác Đặc điểm bật Arduino môi trường phát triển ứng dụng dễ sử dụng, với ngôn ngữ lập trình học cách nhanh chóng với người am hiểu điện tử lập trình Và điều làm nên tượng Arduino mức giá thấp tính chất nguồn mở từ phần cứng tới phầm mềm Những nhà thiết kế Arduino cố gắng mang đến phương thức dễ dàng, khơng tốn cho người u thích, sinh viên giới chuyên nghiệp để tạo thiết bị có khả tương tác với mơi trường thông qua cảm biến cấu chấp hành Những ví dụ phổ biến cho người yêu thích bắt đầu bao gồm robot đơn giản, điều khiển nhiệt độ phát chuyển động Đi với mơi trường phát triển tích hợp (IDE) chạy máy tính cá nhân thơng thường cho phép người dùng viết chương trình cho Aduino ngôn ngữ C C++ 1.2 Giới thiệu board Arduino Uno R3 Nhắc tới dòng mạch Arduino dùng để lập trình, mà người ta thường nói tới dòng Arduino UNO Hiện dòng mạch phát triển tới hệ thứ (R3) Hình 1.1 Board Arduino Uno Cổng USB: loại cổng giao tiếp để ta upload code từ PC lên vi điều khiển Đồng thời giao tiếp serial để truyền liệu vi điều khiển máy tính - Jack nguồn: để chạy Arduino lấy nguồn từ cổng USB trên, khơng phải lúc cắm với máy tính Lúc ta cần nguồn từ 9V-12V - Có 14 chân vào/ra đánh số thứ tự từ đến 13, ngồi có chân nối đất (GND) chân điện áp tham chiếu (AREF) - Vi điều khiển AVR: xử lí trung tâm tồn bo mạch Với mẫu Arduino khác chip khác Ở Arduino Uno sử dụng ATMega328 1.2.1 Các thông số chi tiết Arduino Uno R3: - Vi điều khiển Điện áp hoạt động Tần số hoạt động 1.2.2 Dòng tiêu thụ Điện áp vào khuyên dùng Điện áp vào giới hạn Số chân Digital I/O Số chân Analog Dòng tối đa chân I/O Dòng tối đa (5V) Dòng tối đa (3.3V) Bộ nhớ flash SRAM EEPROM điều khiển: ATMega328 họ bit 5V DC (chỉ cấp qua cổng USB) 16 MHz Khoảng 30 mA 7V – 12V DC 6V – 20V DC 14 (6 chân hardware PWM) (độ phân giải 10bit) 30 mA V i 500 mA 50 mA 32 KB (ATMega328) với 0.5KB dùng bootloader KB (ATMega328) KB (ATMega328) Hình 1.2 Vi điều khiển board Arduino Hình 1.3 Sơ đồ chân Atmega328 Arduino UNO sử dụng vi điều khiển họ bit AVT Atmega8, Atmega168, Atmega328 Bộ não xử lý tác vụ đơn giản điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, làm trạm đo nhiệt độ - độ ẩm hiển thị lên hình LCD Mạch Arduino UNO R3 với thiết kế tiêu chuẩn sử dụng vi điều khiển Atmega328 Tuy nhiên yêu cầu phần cứng khơng cao giá thành cao sử dụng loại vi điều khiển khác có chức tương đương rẻ Atmega8 ( nhớ flash 8kb) Atmega168 ( nhớ flash 16kb) • Tổng quan chip Atmega328: Atmega328 chíp vi điều khiển sản xuất bời hãng Atmel thuộc họ MegaAVR có sức mạnh hẳn Atmega8 Atmega 328 vi điều khiển bít dựa kiến trúc RISC nhớ chương trình 32KB ISP flash ghi xóa hàng nghìn lần, 1KB EEPROM, nhớ RAM vô lớn giới vi xử lý bít (2KB SRAM) Với 23 chân sử dụng cho kết nối vào i/O, 32 ghi, timer/counter lập trình, có gắt nội ngoại (2 lệnh vector ngắt), giao thức truyền thông nối tiếp USART, SPI, I2C Ngồi sử dụng biến đổi số tương tự 10 bít (ADC/DAC) mở rộng tới kênh, khả lập trình watchdog timer, hoạt động với chế độ nguồn, sử dụng tới kênh điều chế độ rộng xung (PWM), hỗ trợ bootloader Atemega328 có khả hoạt động dải điện áp rộng (1.8V - 5.5V), tốc độ thực thi (thơng lượng) 1MIPS 1MHz Thơng số Atmega328P-PU: + Kiến trúc: AVR 8bit + Xung nhịp lớn nhất: 20Mhz + Bộ nhớ chương trình (FLASH): 32KB + Bộ nhớ EEPROM: 1KB + Bộ nhớ RAM: 2KB + Điện áp hoạt động rộng: 1.8V - 5.5V + Số timer: timer gồm timer 8-bit timer 16-bit + Số kênh xung PWM: kênh (1timer kênh) Ngày vi điều khiển Atmega328 thực sử sử dụng phổ biến từ dự án nhỏ sinh viên, học sinh với giá thành rẻ, xử lý mạnh mẽ, tiêu tốn lượng (chế độ hoạt động: 0.2 mA, chế độ ngủ: 0.1 μA, chế độ tích kiệm: 0.75 μA) hỗ trợ nhiệt tình cộng đồng người dùng AVR Và không nhắc tới thành công Vi điều khiển Atmega328 dự án mã nguồn mở Arduino với modul Adruino Uno (R3), Arduino Nano, Arduino Pro mini sản phẩm dẫn dắt vào giới mã nguồn mở để hồn thành chương trình “nháy mắt” 1.2.3 Nguồn sử dụng: Arduino UNO R3 cấp nguồn 5V thông qua cổng USB cấp nguồn với điện áp khuyên dùng – 12V DC điện áp giới hạn – 20V Nếu cấp nguồn vượt ngưỡng giới hạn hỏng Arduino UNO 1.2.4 Các chân lượng: + GND (Ground): cực âm nguồn điện cấp cho Arduino UNO Khi dùng thiết bị sử dụng nguồn điện riêng biệt chân phải nối với + 5V: cấp điện áp 5V đầu Dòng tối đa cho phép chân 500mA + 3.3V: cấp điện áp 3.3V đầu Dòng tối đa cho phép chân 50mA + Vin (Voltage Input): để cấp nguồn cho Arduino UNO, nối cực dương nguồn với chân cực âm nguồn với chân GND + IOREF: điện áp hoạt động vi điều khiển Arduino UNO đo chân Và dĩ nhiên ln 5V Mặc dù không lấy nguồn 5V từ chân để sử dụng chức cấp nguồn + RESET: việc nhấn nút Reset board để reset vi điều khiển tương đương với việc chân RESET nối với GND qua điện trở 10 kΩ 1.2.5 Bộ nhớ sử dụng: Vi điều khiển Atmega328 tiêu chuẩn sử dụng Arduino uno r3 có: + 32KB nhớ flash: đoạn lệnh lập trình lưu trữ nhớ flash vi điều khiển Thường có khoảng vài KB số dùng cho bootloader cần 20KB nhớ + 2KB cho SRAM (Static Random Acces Memory): giá trị biến khai báo lập trình lưu Khi khai báo nhiều biến cần nhiều nhớ RAM Tuy vậy, thực nhớ RAM lại trở thành thứ cần bận tâm Khi biện, liệu SRAM bị + 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): giống ổ cứng mini – nơi đọc ghi liệu vào mà lo bị cúp điện giống liệu SRAM 1.2.6 Các cổng vào/ra Arduino: Hình 1.4 Các cổng vào/ra Arduino Mạch Arduino UNO có 14 chân digital dùng để đọc xuất tín hiệu Chúng có mức điện áp 0V 5V với dòng vào/ra tối đa chân 40mA Ở chân có điện trở pull-up từ cài đặt vi điều khiển Atmega328 Một số chân digital có chức đặc biệt sau: + chân Serial: (RX) (TX): dùng để gửi (transmit – TX) nhận (receive – RX) liệu TTL Serial Arduino Uno giao tiếp với thiết bị khác thơng qua chân Kết nối bluetooth thường kết nối Serial không dây Nếu không cần giao tiếp Serial khơng nên sử dụng chân không cần thiết + Chân PWM: 3,5,6,9,10 11: cho phép xuất xung PWM với độ phân giải bit (giá trị từ -> tương ứng với 0V -> 5V) hàm analogWrite Nói cách đơn giản điều chỉnh điện áp chân từ mức 0V đến 5V thay cố định mức 0V 5V chân khác + Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngồi chức thơng thường, chân dùng để truyền phát liệu giao thức SPI với thiết bị khác + LED 13: Arduino UNO có đèn led màu cam (ký hiệu L) Khi bấm nút Reset, bạn thếy đèn nhấp nháy để báo hiệu Nó nối với chân số 13 Khi chân người dùng sử dụng, LED sáng Arduino UNO board có chân analog (A0 – A5) cung câó độ phân giải tín hiệu 10 bit (0 -> ) để đọc giá trị điện áp khoảng 0V – 5V Với chân AREF board đưa vào điện áp tham chiếu sử dụng chân analog Tức cấp điện 2.5V vào chân dùng chân analog để đo điện áp khoảng từ 0V – 2.5V với độ phân giải 10 bit Đặc biệt, Arduino UNO có chân A4 (SDA) A5 (SCL) hỗ trợ giao tiếp I2C/TWI với thiết bị khác 1.2.7 Phần cứng Arduino: Arduino tảng phần cứng mã nguồn mở: Các thiết kế phần cứng tham khảo Arduino phân phối dạng Creative CommonsAttribution ShareAlike 2.5 license có sẵn website Arduino Một mạch Arduino bao gồm vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình mở rộng với mạch khác Một khía cạnh quan trọng Arduino kết nối tiêu chuẩn nó, cho phép người dùng kết nối với CPU board với module thêm vào dễ dàng chuyển đổi, gọi shield Vài shield truyền thông với board Arduino trực tiếp thông qua chân khách nhau, nhiều shield định địa thông qua serial bus I²C-nhiều shield xếp chồng sử dụng dạng song song Arduino thức thường sử dụng dòng chip megaAVR, đặc biệt ATmega8, ATmega168, ATmega328, ATmega1280, ATmega2560 Một vài vi xử lý khác sử dụng mạch Aquino tương thích Hầu hết mạch gồm điều chỉnh tuyến tính 5V thạch anh dao động 16 MHz (hoặc cộng hưởng ceramic vài biến thể), vài thiết kế LilyPad chạy MHz bỏ qua điều chỉnh điện áp onboard hạn chế kích cỡ thiết bị Một vi điều khiển Arduino lập trình sẵn với boot loader cho phép đơn giản upload chương trình vào nhớ flash onchip, so với thiết bị khác thường phải cần nạp bên Điều giúp cho việc sử dụng Arduino trực tiếp cách cho phép sử dụng máy tính gốc nạp chương trình Theo nguyên tắc, sử dụng ngăn xếp phần mềm Arduino, tất board lập trình thơng qua kết nối RS-232, cách thức thực lại tùy thuộc vào đời phần cứng Các board Serial Arduino có chứa mạch chuyển đổi RS232 sang TTL Các board Arduino lập trình thơng qua cổng USB, thực thơng qua chip chuyển đổi USB-to-serial FTDI FT232 Vài biến thể, Arduino Mini Boarduino khơng thức, sử dụng board adapter cáp nối USB-to-serial tháo rời được, Bluetooth phương thức khác (Khi sử dụng cơng cụ lập trình vi điều khiển truyền thống thay ArduinoIDE, cơng cụ lập trình AVR ISP tiêu chuẩn sử dụng.) Board Arduino đưa hầu hết chân I/O vi điều khiển để sử dụng cho mạch Diecimila, Duemilanove, Uno đưa 14 chân I/O kỹ thuật số, số tạo xung PWM (điều chế độ rộng xung) chân input analog, sử dụng chân I/O số Những chân thiết kế nằm phía mặt board, thơng qua header 0.10-inch (2.5 mm) Nhiều shield ứng dụng plug-in thương mại hóa Các board Arduino Nano, Arduinocompatible Bare Bones Board Boarduino cung cấp chân header đực mặt board dùng để cắm vào breadboard Có nhiều biến thể Arduino-compatible Arduino-derived Một vài số có chức tương đương với Arduino sử dụng để thay qua lại Nhiều mở rộng cho Arduino thực thiện cách thêm vào driver đầu ra, thường sử dụng trường học để đơn giản hóa cấu trúc 'con rệp' robot nhỏ Những board khác thường tương đương điện có thay đổi hình dạngđơi trì độ tương thích với shield, đơi khơng Vài biến thể sử dụng vi xử lý hoàn toàn khác biệt, với mức độ tương thích khác 1.2.8 Mơi trường lập trình board mạch Arduino: Thiết kế board mạch nhỏ gọn, trang bị nhiều tính thơng dụng mang lại nhiều lợi cho Arduino, nhiên sức mạnh thực Arduino nằm phần mềm Mơi trường lập trình đơn giản dễ sử dụng, ngơn ngữ lập trình Wiring dễ hiểu dựa tảng C/C++ quen thuộc với người làm kỹ thuật Và quan trọng số lượng thư viện code viết sẵn chia sẻ cộng đồng nguồn mở lớn Mơi trường lập trình Arduino IDE chạy ba tảng phổ biến Windows, Macintosh OSX Linux Do có tính chất nguồn mở nên mơi trường lập trình hồn tồn miễn phí mở rộng thêm người dùng có kinh nghiệm Ngơn ngữ lập trình mở rộng thơng qua thư viện C++ Và ngơn ngữ lập trình dựa tảng ngôn ngữ C AVR nên người dùng hồn tồn nhúng thêm code viết AVR C vào chương trình muốn Để lập trình gửi lệnh nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án cung cấp đến cho người dùng mơi trường lập trình Arduino gọi Arduino IDE (Intergrated Development Environment) hình sau: Hình 1.5 Giao diện lập trình cho Arduino Các loại board mạch Arduino 1.2.9 Được phát triển nhiều năm nên có nhiều loại Board Arduino đề xuất Ta tìm hiểu chức Board để lựa chọn cho phù hợp với yêu cầu thiết kế bạn.Tất Board thể hình trên, Board có in tên, bạn ý để khỏi nhầm lẫn Arduino Uno - Đây Board cho người bắt đầu Giá khoảng 200 nghìn, bạn hỏi mua nhiều nơi Bạn mua online hshop đâu.Nó có 14 chân liệu số, cấu hình làm chân lấy tín hiệu vào xuất tín hiệu tùy bạn chân tương tự đầu vào 5V, độ phân giải 1024 mức Tốc độ 16MHz, điện áp vào từ 7~12V, chân số cấp điện áp 5V 1A, bạn điều khiển chân số tiêu tốn 1A Board bị hỏng Kích thước Board khoảng 5,5x7cm - Arduino Micro 10 Hình 1.7 Sơ đồ kết nối rút gọn LCD nokia 5110 với arduino - Kết nối SPI đầy đủ: 15 Hình 1.8 Sơ đồ kết nối đầy đủ LCD nokia 5110 với arduino 1.4 Máy sóng (Oscilloscope) 1.4.1 Giới thiệu chung Máy sóng (Oscilloscope) thiết bị thị dạng sóng, vẽ dạng sóng tín hiệu điện Trong hầu hết ứng dụng, dạng sóng tín hiệu thay đổi theo thời gian: trục dọc (Y) biểu diễn điện áp trục ngang (X) biểu diễn thời gian Cường độ hay độ sáng hiển thị gọi trục Z Đây dạng sóng đơn giản cho ta nhiều điều tín hiệu Máy oscilloscope trông giống tivi nhỏ, có mạng lưới vẽ hình có nhiều núm điều khiển tivi Mặt trước oscilloscope thường có phần điều khiển chia thành phần dọc, ngang Trigger Có điều khiển thiển thị đầu nối đầu vào 1.4.2 Chức Oscilloscope Sau số chức bản: - Nhận dạng, hiển thị dạng sóng tín hiệu ( Xung vng, cưa, hình sin, tín hiệu hình, tín hiệu tiếng…) - Xác định rõ giá trị thời gian mức điện áp đường tín hiệu - Cho phép tính tốn tần số tín hiệu dao động - Nhận thấy “ phần động “ mạch điện biểu diễn tín hiệu - Chỉ thành phần lỗi làm méo tín hiệu - Chỉ tín hiệu dòng chiều hay dòng xoay chiều 16 Chỉ tín hiệu nhiễu có nhiễu thay đổi theo thời gian… Sự hữu ích máy oscilloscope không bị giới hạn giới thiết bị điện tử Với chuyển đổi thích hợp, máy oscilloscope đo đạc tất kiểu tượng Một chuyển đổi thiết bị mà tạo tín hiệu điện đáp ứng lại kích thích vật lý, ví dụ âm thanh, áp lực khí, ánh sáng nhiệt độ Ví dụ microphone chuyển đổi…Một kỹ sư tơ dùng máy oscilloscope để đo đạc rung động Một nghiên cứu sinh y khoa dùng máy oscilloscope để đo đạc sóng não Các khả vô tận 1.4.3 Nguyên lý hoạt động máy Oscilloscope - 1.4.3.1 Phân loại máy Oscilloscope Thiết bị điện tử chia làm loại: tương tự số Thiết bị tương tự làm việc với điện áp biến đổi liên tục, thiết bị số làm việc với số nhị phân rời rạc mà biểu diễn mẫu điện áp Lấy ví dụ, máy quay đĩa thơng thường thiết bị tương tự, máy chơi đĩa compact thiết bị số Các máy Oscilloscope có loại tương tự loại số Máy oscilloscope tương tự làm việc trực tiếp với điện áp đặt vào đo để di chuyển dòng electron ngang qua hình oscolloscope Trái lại, máy oscilloscope số lấy mẫu dạng sóng dùng chuyển đổi tương tự/số (A/D) để chuyển đổi điện áp đo thành thông tin số Sau đó, dùng thơng tin số để tái cấu trúc lại dạng sóng hình Đối với nhiều ứng dụng, máy oscilloscope số máy oscilloscope tương tự dùng Tuy nhiên, loại máy có số đặc tính riêng làm cho thích hợp thích hợp tác vụ riêng Người ta thường thích máy oscilloscope tương quan trọng để hiển thị nhanh chóng tín hiệu thay đổi thời gian thực (hay chúng diễn ra) Các máy oscilloscope số cho phép bạn ghi lại xem kiện mà chúng diễn lần Chúng xử lý liệu dạng sóng số gửi liệu tới máy tính để xử lý Như vậy, chúng lưu trữ liệu dạng sóng số để xem in sau 1.4.3.2 Oscilloscope tương tự Khi bạn nối đầu máy oscilloscope mạch điện, tín hiệu điện áp qua đầu tới hệ thống đọc máy oscilloscope Tùy thuộc vào cách đặt chia thang đo dọc (điều khiển volts/div) suy hao làm giảm điện áp tín hiệu khuếch đại làm tăng điện áp tín hiệu Điện áp đặt vào lái tia làm cho điểm sáng di chuyển (một dòng electron đập vào lớp phosphor bên CRT tạo điểm sáng) Điện áp dương làm cho điện áp lên điện áp âm làm cho điểm sáng xuống 17 Tín hiệu đồng thời tới hệ thống trigger để khởi động hay kích “quét ngang” Quét ngang thuật ngữ việc hệ thống ngang làm cho điểm sáng di chuyển ngang hình Việc kích hệ thống ngang gây thời gian để di chuyển điểm sang ngang hình từ trái sang phải khoảng thời gian xác định Nhiều lần quét thành dãy nhanh làm cho chuyển động điểm sáng hợp thành đường liền nét Ở tốc độ cao hơn, điểm sáng qt ngang hình lên tới 500.000 lần giây Cùng với nhau, việc quét ngang việc lái dọc vạch đồ thị tín hiệu hình Bộ kích khởi cần thiết để ổn định hóa tín hiệu tuần hồn Nó đảm bảo lần quét bắt đầu điểm với tín hiệu tuần hồn, dẫn tới hình ảnh rõ ràng 1.4.3.3 Oscilloscope số Một vài hệ thống mà cấu thành từ máy oscilloscope số tương tự máy oscilloscope tương tự; nhiên, máy oscilloscope số bao gồm thêm hệ thống xử lý số liệu Với hệ thống thêm vào, máy oscilloscope số thu thập số liệu cho tồn dạng sóng sau hiển thị chúng Khi bạn nối dầu máy oscilloscope số vào mạch điện hệ thống dọc điều chỉnh biên độ tín hiệu máy oscilloscope tương tự Tiếp tới, chuyển đổi tương tự /số hệ thống thu thập lấy mẫu tín hiệu thời điểm rời rạc chuyển đổi điện áp tín hiệu điểm thành giá trị số, gọi điểm lấy mẫu Xung lấy mẫu hệ thống ngang quy định ADC lấy mẫu lần Tốc độ mà xung “ticks” gọi tôcs độ lấy mẫu đo số mẫu giây Các điểm mẫu từ ADC lưu trữ nhớ điểm dạng sóng Có nhiều điểm mẫu cấu thành nên điểm dạng sóng Cùng với nhau, điểm dạng sóng cấu thành nên ghi dạng sóng Số điểm sóng dùng để tạo nên ghi dạng sóng gọi độ dài ghi Hệ thơng kích khởi quy định điểm bắt đầu điểm kết thúc ghi Màn hình nhận điểm ghi sau chúng lưu trữ nhớ Tùy thuộc vào khả máy oscilloscope bạn, việc xử lý thêm điểm mẫu tiến hành để làm nâng cao chất lượng hiển thị Bộ tiền kích khởi hữu ích cho phép bạn xem kiện trước điểm kích Về bản, với máy oscilloscope số với máy oscilloscope tương tự, cần điều chỉnh thiết lập dọc, ngang kích khởi để đo đạc 18 CHƯƠNG II NGƠN NGỮ LẬP TRÌNH 2.1 Ngơn ngữ lập trình C/C++ 2.1.1 Tổng quan Ngơn ngữ lập trình (NNLT) C/C++ ngơn ngữ lập trình hướng đối tượng mạnh phổ biến tính mềm dẻo đa Khơng ứng dụng viết C/C++ mà chương trình hệ thống lớn viết hầu hết C/C++ C++ ngơn ngữ lập trình hướng đối tượng phát triển tảng C, khắc phục số nhược điểm ngôn ngữ C mà quan trọng hơn, C++ cung cấp cho người sử dụng (NSD) phương tiện lập trình theo kỹ thuật mới: lập trình hướng đối tượng Đây kỹ thuật lập trình sử dụng hầu hết ngơn ngữ mạnh nay, đặc biệt ngôn ngữ hoạt động môi truờng Windows Microsoft Access, Visual Basic, Visual Foxpro … 2.1.2 Lịch sử phát triển Ngôn ngữ lập trình C Dennis Ritchie nghĩ ơng làm việc AT&T Bell Laboratories vào năm 1972 C ngơn ngữ mạnh có tính linh hoạt, nhanh chóng sử dụng cách rộng rãi, vượt khỏi phạm vi Bell Labs Các lập trình viên khắp nơi bắt đầu sử dụng để viết tất loại chương trình C++ biết đến ngôn ngữ bao trùm lên C Bjarne Stroustrup sáng tác năm 1980 phòng thí nghiệm Bell bang New Jersey, Mỹ Ban đầu ơng đặt tên cho “C with classes” (C với lớp) Tuy nhiên đến năm 1983 ơng đổi tên thành C++, ++ tốn tử tăng thêm C C++ biết đến ngơn ngữ lập trình hướng vật hay hướng đối tượng - OOP (Object Oriented Programming) Bjarne Stroustrup Bell Labs phát triển C++ (mà tên nguyên thủy "C với lớp" suốt thập niên 1980như nâng cao ngôn ngữ C Những bổ sung nâng cao bắt đầu với thêm vào khái niệm lớp, khái niệm hàm ảo, chồng tốn tử, đa kế thừa, tiêu bản, xử lý ngoại lệ Tiêu chuẩn ngôn ngữ C++ thông qua năm 1998 ISO/IEC 14882:1998 Phiên lưu hành phiên C++14, ISO/IEC 14882:2014[1] Hiện tiêu chuẩn ngôn ngữ C++ C++14, phát hành ngày 15/12/2014 (ghi theo định dạng ISO 8601 2014-12-15) Và C++ ngơn ngữ cải tiến từ C 2.1.3 Đặc điểm ngôn ngữ lập trình C/C++ C ngơn ngữ mạnh linh hoạt C sử dụng nhiều dự án khác nhau, viết hệ điều hành, chương trình xử lý văn bản, đồ hoạ, bảng tính, chí chương trình dịch cho ngơn ngữ khác 19 C có sẵn nhiều trình biên dịch (compiler) thư viện viết sẵn khác C ngôn ngữ khả chuyển (portable language) Nghĩa chương trình viết C cho hệ máy tính (ví dụ IBM PC) dịch chạy hệ máy tính khác (chẳng hạn DEC VAX) với sử đổi Tính khả chuyển chuẩn ANSI cho C C gồm số từ khố (keywords) làm tảng để xây dựng các chức ngôn ngữ C ngơn ngữ lập trình theo modul Mã chương trình C (và nên) viết thành thủ tục gọi function Những function sử dụng lại ứng dụng (application) chương trình khác Tuy nhiên C khơng cho phép khai báo hàm hàm C++ bao trùm lên C nên đặc điểm C có C++ Ngồi ra, C++ có số đặc điểm khác như: C++ ngôn ngữ hướng đối tượng C++ ngôn ngữ định kiểu mạnh C++ cung cấp cách truyền tham số tham chiếu cho hàm C++ cung cấp cấu thư viện để người lập trình tự tạo thêm hàm thơng dụng vào thư viện tái sử dụng sau C++ cung cấp chế đa dạng hóa tên hàm toán tử C++ cung cấp class loại cấu trúc đóng gói chung cho liệu lẫn hàm chủ thể bảo vệ cách chặt chẽ 2.1.4 Cấu trúc chương trình C++ (1): Khai báo thư viện (2): [Khai báo nguyên mẫu hàm người dùng] (3): [Các định nghĩa kiểu] (4): [Các định nghĩa Macro] (5): [Các định nghĩa biến, hằng] (6): main ([khai báo tham số]) (7): { (8): Thân hàm main (9): } (10): Các định nghĩa hàm người dùng Giải thích cú pháp: (1): Cú pháp để khai báo thư viện: #include Ví dụ: #include; #include;… (2): Cung cấp tên hàm, kiểu hàm, số đối số kiểu đối số hàm Cú pháp khai báo nguyên mẫu hàm: ([Khai báo đối số]); 20 Ví dụ: int chanle (int x); Trong đó, kiểu hàm int, tên hàm chanle, đối số x kiểu đối số int (3): Định nghĩa kiểu Ngoài kiểu chuẩn cung cấp sẵn ngơn ngữ, người lập trình định nghĩa kiểu từ kiểu có cách sử dụng từ khóa typedef (4): Định nghĩa Macro (5): Các định nghĩa biến, hằng: Các biến định nghĩa trở thành biến toàn cục (6) – (9): Hàm main(): Đây thành phần bắt buộc chương trình C++, thân hàm main sau dấu mở móc { (dòng 7) dấu đóng móc } (dòng 9) (10): Các định nghĩa hàm người dùng: Một định nghĩa hàm bao gồm tiêu đề hàm, thân hàm với cú pháp sau: ([Khai báo đối]) { } 2.2 Phần mềm viết code cho bo mạch Arduino Arduino môi trường phát triển tích hợp mã nguồn mở, cho phép người dùng dễ dàng viết code tải lên bo mạch Môi trường phát triển viết Java dựa ngơn ngữ lập trình xử lý phần mềm mã nguồn mở khác Phần mềm sử dụng với bo mạch Arduino Kể từ tháng năm 2015, Arduino IDE (Integrated Development Editor - mơi trường phát triển tích hợp) tải xuống triệu lần Hiện tại, khơng sử dụng cho bo mạch Arduino Genuido mà hàng trăm cơng ty giới sử dụng để lập trình thiết bị họ, bao gồm thiết bị tương đương, chí hàng giả 21 Hình 2.1 Giao diện phần mềm viết code cho bo mạch Arduino Arduino mơi trường phát triển tích hợp đa tảng, làm việc với điều khiển Arduino để viết, biên dịch tải code lên bo mạch Phần mềm cung cấp hỗ trợ cho loạt bo mạch Arduino Arduino Uno, Nano, Mega, Esplora, Ethernet, Fio, Pro hay Pro Mini LilyPad Arduino Ngôn ngữ phổ quát cho Arduino C C++, phần mềm phù hợp cho lập trình viên quen thuộc với ngôn ngữ Các tính làm bật cú pháp, thụt đầu dòng tự động, làm cho trở thành thay đại cho IDE khác Bọc bên giao diện đồ họa xếp hợp lý, Arduino sở hữu chức để thu hút nhà phát triển Arduino, mở đường đến đầu thành công thông qua mô-đun gỡ lỗi Tất tính lưu trữ bên vài nút bấm, menu, giúp dễ dàng hiểu điều hướng, đặc biệt với lập trình viên 22 chun nghiệp Ngồi ra, việc tích hợp sưu tập ví dụ mẫu giúp cho người lần đầu tiếp xúc với Arduino làm quen nắm bắt ứng dụng nhanh Trong điều kiện kết nối bo mạch Arduino với máy tính cài đặt driver cần thiết, lựa chọn mơ hình để làm việc nhờ sử dụng menu Tools ứng dụng Sau đó, bắt đầu viết chương trình cách sử dụng mơi trường làm việc thoải mái mà Arduino cung cấp Chương trình bao gồm mảng thư viện phong phú EEPROM, Firmata, GSM, Servo, TFT, WiFi, Tất nhiên, thêm vào thư viện riêng Hình 2.2 Thư viện tích hợp phần mềm lập trình Arduino 23 CHƯƠNG 3: THIẾT KẾ MƠ HÌNH HIỆN SĨNG OSCILLOCOPE 3.1 Ý tưởng thiết kế: Trên thực tế máy Oscillocope có giá thành cao tùy vào điều kiện người sử dụng, chúng em muốn vừa học tập nâng cao kiến thức bước đầu thiết kế máy oscillocope đơn giản để bước học tập tạo máy có nhiều ứng dụng tốt Trong đồ án chúng em thiết kế máy oscillocope sóng đơn giản, qua tìm hiểu chúng em sử dụng hình LCD kết nối với vi mạch lập trình Arduino Màn hình LCD Graphic Nokia 5110 loại LCD Graphic đơn sắc với số điểm ảnh 84x48 Pixel sử dụng vô số ứng dụng hiển thị hình ảnh, text, , với ưu điểm giá thành rẻ, nhỏ gọn, tích hợp đèn nền, sử dụng giao tiếp SPI dễ dàng lập trình kết nối với vơ số code mẫu thư viện khác (đặc biệt Arduino) khả tiết kiệm lượng cao, LCD Graphic Nokia 5110 lựa chọn hợp lý để thị dạng sóng đo lấy liệu xử lý thơng qua vi mạch lập trình Arduino 3.2 Kết nghiên cứu: Sau thực đề tài “Thiết kế, chế tạo oscilloscope sóng đo điện áp – V Arduino sử dụng hình LCD Nokia 5110” đề tài hoàn thành nội dung sau: Về Arduino UNO R3: - Nắm cấu trúc Arduino UNO R3 - Tìm hiểu phân tích đặc tính kỹ thuật Arduino UNO R3 - Trình bày giao tiếp Arduino UNO R3 với thiết bị ngoại vi - Trình bày tổng qt ngơn ngữ lập trình C/C++, phần mềm viết code Arduino IDE 3.2 Kết nối phần cứng 24 3.2.1 Mô chạy thử proteus Hình 3.1 Sơ đồ mơ Hình 3.2 Sơ đồ mơ phần mềm proteus 3.2.2 Thực thực tế 25 \ Hình 3.3 Mạch thực tế 3.3 Nạp chương trình Để lập trình nạp code cho Arduino UNO R3 sử dụng phần mềm Arduino IDE viết code Code nạp: #include #include #include int dial1,dial2; long tim,values[84]; Adafruit_PCD8544 display = Adafruit_PCD8544(3,4,5,6,7); void setup() { display.begin(); display.setContrast(50); } void loop() { dial1 = analogRead(A1); // điều chỉnh sóng lên xuống dial2 = analogRead(A2); // điều chỉnh sóng sang trái, phải for(int i=0;i

Ngày đăng: 15/12/2017, 22:08

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

    • CHƯƠNG I. TỔNG QUAN ARDUINO

    • 1.1 Giới thiệu chung về Arduino

      • 1.2 Giới thiệu về board Arduino Uno R3

      • 1.2.1 Các thông số chi tiết của Arduino Uno R3:

        • 1.2.2 Vi điều khiển:

          • 1.2.3 Nguồn sử dụng:

          • 1.2.4 Các chân năng lượng:

            • 1.2.5 Bộ nhớ sử dụng:

              • 1.2.6 Các cổng vào/ra trên Arduino:

              • 1.2.7 Phần cứng của Arduino:

                • 1.2.8 Môi trường lập trình board mạch Arduino:

                  • 1.2.9 Các loại board mạch Arduino

                  • 1.2.10 Khả năng ghép nối của Arduino

                    • 1.2.11 Ứng dụng của Arduino

                      • 1.3 Giới thiệu khối hiển thị dạng sóng

                      • 1.4 Máy hiện sóng (Oscilloscope)

                      • 1.4.1 Giới thiệu chung

                        • 1.4.2 Chức năng của Oscilloscope

                          • 1.4.3 Nguyên lý hoạt động của máy Oscilloscope

                          • 1.4.3.1 Phân loại máy Oscilloscope

                            • 1.4.3.2 Oscilloscope tương tự

                              • 1.4.3.3 Oscilloscope số

                              • 2.1 Ngôn ngữ lập trình C/C++

                                • 2.1.1 Tổng quan

                                  • 2.1.2 Lịch sử phát triển

                                  • 2.1.3 Đặc điểm của ngôn ngữ lập trình C/C++

                                    • 2.1.4 Cấu trúc của một chương trình C++

                                      • 2.2 Phần mềm viết code cho bo mạch Arduino

                                      • CHƯƠNG 3: THIẾT KẾ MÔ HÌNH HIỆN SÓNG OSCILLOCOPE

                                      • 3.1 Ý tưởng thiết kế:

                                      • 3.2 Kết quả nghiên cứu:

                                      • 3.2.1 Mô phỏng và chạy thử trên proteus

                                        • 3.2.2 Thực hiện trên thực tế

                                        • 3.3 Nạp chương trình

                                        • KẾT LUẬN

                                          • 1. Kết luận

                                            • 2. Hướng phát triển của đề tài

                                            • TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan