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.
main.cpp@0:cb63da12fdcc, 2019-11-26 (annotated)
- Committer:
- wakabanban
- Date:
- Tue Nov 26 04:49:45 2019 +0000
- Revision:
- 0:cb63da12fdcc
ADC Sample
Who changed what in which revision?
User | Revision | Line number | New 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 | */ |