I.Hướng dẫn cài đặt và sử dụng Arduino IDE
- Mời các bạn xem tại đây :
- Module cảm biến là bàn GY-271 [ hmc5883l ]
Các bạn kết nối Module với Kit Arduino theo sơ đồ sau :
Ở đây mình Hiển thị lên LCD OLED 0.9 SSD1306 các bạn xem bài viết hướng dẫn Tại đây :
các bạn download và add thư viện Gy-271-hmc5883l.zip này vào trình Arduino IDE.
Hướng dẫn add thư viện vào Arduino IDE các ban tham khảo Tại đây :
1.CODE
// Code test GY-271 -HMC5883L /// #include "U8glib.h" #include #include "compass.h" //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); /* Create an instance for the SSD1306 OLED display in SPI mode * connection scheme: * D0=sck=Pin 12 * D1=mosi=Pin 11 * CS=Pin 8 * DC=A0=Pin 9 * Reset=Pin 10 */ U8GLIB_SSD1306_128X64 u8g(12, 11, 8, 9, 10); #define Task_t 10 // Task Time in milli seconds int dt=0; unsigned long t; // Main code ----------------------------------------------------------------- void setup(){ Serial.begin(9600); // Serial.print("Setting up I2C ........n"); Wire.begin(); compass_x_offset = -48.23; //122.17; compass_y_offset = 284.69; //230.08; compass_z_offset = 59.87; //389.85; compass_x_gainError = 1.07; //1.12; compass_y_gainError = 1.09; //1.13; compass_z_gainError = 1.01; //1.03; compass_init(2); //compass_debug = 1; //compass_offset_calibration(3); } void loop(){ t = millis(); float load; compass_scalled_reading(); Serial.print("x = "); Serial.println(compass_x_scalled); Serial.print("y = "); Serial.println(compass_y_scalled); Serial.print("z = "); Serial.println(compass_z_scalled); compass_heading(); Serial.print ("Heading angle = "); Serial.print (bearing); Serial.println(" Degree"); dt = millis()-t; load = (float)dt/(Task_t/100); Serial.print ("Load on processor = "); Serial.print(load); Serial.println("%"); u8g.firstPage(); do { draw(); } while( u8g.nextPage() ); delay(100); } void draw(void) { static int armLength = 20; static int cx = 64; static int cy = 20; int armX, armY; //convert degree to radian float bearingRad = bearing/57.2957795; armX = armLength*cos(bearingRad); armY = -armLength*sin(bearingRad); u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 60); u8g.print("bearing: "); u8g.setPrintPos(70, 60); u8g.print(bearing); u8g.drawLine(cx, cy, cx-armX, cy-armY); u8g.drawCircle(cx, cy, armLength, U8G_DRAW_ALL); }
2.Kết thúc chương trình