18-MOD_BMA-Library (ATMega)


-diese Library dient zum ansteuern eines BMA180 (3-Achs-Beschleunigungs-Sensor)
von einem externen Modul das per SPI-BUS an die CPU angeschlossen ist.

-die Library liest den Sensor aus und stellt die X-Y-Z-Beschleunigungsdaten als Globale Struktur bereit.

-Die Auflösung kann per Software zwischen +/-1G bis +/-16G
eingestellt werden. Der Sensor liefert 14bit ist also sehr genau. Zusätzlich ist noch
ein Temp-Sensor eingebaut, der auch ausgelesen werden kann.

-der BMA180 ist an den SPI-Bus angeschlossen,
aus dem Grund wird auch der SPI-Treiber
“MK3_2560_SPI.h” benötigt

Funktionen :

1
2
3
4
5
void EXT_INIT_BMA180(void);     // init vom BMA180
void MK3_BMA180_getData(void);  // auslesen der Beschleunigungs-Daten
void MK3_BMA180_setFilter(BMA180_FILTER filter); // stellt den Filter ein
void MK3_BMA180_setRange(BMA180_RANGE range);    // stellt die Range ein
void MK3_BMA180_enableINT(bool mode);            // stellt Interrupt EIN/AUS

Beispiel :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//-----------------------------------------------------------------------------
// Title      : prj_ub003_mk3_bma180
//-----------------------------------------------------------------------------
// Funktion   : Beschleunigungs-Sensor-Modul (BMA180)
// Schaltung  : myAVR MK3 + BMA180-Modul
//-----------------------------------------------------------------------------
// Prozessor  : ATMega2560
// Takt       : 16 MHz
// Sprache    : C
// Date       : 16.12.2010
// Version    : 1.1
// Autor      : UB
//-----------------------------------------------------------------------------
#define F_CPU 16000000
#include <avr/io.h>
#include <ub_mk3_2560/MK3_2560_LCD.h>
#include <UB_EXT_MODULE/EXT_MOD_BMA180.h>
 
//-----------------------------------------------------------------------------
// Hinweis : Quick-Jumper Port-C+A muss gesetzt sein
//           Externes-Modul (mit BMA180) muss angeschlossen sein
//           (siehe H-File vom BMA180)
//           Nach der init des BMA180 werden die X,y,Z-Rohdaten
//           und die Temperatur-Rohdaten auf dem Display angezeigt
//
//           Vorsicht : es sind keine G-Werte oder Grad-Celsius-Werte !!
//-----------------------------------------------------------------------------
int main (void) {
  char wert;
  unsigned int uint;
  unsigned int pause=0;
 
  MK3_INIT_LCD(); // init des LCD
  EXT_INIT_BMA180(); // BMA180 initialisieren
 
  MK3_LCD_CLEAR(); // LCD loeschen
  MK3_LCD_LIGHT(true); // beleuchtung einschalten
 
  MK3_LCD_STRING_AT(0,0,"BMA180-Projekt [V1.1]");
 
  if(EXT_BMA180_OK==true) {
    MK3_LCD_STRING_AT(0,16,"BMA180 an SPI OK");
    // Filter einstellen
    MK3_BMA180_setFilter(BMA_FILTER_10Hz);
 
    while (true) {
      MK3_LCD_STRING_AT(100,16,".");  // als Pause
      pause++;
      if(pause>1000) {
        pause=0;
        MK3_BMA180_getData();
        // X-Daten anzeigen
        MK3_LCD_STRING_AT(0,32,"X=       ");
        if(EXT_BMA180.raw.x_negativ==true) MK3_LCD_STRING_AT(12,32,"-");
        uint=EXT_BMA180.raw.x_achse;
        MK3_LCD_UINT_AT(18,32,uint);
        // Y-Daten anzeigen
        MK3_LCD_STRING_AT(0,40,"Y=       ");
        if(EXT_BMA180.raw.y_negativ==true) MK3_LCD_STRING_AT(12,40,"-");
        uint=EXT_BMA180.raw.y_achse;
        MK3_LCD_UINT_AT(18,40,uint);
        // Z-Daten anzeigen
        MK3_LCD_STRING_AT(0,48,"Z=       ");
        if(EXT_BMA180.raw.z_negativ==true) MK3_LCD_STRING_AT(12,48,"-");
        uint=EXT_BMA180.raw.z_achse;
        MK3_LCD_UINT_AT(18,48,uint);
        // Temperatur anzeigen
        MK3_LCD_STRING_AT(0,56,"T=       ");
        if(EXT_BMA180.raw.t_negativ==true) MK3_LCD_STRING_AT(12,56,"-");
        uint=EXT_BMA180.raw.temperatur;
        MK3_LCD_UINT_AT(18,56,uint);
      }
    }
  }
  else {
    MK3_LCD_STRING_AT(0,16,"BMA180 nicht gefunden");
 
    while(true) {
 
    }
  }
  return 0;
}

Hier die Library zum download :

UB_EXT_MOD_BMA180_v105


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert