A collection of Analog Devices drivers for the mbed platform
For additional information check out the mbed page of the Analog Devices wiki: https://wiki.analog.com/resources/tools-software/mbed-drivers-all
libraries/cn0357/cn0357.h
- Committer:
- Suciu
- Date:
- 2016-03-30
- Revision:
- 1:c1f0670bb370
- Child:
- 3:1a8c14043a4e
File content as of revision 1:c1f0670bb370:
/**
* @file CN0357.h
* @brief Header file for CN0357 toxic gas sensor shield
* @version V0.1
* @author ADI
* @date March 2015
**/
#ifndef CN0357_H
#define CN0357_H
#include "mbed.h"
#include "ad7790.h"
#include "ad5270.h"
/**
* @brief EVAL-CN0357 toxic gas sensor shield
*/
class CN0357
{
public:
/// CN0357 shield jumper configuration
typedef enum {
INTERNAL_AD7790 = 0, ///< The shield's AD7790 is used
EXTERNAL_ADC ///< Sensor analog output is routed to A1 pin of the shield
} JumperConfig_t;
CN0357(PinName CSAD7790=D8, PinName CSAD5270=D6, PinName MOSI=SPI_MOSI,PinName MISO=SPI_MISO,PinName SCK=SPI_SCK);
void init(float range, float sensitivity,JumperConfig_t jp = INTERNAL_AD7790, uint8_t mode_val = _DEFAULT_MODE_VAL, uint8_t filter_val = _DEFAULT_FILTER_VAL);
uint8_t read_adc_status(void);
uint16_t read_sensor(void);
float read_sensor_voltage(void);
float data_to_voltage(uint16_t data);
float calc_ppm(float adcVoltage);
float read_ppm(void);
void set_RDAC_value(float resistor_val);
float get_RDAC_value(void);
float set_sensor_parameters(float range, float sensitivity);
float get_sensor_range(void);
float get_sensor_sensitivity(void);
AD7790 ad7790; ///< AD7790 instance - can be used for manual overriding
AD5270 ad5270; ///< AD5270 instance - can be used for manual overriding
private:
const static int _RESET = 0xff;
const static int _DEFAULT_MODE_VAL = 0x00;
const static int _DEFAULT_FILTER_VAL = 0x07;
float _sensor_sensitivity;
float _sensor_range;
float _RDACvalue;
void _rdac_init(float resistanceValue);
void _AD7790_init(uint8_t mode_val, uint8_t filter_val);
};
#endif // CN0357_H
CN0357 - Toxic gas measurement
CN0216 - Weight Scale