Altimètre Arduino Pro mini
bonjour,
je viens vers vous car j'ai un souci, j'ai suivi ce tuto :
http://www.instructables.com/id/the-ultimate-altimeter-a-compact-arduino-altimeter/?allsteps
mais le problème est que je n'est pas le même capteur de pression moi j'ai un bmp180 et dans le tuto il utilise un mpl3115a2
donc j'ai du modifier le code mais sa ne fonctionne pas.
voici le code :
et voici l'erreur:
'class sfe_bmp180' has no member named 'setmodealtimeter'
ultimate_altimeter.ino: in function 'void setup()':
ultimate_altimeter:110: error: 'class sfe_bmp180' has no member named 'setmodealtimeter'
ultimate_altimeter:113: error: 'class sfe_bmp180' has no member named 'setoversamplerate'
ultimate_altimeter:114: error: 'class sfe_bmp180' has no member named 'enableeventflags'
ultimate_altimeter.ino: in function 'void loop()':
ultimate_altimeter:147: error: 'class sfe_bmp180' has no member named 'readaltitudeft'
je viens vers vous car j'ai un souci, j'ai suivi ce tuto :
http://www.instructables.com/id/the-ultimate-altimeter-a-compact-arduino-altimeter/?allsteps
mais le problème est que je n'est pas le même capteur de pression moi j'ai un bmp180 et dans le tuto il utilise un mpl3115a2
donc j'ai du modifier le code mais sa ne fonctionne pas.
voici le code :
code: [select]
#include <sfe_bmp180.h>
#include <sevseg.h>
#include <bounce2.h>
#include <wire.h>
/*
mpl3115a2 barometric pressure sensor library example code
by: nathan seidle
sparkfun electronics
date: september 24th, 2013
license: code public domain buy me beer if use , meet someday (beerware license).
uses mpl3115a2 library display current altitude , temperature
hardware connections (breakoutboard arduino):
-vcc = 3.3v
-sda = a4 (use inline 10k resistor if board 5v)
-scl = a5 (use inline 10k resistor if board 5v)
-int pins can left unconnected demo
during testing, gps 9 satellites reported 5393ft, sensor reported 5360ft (delta of 33ft). close!
during testing, gps 8 satellites reported 1031ft, sensor reported 1021ft (delta of 10ft).
*/
#include <wire.h>
#include "sfe_bmp180.h"
#include "sevseg.h"
#include <bounce2.h>
//#define serial_debug //used activating serial debugging
#define title_mode 1
#define value_mode 0
#define alt 0
#define top 1
#define bot 2
#define diff 3
#define stby 4
//create instance of object
sfe_bmp180 mypressure;
sevseg mydisplay;
unsigned long timer;
unsigned long titletimer;
const int buttonpin = 3; // number of pushbutton pin
int buttonstate = 0; // variable reading pushbutton status
bounce debouncer = bounce();
char tempstring[10]; //used sprintf
float maxaltitude = -99999;
float minaltitude = 99999;
boolean lastbutton = high;
boolean currentbutton = high;
int mode;
boolean metamode = title_mode;
char *s;
const int titletimerbeat = 1000; //fiddle away!
const int timerbeat = 500; //shouldn't changed much
void setup()
{
pinmode(buttonpin, input_pullup);
debouncer.attach(buttonpin);
debouncer.interval(5);
wire.begin(); // join i2c bus
serial.begin(9600); // start serial output
int displaytype = common_cathode; //your display either common cathode or common anode
//this pinout bubble dispaly
//declare pins connected gnd pins (cathodes)
int digit1 = a1; //pin 1
int digit2 = 6; //pin 10
int digit3 = 12; //pin 4
int digit4 = 10; //pin 6
//declare pins connected segments (anodes)
int sega = 4; //pin 12
int segb = 5; //pin 11
int segc = 13; //pin 3
int segd = 8; //pin 8
int sege = a0; //pin 2
int segf = 7; //pin 9
int segg = 9; //pin 7
int segdp= 11; //pin 5
int numberofdigits = 4; //do have 1, 2 or 4 digit display?
mydisplay.begin(displaytype, numberofdigits, digit1, digit2, digit3, digit4, sega, segb, segc, segd, sege, segf, segg, segdp);
mydisplay.setbrightness(100); //set display 100% brightness level
timer = millis();
titletimer = timer+titletimerbeat;
//configure sensor
mypressure.setmodealtimeter(); // measure altitude above sea level in meters
//mypressure.setmodebarometer(); // measure pressure in pascals 20 110 kpa
mypressure.setoversamplerate(7); // set oversample recommended 128
mypressure.enableeventflags(); // enable 3 pressure , temp event flags
}
void loop() {
float altitude;
float pressure;
debouncer.update();
int buttonstate = debouncer.read();
// buttonstate = digitalread(buttonpin);
lastbutton = currentbutton;
currentbutton = buttonstate;
if (lastbutton == high && currentbutton == low) {
if (mode >= stby) mode = 0;
else
mode++;
metamode = title_mode;
titletimer = millis()+titletimerbeat;
}
if (millis() > titletimer) {
titletimer = millis()+titletimerbeat;
metamode = value_mode;
}
if (millis() > timer) {
timer = millis()+timerbeat;
//things every 500 milliseconds
altitude = mypressure.readaltitudeft();
#ifdef serial_debug
serial.print(" altitude(ft):");
serial.print(altitude, 2);
if (buttonstate == high) serial.print("button pressed!");
#endif
if (altitude > maxaltitude) {
maxaltitude = altitude;
}
if (altitude < minaltitude) {
minaltitude = altitude;
}
if (metamode == value_mode) {
switch (mode) {
case alt:
sprintf(tempstring, "%4d", (int)altitude); //convert altitude string right adjusted
break;
case top:
sprintf(tempstring, "%4d", (int)maxaltitude);
break;
case bot:
sprintf(tempstring, "%4d", (int)minaltitude);
break;
case diff:
sprintf(tempstring, "%4d", (int)(maxaltitude - minaltitude));
break;
case stby:
sprintf(tempstring, " ");
break;
}
s = tempstring;
}
else if (metamode == title_mode) {
switch (mode) {
case alt:
s = "alt ";
break;
case top:
s = "high";
break;
case bot:
s = "lo ";
break;
case diff:
s = "diff";
break;
case stby:
s = "stby";
}
}
#ifdef serial_debug
serial.print(" our str:");
serial.print(s);
serial.println();
#endif
}
if(mode != stby || metamode == title_mode) mydisplay.displaystring(s, 0); //must stay outside of "timer" if statement!!!
}
et voici l'erreur:
'class sfe_bmp180' has no member named 'setmodealtimeter'
ultimate_altimeter.ino: in function 'void setup()':
ultimate_altimeter:110: error: 'class sfe_bmp180' has no member named 'setmodealtimeter'
ultimate_altimeter:113: error: 'class sfe_bmp180' has no member named 'setoversamplerate'
ultimate_altimeter:114: error: 'class sfe_bmp180' has no member named 'enableeventflags'
ultimate_altimeter.ino: in function 'void loop()':
ultimate_altimeter:147: error: 'class sfe_bmp180' has no member named 'readaltitudeft'
bonjour,
lorsque vous utilisez la librairie sfe_bmp180 il faut utiliser les fonctions comprises dans celle-ci. ici vous faites appel à celles de la librairie mpl3115a2 du tutoriel que vous avez suivi.
il vous faut réécrire le code en trouvant les équivalents entre les deux librairies.
lorsque vous utilisez la librairie sfe_bmp180 il faut utiliser les fonctions comprises dans celle-ci. ici vous faites appel à celles de la librairie mpl3115a2 du tutoriel que vous avez suivi.
il vous faut réécrire le code en trouvant les équivalents entre les deux librairies.
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Altimètre Arduino Pro mini
arduino
Comments
Post a Comment