Hiro Ona / Mbed 2 deprecated Nucleo_073_OLED

Dependencies:   mbed

Committer:
wakabanban
Date:
Tue Nov 26 04:49:45 2019 +0000
Revision:
0:cb63da12fdcc
ADC Sample

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wakabanban 0:cb63da12fdcc 1 #include "Adafruit_SSD1306.h"
wakabanban 0:cb63da12fdcc 2
wakabanban 0:cb63da12fdcc 3 //---
wakabanban 0:cb63da12fdcc 4 #include "mbed.h"
wakabanban 0:cb63da12fdcc 5
wakabanban 0:cb63da12fdcc 6 AnalogIn analog_value(A0);
wakabanban 0:cb63da12fdcc 7 DigitalOut led(LED1);
wakabanban 0:cb63da12fdcc 8 //---
wakabanban 0:cb63da12fdcc 9
wakabanban 0:cb63da12fdcc 10 static char font[][10] = {
wakabanban 0:cb63da12fdcc 11 #if 0
wakabanban 0:cb63da12fdcc 12 {0x10,0x10,0x54,0x52,0x92,0x10,0x30,0x00}, // 小
wakabanban 0:cb63da12fdcc 13 {0x3c,0x24,0x58,0x10,0x3e,0xd2,0x1e,0x00}, // 名
wakabanban 0:cb63da12fdcc 14 {0x10,0xfe,0x10,0x38,0x54,0x92,0x10,0x00}, // 木
wakabanban 0:cb63da12fdcc 15 {0x98,0x1c,0xa8,0x3e,0x80,0x9c,0x9c,0x00}, // 浩
wakabanban 0:cb63da12fdcc 16 {0x10,0x7c,0xfe,0x28,0xfe,0x7c,0x10,0x00}, // 幸
wakabanban 0:cb63da12fdcc 17 {0x7e,0x40,0x7c,0x42,0x02,0x42,0x3c,0x00}, // 5
wakabanban 0:cb63da12fdcc 18 {0x3c,0x42,0x02,0x1c,0x02,0x42,0x3c,0x00}, // 3
wakabanban 0:cb63da12fdcc 19 {0x08,0xfe,0x08,0x0c,0x18,0xe8,0x18,0x00}, // 才
wakabanban 0:cb63da12fdcc 20 #endif
wakabanban 0:cb63da12fdcc 21 #if 1
wakabanban 0:cb63da12fdcc 22 {0x08,0xfe,0x08,0x0c,0x18,0xe8,0x18,0x00}, // 才
wakabanban 0:cb63da12fdcc 23 {0x3c,0x42,0x02,0x1c,0x02,0x42,0x3c,0x00}, // 3
wakabanban 0:cb63da12fdcc 24 {0x7e,0x40,0x7c,0x42,0x02,0x42,0x3c,0x00}, // 5
wakabanban 0:cb63da12fdcc 25 {0x10,0x7c,0xfe,0x28,0xfe,0x7c,0x10,0x00}, // 幸
wakabanban 0:cb63da12fdcc 26 {0x98,0x1c,0xa8,0x3e,0x80,0x9c,0x9c,0x00}, // 浩
wakabanban 0:cb63da12fdcc 27 {0x10,0xfe,0x10,0x38,0x54,0x92,0x10,0x00}, // 木
wakabanban 0:cb63da12fdcc 28 {0x3c,0x24,0x58,0x10,0x3e,0xd2,0x1e,0x00}, // 名
wakabanban 0:cb63da12fdcc 29 {0x10,0x10,0x54,0x52,0x92,0x10,0x30,0x00}, // 小
wakabanban 0:cb63da12fdcc 30 #endif
wakabanban 0:cb63da12fdcc 31 };
wakabanban 0:cb63da12fdcc 32
wakabanban 0:cb63da12fdcc 33
wakabanban 0:cb63da12fdcc 34 // OLEDとの通信に使用するI2Cオブジェクトを生成
wakabanban 0:cb63da12fdcc 35 I2C i2c(PC_1, PC_0);
wakabanban 0:cb63da12fdcc 36
wakabanban 0:cb63da12fdcc 37 // OLED制御クラスのインスタンス化
wakabanban 0:cb63da12fdcc 38 uint8_t i2cAddress = SSD_I2C_ADDRESS;
wakabanban 0:cb63da12fdcc 39 uint8_t rawHeight = 64;
wakabanban 0:cb63da12fdcc 40 uint8_t rawWidth = 128;
wakabanban 0:cb63da12fdcc 41
wakabanban 0:cb63da12fdcc 42 Adafruit_SSD1306_I2c oled(i2c,PB_0, i2cAddress, rawHeight, rawWidth);
wakabanban 0:cb63da12fdcc 43
wakabanban 0:cb63da12fdcc 44 unsigned int m_z=12434,m_w=33254;
wakabanban 0:cb63da12fdcc 45 unsigned int rnd() {
wakabanban 0:cb63da12fdcc 46 m_z = 36969 * (m_z & 65535) + (m_z >>16);
wakabanban 0:cb63da12fdcc 47 m_w = 18000 * (m_w & 65535) + (m_w >>16);
wakabanban 0:cb63da12fdcc 48 return ((m_z <<16) + m_w);
wakabanban 0:cb63da12fdcc 49 }
wakabanban 0:cb63da12fdcc 50
wakabanban 0:cb63da12fdcc 51 int main() {
wakabanban 0:cb63da12fdcc 52 uint16_t x=0;
wakabanban 0:cb63da12fdcc 53 uint16_t x1, y1, w, h;
wakabanban 0:cb63da12fdcc 54 i2c.frequency(1000000);
wakabanban 0:cb63da12fdcc 55 oled.clearDisplay();
wakabanban 0:cb63da12fdcc 56
wakabanban 0:cb63da12fdcc 57 //---
wakabanban 0:cb63da12fdcc 58 float meas_r;
wakabanban 0:cb63da12fdcc 59 float meas_v;
wakabanban 0:cb63da12fdcc 60 char str[100];
wakabanban 0:cb63da12fdcc 61 // printf("\nAnalogIn example\n");
wakabanban 0:cb63da12fdcc 62
wakabanban 0:cb63da12fdcc 63 while(1) {
wakabanban 0:cb63da12fdcc 64
wakabanban 0:cb63da12fdcc 65 meas_r = analog_value.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range)
wakabanban 0:cb63da12fdcc 66 meas_v = meas_r * 3300; // Converts value in the 0V-3.3V range
wakabanban 0:cb63da12fdcc 67
wakabanban 0:cb63da12fdcc 68 sprintf( str, "%f = %.0f mV", meas_r, meas_v);
wakabanban 0:cb63da12fdcc 69 oled.setTextCursor(0,0);
wakabanban 0:cb63da12fdcc 70 oled.printf( str );
wakabanban 0:cb63da12fdcc 71 oled.display();
wakabanban 0:cb63da12fdcc 72 // Display values
wakabanban 0:cb63da12fdcc 73 // printf("measure = %f = %.0f mV\n", meas_r, meas_v);
wakabanban 0:cb63da12fdcc 74
wakabanban 0:cb63da12fdcc 75 // LED is ON is the value is below 1V
wakabanban 0:cb63da12fdcc 76 if (meas_v < 1000) {
wakabanban 0:cb63da12fdcc 77 led = 1; // LED ON
wakabanban 0:cb63da12fdcc 78 } else {
wakabanban 0:cb63da12fdcc 79 led = 0; // LED OFF
wakabanban 0:cb63da12fdcc 80 }
wakabanban 0:cb63da12fdcc 81
wakabanban 0:cb63da12fdcc 82 wait(0.5); // 1 second
wakabanban 0:cb63da12fdcc 83 }
wakabanban 0:cb63da12fdcc 84 //---
wakabanban 0:cb63da12fdcc 85
wakabanban 0:cb63da12fdcc 86
wakabanban 0:cb63da12fdcc 87 // oled.printf("Onagi Hiropyuki.\r\n");
wakabanban 0:cb63da12fdcc 88 // oled.printf("%ux%u OLED Display\r\n\r\n", oled.width(), oled.height());
wakabanban 0:cb63da12fdcc 89 if(1){
wakabanban 0:cb63da12fdcc 90 while(1) {
wakabanban 0:cb63da12fdcc 91 for (int i=0 ; i<120 ; i+=1 ) {
wakabanban 0:cb63da12fdcc 92 //oled.clearDisplay();
wakabanban 0:cb63da12fdcc 93 oled.drawBitmap(i, 0, (uint8_t *)font, 10, 64, 1);
wakabanban 0:cb63da12fdcc 94 oled.display();
wakabanban 0:cb63da12fdcc 95 oled.drawBitmap(i, 0, (uint8_t *)font, 10, 64, 0);
wakabanban 0:cb63da12fdcc 96
wakabanban 0:cb63da12fdcc 97 }
wakabanban 0:cb63da12fdcc 98 for (int i=120 ; i>0 ; i-=1 ) {
wakabanban 0:cb63da12fdcc 99 //oled.clearDisplay();
wakabanban 0:cb63da12fdcc 100 oled.drawBitmap(i, 0, (uint8_t *)font, 10, 64, 1);
wakabanban 0:cb63da12fdcc 101 oled.display();
wakabanban 0:cb63da12fdcc 102 oled.drawBitmap(i, 0, (uint8_t *)font, 10, 64, 0);
wakabanban 0:cb63da12fdcc 103 }
wakabanban 0:cb63da12fdcc 104 }
wakabanban 0:cb63da12fdcc 105 return 0;
wakabanban 0:cb63da12fdcc 106
wakabanban 0:cb63da12fdcc 107 }
wakabanban 0:cb63da12fdcc 108
wakabanban 0:cb63da12fdcc 109 oled.drawRect( 0,0,127,63,1 );
wakabanban 0:cb63da12fdcc 110
wakabanban 0:cb63da12fdcc 111 while(1)
wakabanban 0:cb63da12fdcc 112 {
wakabanban 0:cb63da12fdcc 113 x++;
wakabanban 0:cb63da12fdcc 114 x1 = rnd() % 128;
wakabanban 0:cb63da12fdcc 115 y1 = rnd() % 64;
wakabanban 0:cb63da12fdcc 116 w = rnd() % (128 - x1);
wakabanban 0:cb63da12fdcc 117 h = rnd() % (64 - y1);
wakabanban 0:cb63da12fdcc 118 if ( x % 2 ) {
wakabanban 0:cb63da12fdcc 119 //oled.drawRect( x1, y1, w, h, 1 );
wakabanban 0:cb63da12fdcc 120 oled.drawBitmap(x1, y1, (uint8_t *)font, 82, 8, 1);
wakabanban 0:cb63da12fdcc 121 } else {
wakabanban 0:cb63da12fdcc 122 oled.drawCircle( x1, y1, w, 1 );
wakabanban 0:cb63da12fdcc 123 }
wakabanban 0:cb63da12fdcc 124
wakabanban 0:cb63da12fdcc 125 oled.display();
wakabanban 0:cb63da12fdcc 126 if ( x > 100 ) {
wakabanban 0:cb63da12fdcc 127 x = 0;
wakabanban 0:cb63da12fdcc 128 }
wakabanban 0:cb63da12fdcc 129 wait(0.5);
wakabanban 0:cb63da12fdcc 130 oled.clearDisplay();
wakabanban 0:cb63da12fdcc 131 }
wakabanban 0:cb63da12fdcc 132 }
wakabanban 0:cb63da12fdcc 133
wakabanban 0:cb63da12fdcc 134 /*
wakabanban 0:cb63da12fdcc 135 #include "mbed.h"
wakabanban 0:cb63da12fdcc 136
wakabanban 0:cb63da12fdcc 137 DigitalOut myled(LED1);
wakabanban 0:cb63da12fdcc 138
wakabanban 0:cb63da12fdcc 139 int main() {
wakabanban 0:cb63da12fdcc 140 while(1) {
wakabanban 0:cb63da12fdcc 141 myled = 1; // LED is ON
wakabanban 0:cb63da12fdcc 142 wait(0.2); // 200 ms
wakabanban 0:cb63da12fdcc 143 myled = 0; // LED is OFF
wakabanban 0:cb63da12fdcc 144 wait(1.0); // 1 sec
wakabanban 0:cb63da12fdcc 145 }
wakabanban 0:cb63da12fdcc 146 }
wakabanban 0:cb63da12fdcc 147 */