![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
test code for hdc1080 humidity sensor
Fork of Nucleo-F303K8-SSD1306_OLED by
main.cpp
- Committer:
- joeata2wh
- Date:
- 2016-03-21
- Revision:
- 1:90d213185462
- Parent:
- 0:fa185766e039
- Child:
- 2:dc3e84d595c3
File content as of revision 1:90d213185462:
/* Example of Reading all the ADC pins PIN and display ot OLED display using Nucleo_F303K8 by Joseph Ellsworth CTO A2WH - Free for all but no warranty, no promises Attempt to drive: ebay part http://www.ebay.com/itm/152000005331?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT 0-96-I2C-IIC-SPI-Serial-White-OLED-LCD-LED-Display-Module-128X64 The Datasheet. https://www.adafruit.com/datasheets/SSD1306.pdf Unfortunately this part never turns on using the SSD1308 library. Not sure why and don't have time to finish tracking it down at this time. Using my I2C address scanner I found that it responds on Added 120 (x78) ,121 (x79) and when the part was unsoldered nothing responded on 120 or 121. According to to the page #19 (8.1.5) of the data sheet the I2C address should be 011110 which seems to map correctly to dec=120 hex=79 so I think the chip is responsive and the library must be sending incorrect commands. */ #include "mbed.h" #include "SSD1308.h" //#include "mbed_logo.h" //Pin Defines for I2C Bus #define D_SDA PB_7 // specific for Nucleo-F303K8 #define D_SCL PB_6 // specific for Nucleo-F303K8 I2C i2c(D_SDA, D_SCL); // Host PC Communication channels Serial pc(USBTX, USBRX); // tx, rx // Instantiate OLED //SSD1308 oled = SSD1308(i2c, SSD1308_SA0); SSD1308 oled = SSD1308(i2c, SSD1308_SA1); //SSD1308 oled = SSD1308(i2c, 120); AnalogIn pa0(PA_0); DigitalOut myled(LED1); const float voltMeterARef = 3.3; char buff[100]; 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); sprintf(buff, "V=%3.3f%",volts); oled.printf(buff); return tval; } int main() { pc.printf("OLED test start\r"); oled.writeString(0, 0, "Hello World !"); oled.printf("Hello World !"); oled.fillDisplay(0xAA); oled.setDisplayOff(); wait(1); oled.setDisplayOn(); oled.clearDisplay(); oled.setDisplayInverse(); wait(0.5); oled.setDisplayNormal(); //oled.writeBitmap((uint8_t*) mbed_logo); pc.printf("OLED test done\r\n"); while(1) { myled = !myled; // toggle led readPrint(pa0, "PA_0"); wait(7.0); } }