上个图片。
程序源码:
- /*
- * 16X16点阵显示 取模方式 阴码+逐行式+顺向
- **/
- #include <Wire.h>
- #include <Adafruit_GFX.h>
- #include <Adafruit_SSD1306.h>
- #define OLED_RESET 4
- Adafruit_SSD1306 display(OLED_RESET);
- #define NUMFLAKES 10
- #define XPOS 0
- #define YPOS 1
- #define DELTAY 2
- #define LOGO16_GLCD_HEIGHT 16
- #define LOGO16_GLCD_WIDTH 16
- #if (SSD1306_LCDHEIGHT != 64)
- #error("Height incorrect, please fix Adafruit_SSD1306.h!");
- #endif
- int r,xo,yo,a,z;//动画变量不能用char型变量无法计算
- int sec;//动画变量不能用char型变量无法计算
- void setup() {
- Serial.begin(115200);
- delay(500);
- display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
- }
- void loop() {
-
- sec++;
- if(sec==60)sec=0;
- //1.检测全屏显示(看看有没有大面积坏点)
- display.fillScreen(WHITE);//检测全屏显示(看看有没有大面积坏点)
- display.clearDisplay(); // clears the screen and buffer
-
- //14.显示数字变量
- display.setTextSize(3);//设置字体大小
- display.setTextColor(WHITE);//设置字体不反白
- display.setCursor(0,20);// 列127 行63 坐标
- display.println(sec/10);
- display.setCursor(22,20);// 列127 行63 坐标
- display.println(sec%10);
- //6.画空心圆
- display.drawCircle(xo,yo,25,WHITE);//(控制圆心位置列0/127 控制圆心位置行0/63 )(控制大小=0+x )
-
- //不能用char型变量无法计算
- r=16;//指针半径
- xo=70;//圆心坐标
- yo=28;//圆心坐标
- // a=6;//圆角度
- z=180;//圆
- a=sec*6;//圆角度
- //3. 画线 从(0,0)到(50,50
- if(sec==0 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==1 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==2 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==3 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==4 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==5 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==6 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==7 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==8 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==9 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
-
- if(sec==10 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==11 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==12 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==13 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==14 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==15 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==16 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==17 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==18 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==19 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
-
- if(sec==20 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==21 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==22 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==23 ){ ;display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==24 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==25 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==26 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==27 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==28 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==29 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
-
- if(sec==30 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==31 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==32 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==33 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==34 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==35 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==36 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==37 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==38 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==39 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
-
- if(sec==40 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==41 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==42 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==43 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==44 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==45 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==46 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==47 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==48 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==49 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
-
- if(sec==50 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==51 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==52 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==53 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==54 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==55 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==56 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==57 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==58 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
- if(sec==59 ){ display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);}//(开始列127 开始行63)( 结束列127 结束行63) /////00
-
- //13.显示英文
- display.setTextSize(1);//设置字体大小
- display.setTextColor(WHITE);//设置字体不反白
- display.setCursor(xo-5,yo-22);//列127 行63 坐标
- display.println("12");
- display.setCursor(xo+18,yo-5);//列127 行63 坐标
- display.println("3");
- display.setCursor(xo-2,yo+15);//列127 行63 坐标
- display.println("6");
- display.setCursor(xo-22,yo-5);//列127 行63 坐标
- display.println("9");
-
- display.display();
- //delay(2000);
-
-
- }
复制代码
|