0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
DFR0507

DFR0507

  • 厂商:

    DFROBOT

  • 封装:

  • 描述:

    SSD1360 OLED 显示 FireBeetle 平台评估扩展板

  • 数据手册
  • 价格&库存
DFR0507 数据手册
FireBeetle Covers-OLED12864 Display SKU: DFR0507 FireBeetle Covers-OLED12864 Display Contents • • • • • • • • 1 Introduction 2 Specification 3 Function Diagram 4 Pin Out 5 Tutorial o 5.1 Preparation o 5.2 Image o 5.3 Paint o 5.4 Clock o 5.5 Progress Bar o 5.6 UI 6 Dimension 7 FAQ 8 More Documents Introduction DFRobot FireBeetle firefly series is low-power development component designed for the IoT. This FireBeetle covers display module is equipped with 128x64 resolution OLED and new version of SSD1360 driver, uses I2C interface, supports for the Arduino library and microPython, fully compatible with the Gravity I2C OLED-2864 screen. OLED screen has a protective frame to protect the screen, it prevents the finger from being scratched on the edge of the glass. The OLED 12864 display module also integrates the GT30L24A3W Chinese / foreign font library chip and the BMA220 three-axis accelerometer. In addition, the FireBeetle Covers-OLED12864 display features an analog directional key and two independent digital keys A and B. Specification • • • • • • • • • • • • • • • • • • • • • • • • • • • Voltage Range: 3.7V-5.5V 2 User Buttons: Using digital port D4, D8 detection mode 5-way Switch: Using analog port A0 detection mode Three- axis Accelerometer BMA220: IIC Data Bus: IIC Dimension: 0.079x0.079x0.035in/2x2x0.9mm Resolution: 6 bit Range: 2/4/8/16g Power Consumption: 250uA OLED Model: UG-2864HLBEG01 Dimension: 0.96in Color: blue Data Bus: IIC Pixel:128x64 Font Chip: GT30L24A3W Data Bus: SPI Character Set: GB18030 Simplified Chinese/Traditional Chinese KSC5601 Korean JIS0208 Japanese 180 Foreign Font Support for Multinational Unicode IS08859 and CODE PAGE Chinese Character Size:12 dot matrix, 16dot matrix, 24dot matrix Foreign Character Size:16 dot matrix, 24 dot matrix Working Current: 12mA Function Diagram Fig1: FireBeetle Covers-OLED12864 Display Functional Module • • • AD4 BD8 5-way SwitchA0 Pin Out Fig2: FireBeetle Covers-OLED12864 Display Pinout NOTE: NC do not need to connect, and the VCC is the power supply voltage output. Tutorial Preparation • • • • • • • Hardware 1 x ESP32 1 x FireBeetle Covers-OLED12864 Software Arduino IDE 1.8+ Please download FireBeetle Covers-OLED12864 Display library first. Do you need to install any additional libraries? Explain it here How to install Libraries in Arduino IDE NOTE: All of the following examples are belong to DFRobot_OLED12864 library files Image • Open Dfrobot_OLED12864 Image Demo void setup() { #include "DFRobot_OLED12864.h" // Include custom images #include "images.h" // Initialize the OLED display using Wire library DFRobot_OLED12864 display(0x3c); void setup() { Serial.begin(115200); Serial.println(); Serial.println(); // Initialising the UI will init the display too. display.init(); display.flipScreenVertically();// flip vertical display.clear(); drawImageDemo(); display.display(); } void drawImageDemo() { display.drawXbm(0, 0, Picture_width, Picture_height, Picture_bits); } void loop() { } • • • Function: After download this demo the screen will display our logo (notice that the picture file "images.h" has been in the project folder, if you need to replace the picture, you can use The Dot Factory to generate bitmaps) Function Declaration: Create an object and write the I2C address DFRobot _OLED12864 • display(0x3c) Initialize OLED and library init() • Flip screen vertically flipScreenVertically • Clear data clear() • Import the specified width-high data at the x, y-axis position, starting at the top left corner. drawXbm(0, 0, Picture_width, Picture_height, Picture_bits) • Flush the data from OLED to the screen. If not called, the data will only be stored in the OLED and will not be displayed. display() Paint • Open DFRobot_OLED12864 Drawing Demo #include "DFRobot_OLED12864.h" // Initialize the OLED display using Wire library DFRobot_OLED12864 display(0x3c); void drawLines() { for (int16_t i=0; i=0; i-=4) { display.drawLine(DISPLAY_WIDTH-1, DISPLAY_HEIGHT-1, 0, i); display.display(); delay(10); } delay(250); display.clear(); for (int16_t i=0; idrawLine( clockCenterX + x , clockCenterY + y , x3 + x , y3 + y); // // display hour hand angle = hour() * 30 + int( ( minute() / 12 ) * 6 ) ; angle = ( angle / 57.29577951 ) ; //Convert degrees to radians x3 = ( clockCenterX + ( sin(angle) * ( clockRadius - ( clockRadius / 2 ) ) ) ); y3 = ( clockCenterY - ( cos(angle) * ( clockRadius - ( clockRadius / 2 ) ) ) ); display->drawLine( clockCenterX + x , clockCenterY + y , x3 + x , y3 + y); } void digitalClockFrame(OLEDDisplay *display, OLEDDisplayUiState* state, int16 _t x, int16_t y) { String timenow = String(hour())+":"+twoDigits(minute())+":"+twoDigits(secon d()); display->setTextAlignment(TEXT_ALIGN_CENTER); display->setFont(ArialMT_Plain_24); display->drawString(clockCenterX + x , clockCenterY + y, timenow ); } // This array keeps function pointers to all frames // frames are the single views that slide in FrameCallback frames[] = { analogClockFrame, digitalClockFrame }; // how many frames are there? int frameCount = 2; // Overlays are statically drawn on top of a frame eg. a clock OverlayCallback overlays[] = { clockOverlay }; int overlaysCount = 1; void setup() { Serial.begin(115200); Serial.println(); // The ESP is capable of rendering 60fps in 80Mhz mode // but that won't give you much time for anything else // run it in 160Mhz mode or just set it to 30 fps ui.setTargetFPS(60); // Customize the active and inactive symbol ui.setActiveSymbol(activeSymbol); ui.setInactiveSymbol(inactiveSymbol); // You can change this to // TOP, LEFT, BOTTOM, RIGHT ui.setIndicatorPosition(TOP); // Defines where the first frame is located in the bar. ui.setIndicatorDirection(LEFT_RIGHT); // You can change the transition that is used // SLIDE_LEFT, SLIDE_RIGHT, SLIDE_UP, SLIDE_DOWN ui.setFrameAnimation(SLIDE_LEFT); // Add frames ui.setFrames(frames, frameCount); // Add overlays ui.setOverlays(overlays, overlaysCount); // Initialising the UI will init the display too. ui.init(); display.flipScreenVertically(); unsigned long secsSinceStart = millis(); // Unix time starts on Jan 1 1970. In seconds, that's 2208988800: const unsigned long seventyYears = 2208988800UL; // subtract seventy years: unsigned long epoch = secsSinceStart - seventyYears * SECS_PER_HOUR; setTime(epoch); } void loop() { int remainingTimeBudget = ui.update(); if (remainingTimeBudget > 0) { // You can do some work here // Don't do stuff if you are below your // time budget. delay(remainingTimeBudget); } } • • • Function:Switch between an analog dial frame and a digital clock frame every 5 seconds. Function Declaration: Create an UI object and specify its OLED object OLEDDisplayUi ui ( &display ): • Set FPS setTargetFPS(fps) • Set active screen identification setActiveSymbol(activeSymbol) • Set inactive screen identification setInactiveSymbol(inactiveSymbol) • Set the position of the indicator setIndicatorPosition(pos) • Set the direction of indicator setIndicatorDirection(direction) • Set the slide direction of the frame setFrameAnimation(direction) • Set frames setFrames(frames, count) • Set overlays setOverlays(overlays, count) • Set time setTime(time) • Update frame update() • Set the time to automatically Update the Screen(the unit is ms) setTimePerFrame(time) • Allow automatic scrolling enableAutoTransition() • Prohibit automatic scrolling disableAutoTransition() • Set the content of display transitionToFrame(frame) Progress Bar #include "DFRobot_OLED12864.h" // alias for `#include "DFRobot_OLED12864Wire. h"` // Initialize the OLED display using Wire library DFRobot_OLED12864 display(0x3c); int counter = 1; void setup() { Serial.begin(115200); Serial.println(); Serial.println(); // Initialising the UI will init the display too. display.init(); display.flipScreenVertically(); } void drawProgressBarDemo() { int progress = (counter / 5) % 100; // draw the progress bar display.drawProgressBar(0, 32, 120, 10, progress); // draw the percentage as String display.setTextAlignment(TEXT_ALIGN_CENTER); display.drawString(64, 15, String(progress) + "%"); } void loop() { // clear the display display.clear(); // draw the current demo method drawProgressBarDemo(); // write the buffer to the display display.display(); counter++; delay(10); } • • • Function: Display the progress bar on the screen Function Declaration: Draw progress bar drawProgressBar(x, y, width, height, progress) • Formatting fonts setTextAlignment(alignment) • Draw string in specified location drawString(x, y, string) UI • Open DFRobot_OLED12864 UI Demo #include "DFRobot_OLED12864.h" // Include the UI lib #include "OLEDDisplayUi.h" // Include custom images #include "images.h" // Initialize the OLED display using Wire library DFRobot_OLED12864 display(0x3c); OLEDDisplayUi ui(&display); void msOverlay(OLEDDisplay *display, OLEDDisplayUiState* state) { display->setTextAlignment(TEXT_ALIGN_RIGHT); display->setFont(ArialMT_Plain_10); display->drawString(128, 0, String(millis())); } void drawFrame1(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, i nt16_t y) { // draw an xbm image. // Please note that everything that should be transitioned // needs to be drawn relative to x and y display->drawXbm(x + 34, y + 14, WiFi_Logo_width, WiFi_Logo_height, WiFi_Lo go_bits); } void drawFrame2(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, i nt16_t y) { // Demonstrates the 3 included default sizes. The fonts come from DFRobot_O LED12864Fonts.h file // Besides the default fonts there will be a program to convert TrueType fo nts into this format display->setTextAlignment(TEXT_ALIGN_LEFT); display->setFont(ArialMT_Plain_10); display->drawString(0 + x, 10 + y, "Arial 10"); display->setFont(ArialMT_Plain_16); display->drawString(0 + x, 20 + y, "Arial 16"); display->setFont(ArialMT_Plain_24); display->drawString(0 + x, 34 + y, "Arial 24"); } void drawFrame3(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, i nt16_t y) { // Text alignment demo display->setFont(ArialMT_Plain_10); // The coordinates define the left starting point of the text display->setTextAlignment(TEXT_ALIGN_LEFT); display->drawString(0 + x, 11 + y, "Left aligned (0,10)"); // The coordinates define the center of the text display->setTextAlignment(TEXT_ALIGN_CENTER); display->drawString(64 + x, 22 + y, "Center aligned (64,22)"); // The coordinates define the right end of the text display->setTextAlignment(TEXT_ALIGN_RIGHT); display->drawString(128 + x, 33 + y, "Right aligned (128,33)"); } void drawFrame4(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, i nt16_t y) { // Demo for drawStringMaxWidth: // with the third parameter you can define the width after which words will be wrapped. // Currently only spaces and "-" are allowed for wrapping display->setTextAlignment(TEXT_ALIGN_LEFT); display->setFont(ArialMT_Plain_10); display->drawStringMaxWidth(0 + x, 10 + y, 128, "Lorem ipsum\n dolor sit am et, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut la bore."); } void drawFrame5(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, i nt16_t y) { } // This array keeps function pointers to all frames // frames are the single views that slide in FrameCallback frames[] = { drawFrame1, drawFrame2, drawFrame3, drawFrame4, dr awFrame5 }; // how many frames are there? int frameCount = 5; // Overlays are statically drawn on top of a frame eg. a clock OverlayCallback overlays[] = { msOverlay }; int overlaysCount = 1; void setup() { Serial.begin(115200); Serial.println(); Serial.println(); // The ESP is capable of rendering 60fps in 80Mhz mode // but that won't give you much time for anything else // run it in 160Mhz mode or just set it to 30 fps ui.setTargetFPS(60); // Customize the active and inactive symbol ui.setActiveSymbol(activeSymbol); ui.setInactiveSymbol(inactiveSymbol); // You can change this to // TOP, LEFT, BOTTOM, RIGHT ui.setIndicatorPosition(BOTTOM); // Defines where the first frame is located in the bar. ui.setIndicatorDirection(LEFT_RIGHT); // You can change the transition that is used // SLIDE_LEFT, SLIDE_RIGHT, SLIDE_UP, SLIDE_DOWN ui.setFrameAnimation(SLIDE_LEFT); // Add frames ui.setFrames(frames, frameCount); // Add overlays ui.setOverlays(overlays, overlaysCount); // Initialising the UI will init the display too. ui.init(); display.flipScreenVertically(); } void loop() { int remainingTimeBudget = ui.update(); if (remainingTimeBudget > 0) { // You can do some work here // Don't do stuff if you are below your // time budget. delay(remainingTimeBudget); } } • • • Function: Switch between 5 frames Function declaration: User can edit the frame drawFrame5(*display, *state, x, y) Dimension • • • • • Pin Spacing: 2.54mm/0.1in Mounting hole spacing: 24mm/53mm 0.94/2.09in Mounting hole size: 3.1mm/0.12in Board Size: 29.00mm×58.00mm/1.14x2.28in Thickness:1.6mm/0.06in FireBeetle Covers-OLED12864 Display Dimensions FAQ For any questions, advice or cool ideas to share, please visit the DFRobot Forum. More Documents • Hardware Design https://www.dfrobot.com/wiki/index.php/FireBeetle_CoversOLED12864_Display_SKU:_DFR0507#More_Documents7-16-18
DFR0507 价格&库存

很抱歉,暂时无法提供与“DFR0507”相匹配的价格&库存,您可以联系我们找货

免费人工找货
DFR0507
    •  国内价格
    • 1+320.43966
    • 2+302.92929
    • 3+289.79652

    库存:5