Arduino for esp8266 1.3寸OLED 显示多边形缩放动画

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino for esp8266 1.3寸OLED 显示多边形缩放动画相关的知识,希望对你有一定的参考价值。

Arduino for esp8266 1.3寸OLED 显示多边形缩放动画

#include "SH1106Wire.h" //1.3寸用这个
//#include "SSD1306Wire.h"    //0.96寸用这个
#include "OLEDDisplayUi.h"
 
#if defined(ESP8266)    //OLED引脚定义
const int SDA_PIN = D2; //对应nodemcu接D5或者D1,,wemosD1mini的D2
const int SCL_PIN = D1; //对应nodemcu接D6或者D2,,wemosD1mini的D5

#endif

const int I2C_DISPLAY_ADDRESS = 0x3c;                      //I2c地址默认

SH1106Wire display(I2C_DISPLAY_ADDRESS, SDA_PIN, SCL_PIN); // 1.3寸用这个
//SSD1306Wire     display(I2C_DISPLAY_ADDRESS, SDA_PIN, SCL_PIN);   // 0.96寸用这个

OLEDDisplayUi ui     ( &display );

 
int nFrames = 36;

void HariChord(int frame);
 
void setup()   {                
  Serial.begin(115200);
  display.init();
  display.clear();
  display.display();
  //    display.flipScreenVertically(); //屏幕翻转
  // display.mirrorScreen();//使用分光棱镜显示需要用到此函数
  display.setContrast(240); //屏幕亮度
  ui.setTargetFPS(80);                   //刷新频率
  
  ui.disableAllIndicators();             //不显示页码小点。
 
  
  ui.enableAutoTransition();
  ui.setFrameAnimation(SLIDE_LEFT);           //切屏方向
  // ui.disableAutoTransition();
  ui.enableAutoTransition();
  ui.setAutoTransitionForwards();//设置自动过渡方向,

//  ui.setFrames(frames, numberOfFrames);       // 设置框架和显示屏幕内容数
//  ui.setTimePerFrame(5000);                   //设置切换时间
  ui.setTimePerTransition(500);//设置转场大约所需要时间
  // ui.setOverlays(overlays, numberOfOverlays); //设置覆盖的画面数
  ui.init();// UI负责初始化显示
}
 
 
void loop() {

  for (int frame=0; frame < 20; frame++)
  {
    HariChord(frame);
    delay(200);
  }
 
  for (int frame=(20-1); frame >= 0; frame--)
  {
    HariChord(frame);
     delay(200);
  }
}
 
void HariChord(int frame)
{
  display.clear();
  int n = 7;
  int r = frame * 64 / nFrames;
  float rot = frame * 2*PI / nFrames;
  for (int i=0; i<(n-1); i++)
  {
    float a = rot + i * 2*PI / n;
    int x1 = 64 + cos(a) * r;
    int y1 = 32 + sin(a) * r;
    for (int j=i+1; j<n; j++)
    {
      a = rot + j * 2*PI / n;
      int x2 = 64 + cos(a) * r;
      int y2 = 32 + sin(a) * r;
      display.drawLine(x1,y1, x2,y2);
    }
  }
  display.display();
}


以上是关于Arduino for esp8266 1.3寸OLED 显示多边形缩放动画的主要内容,如果未能解决你的问题,请参考以下文章

ESP8266 驱动1.3寸SH1106 OLED屏幕显示库

ESP8266+1.3寸OLED显示-U8g2图形库—IIC使用方法

ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针式时钟

ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针时钟+数字时钟显示

ESP8266 for Arduino开发环境安装

Arduino for ESP8266 快速入门(二)选择开发板