Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: torque_calibration_ywsim
HX711.h@1:06652a775538, 2017-09-11 (annotated)
- 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?
User | Revision | Line number | New 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 |