hello, i’m trying to include HMC5883L Compass Library to my code,
i am using the library from jarzebski,, but i always found errors even when i try the example from that library (HMC5883L Calibration), the code is like this
#include <Wire.h>
#include <HMC5883L.h>
HMC5883L compass;
int minX = 0;
int maxX = 0;
int minY = 0;
int maxY = 0;
int offX = 0;
int offY = 0;
void setup()
{
Serial.begin(9600);
// Initialize Initialize HMC5883L
while (!compass.begin())
{
delay(500);
}
// Set measurement range
compass.setRange(HMC5883L_RANGE_1_3GA);
// Set measurement mode
compass.setMeasurementMode(HMC5883L_CONTINOUS);
// Set data rate
compass.setDataRate(HMC5883L_DATARATE_30HZ);
// Set number of samples averaged
compass.setSamples(HMC5883L_SAMPLES_8);
}
void loop()
{
Vector mag = compass.readRaw();
// Determine Min / Max values
if (mag.XAxis < minX) minX = mag.XAxis;
if (mag.XAxis > maxX) maxX = mag.XAxis;
if (mag.YAxis < minY) minY = mag.YAxis;
if (mag.YAxis > maxY) maxY = mag.YAxis;
// Calculate offsets
offX = (maxX + minX)/2;
offY = (maxY + minY)/2;
Serial.print(mag.XAxis);
Serial.print(":");
Serial.print(mag.YAxis);
Serial.print(":");
Serial.print(minX);
Serial.print(":");
Serial.print(maxX);
Serial.print(":");
Serial.print(minY);
Serial.print(":");
Serial.print(maxY);
Serial.print(":");
Serial.print(offX);
Serial.print(":");
Serial.print(offY);
Serial.print("\n");
}
in that case (with calbrating code), i always found error like this
'class HMC5883L' has no member named 'begin'
please help me
Hi @wasyamsudin
When the question is not a good one,
the answer is the worst.....
It means that the class HMC5883L has no member named 'begin'
Please read How to get the best out of this forum
Post your sketch, but don´t forget..
use tags </> to post sketch.
RV mineirin
i am using the library from jarzebski, even when i try the example from that library (HMC5883L Calibration), i still find the same error like "has no member 'begin' "
oh pardon me, ok i got it
wasyamsudin:
HMC5883L Calibration
OK, I will teste this example now. (HMC5883L Calibration),
Are you using arduino UNO?
I had no errors compiling this example.
RV mineirin
i'm using arduino mega sir
This is the link to the library I use
@wasyamsudin
I selected Mega Arduino too, and it compiled correctly without errors.
Suggestion, update your HMC5883L library.
What is your IDE version?
RV mineirin
update version of the library sir?
i'm use IDE 1.8.14
Please, use tags </> and post you erros mensages
RV mineirin
oh ok,, the error like this
Arduino: 1.8.14 (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Wasyamsudin\Documents\Arduino\libraries\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10814 -build-path C:\Users\WASYAM~1\AppData\Local\Temp\arduino_build_849807 -warnings=none -build-cache C:\Users\WASYAM~1\AppData\Local\Temp\arduino_cache_816397 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Wasyamsudin\Documents\Arduino\libraries\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10814 -build-path C:\Users\WASYAM~1\AppData\Local\Temp\arduino_build_849807 -warnings=none -build-cache C:\Users\WASYAM~1\AppData\Local\Temp\arduino_cache_816397 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino
Using board 'mega' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o nul
Alternatives for Wire.h: [Wire@1.0]
ResolveLibrary(Wire.h)
-> candidates: [Wire@1.0]
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o nul
Alternatives for HMC5883L.h: [Grove_3-Axis_Digital_Compass_HMC5883L@1.0.1]
ResolveLibrary(HMC5883L.h)
-> candidates: [Grove_3-Axis_Digital_Compass_HMC5883L@1.0.1]
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src\\Wire.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src\\utility\\twi.c" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L\\HMC5883L.cpp" -o nul
Generating function prototypes...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "-IC:\\Users\\Wasyamsudin\\Documents\\Arduino\\libraries\\libraries\\Grove_3-Axis_Digital_Compass_HMC5883L" "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp" -o "C:\\Users\\WASYAM~1\\AppData\\Local\\Temp\\arduino_build_849807\\sketch\\HMC5883L_calibrate.ino.cpp.o"
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino: In function 'void setup()':
HMC5883L_calibrate:26:19: error: 'class HMC5883L' has no member named 'begin'
while (!compass.begin())
^~~~~
HMC5883L_calibrate:32:11: error: 'class HMC5883L' has no member named 'setRange'; did you mean 'setScale'?
compass.setRange(HMC5883L_RANGE_1_3GA);
^~~~~~~~
setScale
HMC5883L_calibrate:32:20: error: 'HMC5883L_RANGE_1_3GA' was not declared in this scope
compass.setRange(HMC5883L_RANGE_1_3GA);
^~~~~~~~~~~~~~~~~~~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:32:20: note: suggested alternative: 'HMC5883L_ADDRESS'
compass.setRange(HMC5883L_RANGE_1_3GA);
^~~~~~~~~~~~~~~~~~~~
HMC5883L_ADDRESS
HMC5883L_calibrate:35:30: error: 'HMC5883L_CONTINOUS' was not declared in this scope
compass.setMeasurementMode(HMC5883L_CONTINOUS);
^~~~~~~~~~~~~~~~~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:35:30: note: suggested alternative: 'HMC5883L_ADDRESS'
compass.setMeasurementMode(HMC5883L_CONTINOUS);
^~~~~~~~~~~~~~~~~~
HMC5883L_ADDRESS
HMC5883L_calibrate:38:11: error: 'class HMC5883L' has no member named 'setDataRate'
compass.setDataRate(HMC5883L_DATARATE_30HZ);
^~~~~~~~~~~
HMC5883L_calibrate:38:23: error: 'HMC5883L_DATARATE_30HZ' was not declared in this scope
compass.setDataRate(HMC5883L_DATARATE_30HZ);
^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:38:23: note: suggested alternative: 'HMC5883L_ADDRESS'
compass.setDataRate(HMC5883L_DATARATE_30HZ);
^~~~~~~~~~~~~~~~~~~~~~
HMC5883L_ADDRESS
HMC5883L_calibrate:41:11: error: 'class HMC5883L' has no member named 'setSamples'; did you mean 'setScale'?
compass.setSamples(HMC5883L_SAMPLES_8);
^~~~~~~~~~
setScale
HMC5883L_calibrate:41:22: error: 'HMC5883L_SAMPLES_8' was not declared in this scope
compass.setSamples(HMC5883L_SAMPLES_8);
^~~~~~~~~~~~~~~~~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:41:22: note: suggested alternative: 'HMC5883L_ADDRESS'
compass.setSamples(HMC5883L_SAMPLES_8);
^~~~~~~~~~~~~~~~~~
HMC5883L_ADDRESS
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino: In function 'void loop()':
HMC5883L_calibrate:46:3: error: 'Vector' was not declared in this scope
Vector mag = compass.readRaw();
^~~~~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:46:3: note: suggested alternative: 'perror'
Vector mag = compass.readRaw();
^~~~~~
perror
HMC5883L_calibrate:49:7: error: 'mag' was not declared in this scope
if (mag.XAxis < minX) minX = mag.XAxis;
^~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:49:7: note: suggested alternative: 'map'
if (mag.XAxis < minX) minX = mag.XAxis;
^~~
map
HMC5883L_calibrate:50:7: error: 'mag' was not declared in this scope
if (mag.XAxis > maxX) maxX = mag.XAxis;
^~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:50:7: note: suggested alternative: 'map'
if (mag.XAxis > maxX) maxX = mag.XAxis;
^~~
map
HMC5883L_calibrate:51:7: error: 'mag' was not declared in this scope
if (mag.YAxis < minY) minY = mag.YAxis;
^~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:51:7: note: suggested alternative: 'map'
if (mag.YAxis < minY) minY = mag.YAxis;
^~~
map
HMC5883L_calibrate:52:7: error: 'mag' was not declared in this scope
if (mag.YAxis > maxY) maxY = mag.YAxis;
^~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:52:7: note: suggested alternative: 'map'
if (mag.YAxis > maxY) maxY = mag.YAxis;
^~~
map
HMC5883L_calibrate:58:16: error: 'mag' was not declared in this scope
Serial.print(mag.XAxis);
^~~
C:\Users\Wasyamsudin\Documents\Arduino\libraries\Arduino-HMC5883L-master\HMC5883L_calibrate\HMC5883L_calibrate.ino:58:16: note: suggested alternative: 'map'
Serial.print(mag.XAxis);
^~~
map
Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire
Using library Grove_3-Axis_Digital_Compass_HMC5883L at version 1.0.1 in folder: C:\Users\Wasyamsudin\Documents\Arduino\libraries\libraries\Grove_3-Axis_Digital_Compass_HMC5883L
exit status 1
'class HMC5883L' has no member named 'begin'
that's the final solutions hahaha
@wasyamsudin , your topic has been moved to a more suitable location on the forum.
You can mark ruilviana's last post as solution so others who find this topic know that it was solved.
system
Closed
October 5, 2021, 5:14pm
15
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.