Testing SHT75 humidity sensor on STM F303K8 board.
Fork of Nucleo-F303K8-SSD1306_OLED by
Sample code to test SHT75 humidity sensor using STM F303K8 board. Uses a 3.3V from board to power sensor. 10K resistor Pull-up on data. Must not be on same pins as I2C. Uses D0 for Clk and D1 for Data.
I had to modify sample code supplied by https://developer.mbed.org/users/nimbusgb/code/SHT75/ because the sensor failed to read without the softReset() and readStatus() at beginning of measurement loop. I think this is caused by the 72Mhtz speed of the F303K8 but did not attempt to fully diagnose.
The readStatus() method from library seems to malfunction and always return a -1 which never changes even when sensor is unplugged.
See https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/Humidity_Sensors/Sensirion_Humidity_Sensors_SHT7x_Datasheet_V5.pdf section 2.1 for wiring.
Diff: main.cpp
- Revision:
- 0:fa185766e039
- Child:
- 1:90d213185462
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Mar 19 02:18:42 2016 +0000 @@ -0,0 +1,52 @@ +/* Example of Reading all the ADC pins available on the Nucleo_F303K8. + by Joseph Ellsworth CTO A2WH - Free for all but no warranty, no promises */ + +#include "mbed.h" + +// Initialize a pins to perform analog input and digital output fucntions +AnalogIn aA7(PA_2); +AnalogIn aA6(PA_7); +AnalogIn aA5(PA_6); +AnalogIn aA4(PA_5); +AnalogIn aA3(PA_4); +AnalogIn aA2(PA_3); +AnalogIn aA1(PA_1); +AnalogIn aA0(PA_0); +AnalogIn aB0(PB_0); +AnalogIn aB1(PB_1); + +DigitalOut myled(LED1); +const float voltMeterARef = 3.3; + +float readPrint(AnalogIn ain, char *label) { + float tval = ain.read(); + float volts = tval * voltMeterARef; + float perc = tval * 100.0; + unsigned short tvalu16 = ain.read_u16 (); + + printf("adc %s R=%3.3f V=%3.3f%% U16=%u\r\n",label, tval, volts, tvalu16); + + return tval; +} + + +int main() { + + while(1) { + myled = !myled; // toggle led + readPrint(aA7, "PA_7"); + readPrint(aA6, "PA_6"); + readPrint(aA5, "PA_5"); + readPrint(aA4, "PA_4"); + readPrint(aA3, "PA_3"); + readPrint(aA2, "PA_2"); + readPrint(aA1, "PA_1"); + readPrint(aA0, "PA_0"); + + readPrint(aB0, "PB_0"); + readPrint(aB1, "PB_1"); + printf("\r\n\r\n"); + wait(7.0); + + } +}