Load cell amplifier interface
Revision 0:d47fb3d4b918, committed 2015-03-31
- Comitter:
- jimconner
- Date:
- Tue Mar 31 17:42:18 2015 +0000
- Commit message:
- Mostly workingish code... the numbers change appropriately when I put weight on the load cell.
Changed in this revision
hx711.cpp | Show annotated file Show diff for this revision Revisions of this file |
hx711.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r d47fb3d4b918 hx711.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hx711.cpp Tue Mar 31 17:42:18 2015 +0000 @@ -0,0 +1,48 @@ +/* mbed library for HX711 Load Cell Amplifier/24-bit A/D converter + * Copyright (c) 2015 Jim Conner + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "hx711.h" +#include "mbed.h" + +//#define BPP 16 // Bits per pixel + +// Constructor +HX711::HX711(PinName clk, PinName addo) : clk(clk), addo(addo) +{ + + +} + +// Destructor +HX711::~HX711(void) {} + + +// Reading data from the converter +long HX711::readData(void) +{ + unsigned char i; + unsigned long Count; + clk=0; + Count=0; + while(addo); + for (i=0;i<24;i++) { + clk=1; + Count=Count<<1; + clk=0; + if(addo) Count++; + } + clk=1; + Count=Count ^0x800000; + clk=0; + return(Count); +} +
diff -r 000000000000 -r d47fb3d4b918 hx711.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hx711.h Tue Mar 31 17:42:18 2015 +0000 @@ -0,0 +1,48 @@ +/* mbed library for HX711 Load Cell Amplifier/24-bit A/D converter + * Copyright (c) 2015 Jim Conner + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** Some stuff to make the load cell work. + */ + +#include "mbed.h" + +#ifndef HX711_H +#define HX711_H + +/* some definitiions go in here */ +//#define Black 0x0000 /* 0, 0, 0 */ + +// Load Cell control class + class HX711 + { + public: + + /** Create an HX711 object connected to Clock and Data pins + * + * @param clk pin connected to clock line of HX711 board + * @param addo pin connected to data line of HX711 board + */ + HX711(PinName clk, PinName addo); + ~HX711(); + + /** Read data from the HX711 interface + * @return reading from ADC as an int. + */ + long readData(void); + +private: + DigitalOut clk; + DigitalIn addo; + +}; + +#endif