Sim Youngwoo / HX711

Dependents:   torque_calibration_ywsim

Committer:
mcm
Date:
Mon Sep 11 10:43:54 2017 +0000
Revision:
1:06652a775538
Parent:
0:3a3567ddc17e
Child:
2:1af13a8a8275
Power down and Reset functions were performed.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mcm 1:06652a775538 1 /**
mcm 1:06652a775538 2 * @brief HX711.h
mcm 1:06652a775538 3 * @details 24-Bit Analog-to-Digital Converter (ADC) for Weigh Scales.
mcm 1:06652a775538 4 * Header file.
mcm 1:06652a775538 5 *
mcm 1:06652a775538 6 *
mcm 1:06652a775538 7 * @return NA
mcm 1:06652a775538 8 *
mcm 1:06652a775538 9 * @author Manuel Caballero
mcm 1:06652a775538 10 * @date 11/September/2017
mcm 1:06652a775538 11 * @version 11/September/2017 The ORIGIN
mcm 1:06652a775538 12 * @pre NaN.
mcm 1:06652a775538 13 * @warning NaN
mcm 1:06652a775538 14 * @pre This code belongs to Nimbus Centre ( http://www.nimbus.cit.ie ).
mcm 1:06652a775538 15 */
mcm 1:06652a775538 16 #ifndef HX711_H
mcm 1:06652a775538 17 #define HX711_H
mcm 1:06652a775538 18
mcm 1:06652a775538 19 #include "mbed.h"
mcm 1:06652a775538 20
mcm 1:06652a775538 21
mcm 1:06652a775538 22 /**
mcm 1:06652a775538 23 Example:
mcm 1:06652a775538 24
mcm 1:06652a775538 25 [todo]
mcm 1:06652a775538 26 */
mcm 1:06652a775538 27
mcm 1:06652a775538 28
mcm 1:06652a775538 29 /*!
mcm 1:06652a775538 30 Library for the HX711 24-Bit Analog-to-Digital Converter (ADC) for Weigh Scales.
mcm 1:06652a775538 31 */
mcm 1:06652a775538 32 class HX711
mcm 1:06652a775538 33 {
mcm 1:06652a775538 34 public:
mcm 1:06652a775538 35 /**
mcm 1:06652a775538 36 * @brief CHANNELS & GAIN
mcm 1:06652a775538 37 */
mcm 1:06652a775538 38 typedef enum {
mcm 1:06652a775538 39 CHANNEL_A_GAIN_128 = 0, /*!< Channel A 128 Gain. */
mcm 1:06652a775538 40 CHANNEL_B_GAIN_32 = 1, /*!< Channel B 32 Gain. */
mcm 1:06652a775538 41 CHANNEL_A_GAIN_64 = 2 /*!< Channel A 64 Gain. */
mcm 1:06652a775538 42 } HX711_channel_gain_t;
mcm 1:06652a775538 43
mcm 1:06652a775538 44
mcm 1:06652a775538 45
mcm 1:06652a775538 46 /**
mcm 1:06652a775538 47 * @brief READY/#BUSY BIT
mcm 1:06652a775538 48 */
mcm 1:06652a775538 49 typedef enum {
mcm 1:06652a775538 50 HX711_DATA_BUSY = 0, /*!< HX711 data is NOT ready to be read. */
mcm 1:06652a775538 51 HX711_DATA_READY = 1 /*!< HX711 data is ready to be read. */
mcm 1:06652a775538 52 } HX711_data_output_status_t;
mcm 1:06652a775538 53
mcm 1:06652a775538 54
mcm 1:06652a775538 55
mcm 1:06652a775538 56 /*
mcm 1:06652a775538 57 #ifndef VECTOR_STRUCT_H
mcm 1:06652a775538 58 #define VECTOR_STRUCT_H
mcm 1:06652a775538 59 typedef struct {
mcm 1:06652a775538 60 uint16_t EEPROM_Data;
mcm 1:06652a775538 61 uint16_t DAC_Data;
mcm 1:06652a775538 62 } Vector_data_t;
mcm 1:06652a775538 63
mcm 1:06652a775538 64 typedef struct {
mcm 1:06652a775538 65 uint32_t DAC_New_Value;
mcm 1:06652a775538 66 } Vector_new_dac_value_t;
mcm 1:06652a775538 67 #endif
mcm 1:06652a775538 68 */
mcm 1:06652a775538 69
mcm 1:06652a775538 70
mcm 1:06652a775538 71 /**
mcm 1:06652a775538 72 * @brief INTERNAL CONSTANTS
mcm 1:06652a775538 73 */
mcm 1:06652a775538 74 #define HX711_PIN_HIGH 0x00 /*!< Pin 'HIGH' */
mcm 1:06652a775538 75 #define HX711_PIN_LOW 0x00 /*!< Pin 'LOW' */
mcm 1:06652a775538 76
mcm 1:06652a775538 77 typedef enum {
mcm 1:06652a775538 78 HX711_SUCCESS = 0,
mcm 1:06652a775538 79 HX711_FAILURE = 1,
mcm 1:06652a775538 80 } HX711_status_t;
mcm 1:06652a775538 81
mcm 1:06652a775538 82
mcm 1:06652a775538 83
mcm 1:06652a775538 84
mcm 1:06652a775538 85 /** Create an HX711 object connected to the specified pins.
mcm 1:06652a775538 86 *
mcm 1:06652a775538 87 * @param pd_sck HX711 Power down control (high active) and serial clock input
mcm 1:06652a775538 88 * @param dout HX711 Serial data output
mcm 1:06652a775538 89 * @param myChannelGain HX711 Channel and Gain
mcm 1:06652a775538 90 */
mcm 1:06652a775538 91 HX711 ( PinName PD_SCK, PinName DOUT, HX711_channel_gain_t myChannel_Gain );
mcm 1:06652a775538 92
mcm 1:06652a775538 93 /** Delete HX711 object.
mcm 1:06652a775538 94 */
mcm 1:06652a775538 95 ~HX711();
mcm 1:06652a775538 96
mcm 1:06652a775538 97 /** It performs an internal reset.
mcm 1:06652a775538 98 */
mcm 1:06652a775538 99 HX711_status_t HX711_Reset ( void );
mcm 1:06652a775538 100
mcm 1:06652a775538 101 /** It puts the device into power-down mode.
mcm 1:06652a775538 102 */
mcm 1:06652a775538 103 HX711_status_t HX711_PowerDown ( void );
mcm 1:06652a775538 104
mcm 1:06652a775538 105
mcm 1:06652a775538 106
mcm 1:06652a775538 107
mcm 1:06652a775538 108
mcm 1:06652a775538 109
mcm 1:06652a775538 110 private:
mcm 1:06652a775538 111 DigitalOut _PD_SCK;
mcm 1:06652a775538 112 DigitalIn _DOUT;
mcm 1:06652a775538 113 uint32_t _HX711_CHANNEL_GAIN;
mcm 1:06652a775538 114 };
mcm 1:06652a775538 115
mcm 1:06652a775538 116 #endif