Accelerometer 

Example

: Complete Example

This example shows how to manage all the functions developed in Waspmote Accelerometer libraries.


File:
"WaspACC_5_completeExample.pde"


Code



/*
 *  ------Waspmote Accelerator Complete Example--------
 *
 *  Explanation: This example shows how to manage all the functions
 *  developed in Waspmote Accelerometer libraries.
 *
 *  Copyright (C) 2009 Libelium Comunicaciones Distribuidas S.L.
 *  http://www.libelium.com
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 2 of the License, or
 *  (at your option) any later version.
 * 
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 * 
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see .
 *
 *  Version:           0.1
 *  Design:            David Gascón
 *  Implementation:    David Cuartielles, Alberto Bielsa
 */


void setup()
{
  ACC.ON();
  USB.begin(); // starts using the serial port
}


long timer = 0;
uint8_t ctrl1=0;
uint8_t ctrl2=0;
uint8_t ctrl3=0;
uint8_t status=0;
uint8_t check=0;
uint8_t adcMode=0;
int accX=0;
int accY=0;
int accZ=0;
uint8_t flag=0;
int16_t auxReg=0;


void loop()
{

  //----------Check Register-----------------------
  // should always answer 0x3A, it is used to check
  // the proper functionality of the accelerometer
  byte check = ACC.check();

  //----------X Values-----------------------
  int x_acc = ACC.getX();

  //----------Y Values-----------------------
  int y_acc = ACC.getY();

  //----------Z Values-----------------------
  int z_acc = ACC.getZ();

  //-------------------------------

  USB.print("\n------------------------------\nCheck: 0x"); 
  USB.println(check, HEX);
  USB.println("\n \t0X\t0Y\t0Z"); 
  USB.print(" ACC\t"); 
  USB.print(x_acc, DEC);
  USB.print("\t"); 
  USB.print(y_acc, DEC);
  USB.print("\t"); 
  USB.println(z_acc, DEC);


    // Get accelerometer status
    status=ACC.getStatus();
    USB.print("status: ");
    USB.println(status,BIN);
       
    // Get CTRL1 register
    ctrl1=ACC.getCTRL1();
    USB.print("ctrl1: ");
    USB.println(ctrl1,BIN);
    // Set CTRL1 register to other value
    if(!ACC.setCTRL1(B01010111))
    {
        // Check the register was changed
        ctrl1=ACC.getCTRL1();
        USB.print("ctrl1: ");
        USB.println(ctrl1,BIN);
    }
    
    // Get CTRL2 register
    ctrl2=ACC.getCTRL2();
    USB.print("ctrl2: ");
    USB.println(ctrl2,BIN);
    // Set CTRL2 register to other value
    if(!ACC.setCTRL2(B00000000))
    {
        // Check the register was changed
        ctrl2=ACC.getCTRL2();
        USB.print("ctrl2: ");
        USB.println(ctrl2,BIN);
    }
    
    // Get CTRL3 register
    ctrl3=ACC.getCTRL3();
    USB.print("ctrl3: ");
    USB.println(ctrl3,BIN);
    // Set CTRL3 register to other value
    if(!ACC.setCTRL3(B00001000))
    {
        // Check the register was changed
        ctrl3=ACC.getCTRL3();
        USB.print("ctrl3: ");
        USB.println(ctrl3,BIN);
    }
    // Another way to write into a register
    if(!ACC.writeRegister(ctrlReg3,B00001000))
    {
        // Another way to read from a register
        ctrl3=ACC.readRegister(ctrlReg3);
        USB.print("ctrl3: ");
        USB.println(ctrl3,BIN);
    }
    
    // Get ADC mode: 16 bit or 12 bit mode
    adcMode=ACC.getADCmode();
    USB.print("adcMode: ");
    USB.println(adcMode,DEC);
    if(!ACC.setADCmode(0))
    {
        adcMode=ACC.getADCmode();
        USB.print("adcMode: ");
        USB.println(adcMode,DEC);
    }
    
    delay(2000);
}
    

Download code

You can download the code of this example.


© Libelium Comunicaciones Distribuidas S.L.

| Terms of use