Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
1,86 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI ***** Chuyên đề: Cảm biến quang công nghiệp: phát đếm số lượng sản phẩm dây chuyền! Hà Nội, 3/2021 MỤC LỤC ĐẶT VẤN ĐỀ THIẾT KẾ VÀ CHẾ TẠO THIẾT BỊ ĐO VÀ CẢNH BÁO SỰ CỐ CỦA ĐỘNG CƠ ĐỐT TRONG 2.1 Mục tiêu thiết kế .1 2.2 Lựa chọn thiết bị .3 2.1.1 Cảm biến đo độ rung MPU6050 2.1.2 Tính chọn khối hiển thị LCD 2.1.3 Tính chọn khối lưu trữ liệu SD 2.1.4 Tính chọn khối truyền thơng GPRS 2.1.5 Khối cảm biến 10 2.1.6 Khối xử lý trung tâm 11 2.3 Kết 13 KẾT LUẬN 17 PHỤ LỤC 18 Code vi xử lý 18 ĐẶT VẤN ĐỀ Phân tích tín hiệu rung phương pháp để phát hiện/chẩn đoán sớm cố động đốt Chuyên đề tập trung xây dựng thiết bị thu thập liệu độ rung động theo chiều X, Y, Z dư liệu nhiệt độ nước làm mát, áp suất dầu động cơ, trường hợp động cháy bình thường, tải số trường hợp cố khác (như lỗi vòng bi, ổ trục, lỗi khâu làm mát, mức dầu thấp….) Dữ liệu sử dụng để phân tích, xây dựng mơ hình nhận dạng sử dụng cơng cụ trí tuệ nhận tạo (AI) Hình 1: Hình ảnh mơ hình thu thập liệu THIẾT KẾ VÀ CHẾ TẠO THIẾT BỊ ĐO VÀ CẢNH BÁO SỰ CỐ CỦA ĐỘNG CƠ ĐỐT TRONG 2.1 Mục tiêu thiết kế Mục tiêu thiết kế thiết bị thu thập thông số động đốt trong, cụ thể sau: Đo độ rung theo ba trục x, y, z; Đo nhiệt độ nước làm động cơ; Áp suất dầu nhớn Tính thiết bị: Thiết bị nhỏ gọn đo di động gắn động cơ; Lưu liệu vào thẻ nhở SD, thời gian lưu liên tục 30 ngày; Hiển thị liệu online hình LCD; Thiết bị chạy nguồn điện lưới hay chạy pin; Truyền liệu lên mạng Internet; Từ mục đích yêu cầu đề xuất sơ đồ khối thiết bị sau: LCD Máy tính UART Cảm biến độ rung I2C Bus MPU 6050 Cảm biến đo nhiệt độ Cảm biến áp suất dầu Analog Vi xử lý ARM/ PSoC UART Module 3G Internet Analog SPI Bus Khối nguồn (pin 5V) Thẻ nhớ SD Hình 2: Sơ đồ khối thiết bị Sơ đồ khối chức thiết bị trình bày bao gồm khối sau: Khối cảm biến: o Đo độ rung: Sử dụng module cảm biến gia tốc MPU 6050; o Đo nhiệt độ: PT100 Omron/Nhật o Đo áp suất: Keller/Thụ Sỹ Khối truyền thông: Dữ liệu thu thập từ thiết bị trường gửi vào mạng Internet Người dùng truy xuất để giám sát liệu thông qua giao diện web từ ứng dụng máy tính; Vi xử lý trung tâm: Đủ nhanh để thực nhiệm vụ tính tốn đủ giao tiếp với ngoại vi lựa chọn sử dụng thiết bị, chuyên đề sử dụng IC AVR; Màn hình LCD: Màn hình phương tiện hiển thị thiết bị, hiển thị thông số hoạt động thiết bị lựa chọn sử dụng hình HMI 3.5 inch loại cảm ứng điện trở, Thẻ nhớ: Thiết bị sử dụng thẻ nhớ dung lượng cao để lưu giữ liệu từ cảm biến đo độ rung, thông số mà đặc biệt Chuyên đề sử dụng thẻ nhớ SD có dung lượng lớn 8G thỏa mãn yêu cầu lưu trữ kết đo thời gian dài (có thể lưu liên tục 30 ngày); 2.2 Lựa chọn thiết bị 2.1.1 Cảm biến đo độ rung MPU6050 Hình 3: Sơ đồ khối module MPU6050 Nguyên lý hoạt động cảm biến gia tốc: MEMS sensor hệ thống cảm biến vi điện tử MEMS viết tắt “Micro ElectroMechanical Systems” MEMS sensor ứng dụng hệ cảm biến gia tốc, quay hồi chuyển, la bàn số, cảm biến áp suất, độ ẩm, micro phone,… Trong cảm biến gia tốc giá trị đo gồm giá trị gia tốc giá trị bị ảnh hưởng lực hấp dẫn trái đất người ta gọi gia tốc tĩnh Lợi dụng đặc điểm mà việc đo gia tốc người ta thường dùng cảm biến gia tốc để đo góc nghiêng, ứng dụng nhiều smartphone Để dễ hình dung bạn xem hình bên Vật có khối lượng màu đỏ có nối với thước đo bạn làm vật dao động dĩ nhiên sinh gia tốc giá trị thước đo bạn nghiêng vật nặng góc không sinh gia tốc ảnh hưởng lực hút vật màu đỏ dồn qua bên giá trị thước đo Đây khuyết điểm lớn mà cảm biến gia tốc mắc phải Môi trường không ổn định chẳng hạn run làm ảnh hưởng lớn đến giá trị đo, hình thức nhiễu Đối với cảm biến quay hồi chuyển hay gọi tắt gyro đo vận tốc góc sinh Cảm biến bị ảnh hưởng nhiễu mơi trường Gyro dễ dàng đo góc ta lấy giá trị đo tích phân, nhược điểm bị sai số tích lũy lỗi tích phân số Cảm biến la bàn dễ dàng đo góc giá trị đo góc chưa xác ảnh hưởng nhiều vị trí đo đạt nhiễu từ trường Có thể kết loại cảm biến hệ toán học để bù trừ ưu khuyết điểm lẫn Chuyên đề chọn cảm biến gia tốc MPU 6050: MPU-6050 cảm biến hãng InvenSense. MPU-6050 giải pháp cảm biến chuyển động giới có tới (mở rộng tới 9) trục cảm biến tích hợp chip MPU-6050 sử dụng cơng nghệ độc quyền MotionFusion của InvenSense chạy thiết bị di động, tay điều khiển…MPU-6050 tích hợp trục cảm biến bao gồm: Con quay hồi chuyển trục (3-axis MEMS gyroscope); Cảm biến gia tốc chiều (3-axis MEMS accelerometer); Ngồi ra, MPU-6050 cịn có đơn vị tăng tốc phần cứng chuyên xử lý tín hiệu (Digital Motion Processor – DSP) cảm biến thu thập thực tính tốn cần thiết Điều giúp giảm bớt đáng kể phần xử lý tính tốn vi điều khiển, cải thiện tốc độ xử lý cho phản hồi nhanh Đây điểm khác biệt đáng kể MPU-6050 so với cảm biến gia tốc gyro khác MPU-6050 kết hợp với cảm biến từ trường (bên ngoài) để tạo thành cảm biến góc đầy đủ thơng qua giao tiếp I2C Các cảm biến bên MPU-6050 sử dụng chuyển đổi tương tự – số (Anolog to Digital Converter – ADC) 16-bit cho kết chi tiết góc quay, tọa độ…Với 16-bit bạn có 2^16 = 65536 giá trị cho cảm biến Tùy thuộc vào yêu cầu bạn, cảm biến MPU-6050 hoạt động chế độ tốc độ xử lý cao chế độ đo góc quay xác (chậm hơn) MPU-6050 có khả đo phạm vi: Con quay hồi chuyển: ± 250 500 1000 2000 dps; Gia tốc: ± ± ± ± 16g; Hơn nữa, MPU-6050 có sẵn đệm liệu 1024 byte cho phép vi điều khiển phát lệnh cho cảm biến, nhận liệu sau MPU-6050 tính tốn xong Hình 4: Hình dạng module MPU6050 MPU6050 chip tích hợp cảm biến: vận tốc góc (gyroscope) gia tốc góc (accelerometer): MPU6050 cho biết vận tốc gia tốc góc, từ xác định hướng vật không gian chiều Dải điện áp hoạt động : 2,37V – 3,46V Dải nhiệt hoạt đông: -40 đến +85°C Hoạt động với tần số xung clock: Xung clock nội : CLK SEL = 0,1,2,3 Xung clock 32,768kHz : CLK_SEL = Xung clock 19,2MHz : CLK_SEL = Đầu tín hiệu số độ dịch góc trục X Y Z với đọ rộng thang đo ±250,±500, ±1000, ±2000°/s Tín hiệu đồng hồ kết nối vào chân FSYNC hỗ trợ đồng ảnh, video, GPS Tích hợp chuyển đổi ADC 16bit lấy mẫu tốc độ góc lúc Cho phép sử dụng chương trình ngắt Giao thức I2C: chế độ 100kHz - chế độ nhanh 400kHz Bao gồm liệu nối tiếp tín hiệu (SDA) đồng nối tiếp (SCL) Khi kết nối với vi điều khiển MPU6050 đóng vai trị slave Địa Slave b110100X 2.1.2 Tính chọn khối hiển thị LCD Thiết bị lựa chọn sử dụng hình HMI Nextion 3.5 Inch, hình ảnh hình (hình 2.13) sơ đồ kết nối với vi xử lý (hình 2.14) Hình 5: Hình ảnh hình Nextion 3.5 Inch Thơng số kỹ thuật hình: - Màn hình HMI 3.5 inch loại cảm ứng điện trở; - Giao chuẩn UART; - Nguồn cung cấp 5V SCK MOSI MISO MOSI_1 MISO_1 SCK_1 GND 12 13 14 15 16 17 18 27 19 20 21 22 23 24 25 26 PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7 PH0 PH1 PH2 PH3 PH4 PH5 PH6 PH7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PJ7 PJ6 PJ5 PJ4 PJ3 PJ2 PJ1 PJ0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 KEY1 KEY2 KEY3 KEY4 99 100 22p ATMEGA2560 AGND AVCC 22p VCC PD7 50 PD6 49 PD5 48 PD4 47 PD3 46 PD2 45 PD1 44 PD0 43 PL7 42 PL6 41 PL5 40 PL4 39 PL3 38 PL2 37 PL1 36 PL0 35 XTAL1 34 XTAL2 33 RESET 30 VCC R29 10k RST SW1 SW 10uF GND U4 78 77 76 75 74 73 72 71 79 69 68 67 66 65 64 63 60 59 58 57 56 55 54 53 TXD0 RXD0 PK7 PG4 PG3 PG1 PG0 PK6 PK5 PK4 PK3 PK2 PK1 PK0 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0 PG2 PG5 VCC VCC VCC VCC GND GND GND GND 82 29 28 52 51 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 70 10 31 61 80 11 32 62 81 ECG ADC CS_1 VCC GND VCC C14 22p C15 22p TX RX GND TXD1 RXD1 LCD GND GND Hình 6: Sơ đồ kết nối hình Nextion 3.5 Inch với vi xử lý 2.1.3 Tính chọn khối lưu trữ liệu SD Thiết bị có khả lưu trữ liệu đo thời gian đo vào thẻ nhớ SD Card Để lưu liệu đo vào thẻ nhớ, chuyên đề lựa chọn dạng thẻ nhớ SD dung lượng GB Hình ảnh thẻ nhớ SD module micro SD (hình 7) sơ đồ kết nối với vi xử lý (hình 8) Hình 7: Hình ảnh thẻ nhớ SD module micro SD KEY1 KEY2 KEY3 KEY4 CS SCK MOSI MISO 5V5 GND CS_1 SCK_1 MISO_1 MOSI_1 GND 12 13 14 15 16 17 18 27 19 20 21 22 23 24 25 26 SCK MOSI MISO CS_1 MOSI_1 MISO_1 SCK_1 VCC PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7 PH0 PH1 PH2 PH3 PH4 PH5 PH6 PH7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PJ7 PJ6 PJ5 PJ4 PJ3 PJ2 PJ1 PJ0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 THE NHO SD 99 100 GND 22p ATMEGA2560 AGND AVCC 22p VCC PD7 50 PD6 49 PD5 48 PD4 47 PD3 46 PD2 45 PD1 44 PD0 43 PL7 42 PL6 41 PL5 40 PL4 39 PL3 38 PL2 37 PL1 36 PL0 35 XTAL1 34 XTAL2 33 RESET 30 VCC R29 10k U4 78 77 76 75 74 73 72 71 79 69 68 67 66 65 64 63 60 59 58 57 56 55 54 53 TXD0 RXD0 PK7 PG4 PG3 PG1 PG0 PK6 PK5 PK4 PK3 PK2 PK1 PK0 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0 PG2 PG5 VCC VCC VCC VCC GND GND GND GND 82 29 28 52 51 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 70 10 31 61 80 11 32 62 81 ECG ADC CS_1 VCC GND RST SW1 SW 10uF GND C14 22p C15 22p TXD1 RXD1 GND Hình 8: Sơ đồ ghép nối thẻ nhớ SD vi xử lý 2.1.4 Tính chọn khối truyền thơng GPRS Nhằm thực truyền liệu đo từ người bệnh thông qua thiết bị điện tim cầm tay máy chủ để bác sỹ theo dõi chẩn đốn tình hình sức khoẻ bệnh nhân, nhóm tác giả sử dụng Module Sim800 để thực q trình truyền nhận khơng dây thơng qua mạng GSM Hình 9: Hình ảnh IC SIM800 Sim800 có chức điện thoại di động, đóng gói onchip với giao tiếp vật lý có 60 chân Dùng chuẩn TTL thuận thiện cho việc kết nối VCC RXD2 TXD2 Header GND MODULE SIM800 SCK MOSI MISO CS_1 MOSI_1 MISO_1 SCK_1 12 13 14 15 16 17 18 27 19 20 21 22 23 24 25 26 PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7 PH0 PH1 PH2 PH3 PH4 PH5 PH6 PH7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PJ7 PJ6 PJ5 PJ4 PJ3 PJ2 PJ1 PJ0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 P3 99 100 GND 22p ATMEGA2560 AGND AVCC 22p VCC PD7 50 PD6 49 PD5 48 PD4 47 PD3 46 PD2 45 PD1 44 PD0 43 PL7 42 PL6 41 PL5 40 PL4 39 PL3 38 PL2 37 PL1 36 PL0 35 XTAL1 34 XTAL2 33 RESET 30 VCC R29 10k U4 78 77 76 75 74 73 72 71 79 69 68 67 66 65 64 63 60 59 58 57 56 55 54 53 TXD0 RXD0 PK7 PG4 PG3 PG1 PG0 PK6 PK5 PK4 PK3 PK2 PK1 PK0 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0 PG2 PG5 VCC VCC VCC VCC GND GND GND GND 82 29 28 52 51 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 70 10 31 61 80 11 32 62 81 ECG ADC CS_1 VCC GND RST SW1 SW 10uF GND C14 22p C15 22p TXD1 RXD1 GND Hình 11: Sơ đồ nguyên lý ghép nối vi xử lý với module SIM800 2.1.5 Khối cảm biến Thiết bị có thu thập thêm 02 liệu nhiệt độ nước làm mát áp suất dầu máy, đề lựa chọn loại cảm biến sau: a) Cảm biến áp suất - Mã hàng: PA-21Y - Thang đo: 0…10bar - Kết nối ren 13mm - Nguồn cấp loop 8…32VDC - Xuất xứ: Keller / Thụy Sỹ Hình 12: Thống số hình ảnh cảm biến đo áp suất b) Cảm biến đo nhiệt độ PT100 10 - Thang đo: -20…150 oC - Kết nối ren 13mm - Dài 8mm Hình 13: Thống số hình ảnh cảm biến đo nhiệt độ PT100 2.1.6 Khối xử lý trung tâm IC vi xử lý dùng cho thiết bị đo, chuyên đề lựa chọn sử dụng vi điều khiển ATmega2560 hãng Atmel ATmega2560 thuộc dòng vi điều khiển quen thuộc, có khả tính tốn xử lý tốt Sau số thông số kỹ thuật vi xử lý - Hoạt động điện áp: 5VDC - Số lượng chân vào/ra số: 54 có 15 chân cho PWM - Số lượng chân đầu vào tương tự: 16 - Điện điện cho ngõ vào: 40 mA - Dung lượng nhớ SRAM: 8KB - -Clock:16MHz 11 MPU6050 INT AD0 XCL XDA SDA SCL GND 5V GND VCC SDA SCL GND VCC MOSI_1 MISO_1 SCK_1 CS_1 P3 THE NHO SD GND 5V MISO MOSI SCK CS GND VCC Header MODULE SIM800 SD MPU6050 TXD2 RXD2 VCC P4 P3 GND GND AD1 VCC VCC AD2 VCC LCD TX RX GND Header Header PT100 R2 R3 4K7 4K7 SCL_I2C SDA_I2C CX1 CX2 32K GND 13 C16 10uF MC34063AD R31 180 GND MOSI_1 MISO_1 SCK_1 GND 99 100 V42 15 22p GND ATMEGA2560 AGND AVCC 22p VCC VCC R29 10k U4 PK7 PG4 PG3 PG1 PG0 PK6 PK5 PK4 PK3 PK2 PK1 PK0 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0 PG2 PG5 VCC VCC VCC VCC GND GND GND GND 82 29 28 52 51 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 70 10 31 61 80 11 32 62 81 SDA_I2C SCL_I2C ECG ADC CS_1 VCC GND RST 17 GND SW1 SW 10uF C14 22p C15 22p TXD1 RXD1 SDA SCL 1.2K R45 1.8K R46 GND C43 10nF GND ISET 16 12 PIN3.7V Header - M 47K R44 GND 14 1K ILM BQ24072 M VCC EN1 TD CE BAT BAT LMR VCC C18 10uF R34 C42 100nF PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7 PH0 PH1 PH2 PH3 PH4 PH5 PH6 PH7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 TS GND R33 3K D4 SD103 GND EN2 10 GND GND R32 1K GND OUT VSS 11 12 13 14 15 16 17 18 27 19 20 21 22 23 24 25 26 PD7 50 PD6 49 PD5 48 PD4 47 PD3 46 PD2 45 PD1 44 PD0 43 PL7 42 PL6 41 PL5 40 PL4 39 PL3 38 PL2 37 PL1 36 PL0 35 XTAL1 34 XTAL2 33 RESET 30 C17 33pF GND VCC DRVC -VIN SWC IPK SWE TCAP GND OUT CH C41 10nF PG C40 100nF 10uH IN SCK MOSI MISO V42 V_USB R30 1K U5 GND PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PJ7 PJ6 PJ5 PJ4 PJ3 PJ2 PJ1 PJ0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 10K R41 10K R40 CHARGING BAT_FULL BIG_Header GND DS1307 78 77 76 75 74 73 72 71 79 69 68 67 66 65 64 63 60 59 58 57 56 55 54 53 RXD2 TXD2 V_USB V42 BT 7Battery3.3V C¸ C KHè I CHøC N¡ NG L1 SQW/OUT VCC RETIME TXD0 RXD0 GND VCC VBAT GND LCD Cá C KHố I CảM BIếN P11-03 SCL SDA X1 X2 GND Kel l e U1 GND GND KHè I NGUå N 12 RST SCK MISO VCC 10 Header 5x2 GND KHè I VI Xö Lý Hình 14: Sơ đồ nguyên lý thiết bị HD1 MISO GND Lưu đồ thuật toán hoạt động: Begin Khơi tạo khối chức Khối thẻ nhớ SD; Khối cảm biến MPU 6050 Khối LCD Khối truyền thông Biến đêm ii=0; Đọc liệu từ cảm biến gia tốc MPU6050, PT100, Áp suất Hiển thị lên hình HMI LCD Lưu liệu vào thẻ nhớ SD Lưu liệu vào nhớ đệm: tx Tăng biến đếm: ii=ii+1 N ii > 100 Y Reset lại biến đếm: ii=0 Truyên liệu từ nhớ đệm tx lên internet 2.3 Kết 2.3.1 Thi công phần cứng Thiết kế mạch in cho thiết bị - 13 - (a) (b) Hình 15: Mặt mạch in (a) mặt mạch in (b) Vỏ hộp thiết bị Căn vào chức thiết bị, việc tích tốn, lựa chọn phần tử thiết bị, vỏ thiết bị làm nhựa, hình ảnh 3D vỏ thiết bị Hình 16: Hình ảnh kích thước 3D thiết bị - 14 - Hình 17: Hình ảnh liệu hình LCD, có tín hiệu từ cảm biến giá tốc 03 trục X,Y,Z nhiệt độ áp suất Giới thiệu thiết bị: 1- Hôp gắn cảm biến gia tốc MPU6050 nhôm 2- Thiết bị thu thập liệu; Hình 18: Hình ảnh kết nối cảm biến gia tôc MPU6050 với thiết bị đo - 15 - Các công tắc nguồn cổng kết nối 3- Khe cắm thẻ nhớ SD 4- Màn hình HMI 5- Cáp data Hình ảnh mặt cạnh bên trái thiết bị 6- Cổng kết nối USB 7- Giắc cắm nguồn DC 12V Hình 19: Hình ảnh mặt cạnh bên phải thiết bị Hộp gắn cảm biến gia tốc MPU6050 Hình 20: Hình ảnh hộp gắn cảm biến gia tốc MPU6050, làm nhôm - 16 - KẾT LUẬN Chuyên đề thiết kế chế tạo xong thiết bị thu thập tín hiệu cảnh báo cố động đốt trong, sử dụng IC AVR Bước đầu thử nghiệm thiết bị, chuẩn hóa số liệu từ cảm biến, q trình truyền thơng, lưu trữ thẻ nhớ, hiển thị lên hình LCD Dự kiến thời gian tới thiết bị thử nghiệm mơ hình thật, để đo thu thấp liệu động đốt để kiểm chứng tính xác độ ổn định thiết bị - 17 - PHỤ LỤC Code vi xử lý #include #include #include #include //#include "I2Cdev.h" #include "MPU6050.h" //#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE // #include "Wire.h" //#endif const byte addRTC = 0xa3>>1; int second, minute, hour, day, wday, month, year,status1,status2; extern uint8_t SmallFont[]; UTFT myGLCD(ILI9481,38,39,40,41); MPU6050 accelgyro; int16_t ax, ay, az; int16_t gx, gy, gz; int16_t Acc[1000][3]; static int time1, time2; #define OUTPUT_READABLE_ACCELGYRO #define IN 13 #define chipSelect bool blinkState = false; File dataFile; String dataString[3] = ""; String acx,acy,acz,HOUR,MINUTE,SECOND,DAY,MONTH,YEAR,namefile, tim; void setup() { #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif Serial.begin(9600); randomSeed(analogRead(0)); // Setup the LCD - 18 - myGLCD.InitLCD(); myGLCD.setFont(SmallFont); myGLCD.clrScr(); //Serial.println("Testing device connections "); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.print("TESTING DEVICE CONNECTIONS !", 15, 20); delay(500); if(accelgyro.testConnection()==1){ myGLCD.print("ACCELERATION SENSOR CONNECTION SUCCESSFUL.", 15, 50); //MPU6050 connection successful } else{ myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.print("ACCELERATION SENSOR CONNECTION FAILED !!!!!!", 15, 50); while(1){ delay(10); if(accelgyro.testConnection()==1){ break; } } myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.print("ACCELERATION SENSOR CONNECTION SUCCESSFUL ",15, 50); } // initialize device accelgyro.initialize(); if (!SD.begin(chipSelect)) { myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.print("SD CARD CONNECTION FAILED !",15, 80); //Serial.println("Card failed, or not present"); // don't anything more: while (1){ if (SD.begin(chipSelect)){ break; } } myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.print("SD CARD CONNECTION SUCCESSFUL ",15, 80); } else{ delay(400); myGLCD.print("SD CARD CONNECTION SUCCESSFUL ",15, 80); } delay(500); - 19 - // open a new file and immediately close it: } void loop() { while(digitalRead(IN)==0){ // open a new file and immediately close it: ReadRTC(); DAY = String(day); HOUR = String(hour); MINUTE = String(minute); namefile = DAY + "_" + HOUR + "_" + MINUTE + ".txt"; dataFile = SD.open(namefile, FILE_WRITE); dataFile.close(); while(digitalRead(IN)==0){ if (!SD.begin(chipSelect)) { myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.print("SD CARD CONNECTION FAILED ! ",15, 80); // don't anything more: while (1){ if (SD.begin(chipSelect)==1){ delay(100); break; } } myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.print("SD CARD CONNECTION SUCCESSFUL ",15, 80); ReadRTC(); DAY = String(day); HOUR = String(hour); MINUTE = String(minute); namefile = DAY + "_" + HOUR + "_" + MINUTE + ".txt"; dataFile = SD.open(namefile, FILE_WRITE); dataFile.close(); } if (accelgyro.testConnection()==0) { myGLCD.clrScr(); delay(100); myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.print("ACCELERATION SENSOR CONNECTION FAILED ! 80); delay(100); - 20 - ",15, // don't anything more: while (1){ if (accelgyro.testConnection()==1){ delay(100); break; } } myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.print("ACCELERATION SENSOR CONNECTION SUCCESSFUL ",15, 80); delay(100); accelgyro.initialize(); delay(200); ReadRTC(); DAY = String(day); HOUR = String(hour); MINUTE = String(minute); namefile = DAY + "_" + HOUR + "_" + MINUTE + ".txt"; dataFile = SD.open(namefile, FILE_WRITE); dataFile.close(); } for(int a=0; a