找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2656|回复: 3
收起左侧

精品0.96寸液晶图形摸拟钟加摸拟温度计

[复制链接]
ID:358930 发表于 2018-7-14 12:10 来自手机 | 显示全部楼层 |阅读模式
图片在底部

  1. //A4  SDA
  2. //A5  SCL
  3. //0X57   0X68
  4. #include <Arduino.h>
  5. #include <DS3231.h>
  6. #include <Wire.h>
  7. #include <Adafruit_GFX.h>
  8. #include <Adafruit_SSD1306.h>

  9. int r,xo,yo,a,b,c,z;//动画变量不能用char型变量无法计算
  10. int sec;//动画变量不能用char型变量无法计算
  11. DS3231 Clock;
  12. bool Century=false;
  13. bool h12;
  14. bool PM;
  15. byte ADay, AHour, AMinute, ASecond, ABits;
  16. bool ADy, A12h, Apm;
  17. int second,minute,hour,date,month,year,DoW;
  18. byte   temperature;//温度

  19. #define OLED_RESET 4
  20. Adafruit_SSD1306 display(OLED_RESET);

  21. #define NUMFLAKES 10
  22. #define XPOS 0
  23. #define YPOS 1
  24. #define DELTAY 2

  25. #define LOGO16_GLCD_HEIGHT 16
  26. #define LOGO16_GLCD_WIDTH  16

  27. #if (SSD1306_LCDHEIGHT != 64)
  28. #error("Height incorrect, please fix Adafruit_SSD1306.h!");
  29. #endif
  30. int x;//动画变量

  31. //显示一个心形
  32. static const uint8_t PROGMEM Heart_16x16[] = {
  33.   0x00,0x00,0x18,0x18,0x3C,0x3C,0x7E,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  34.   0xFF,0xFF,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x03,0xC0,0x00,0x00//未命名文件0
  35. };
  36. static const uint8_t PROGMEM bbjj_16x16[] ={
  37. 0x00,0x00,0x23,0xF8,0x12,0x08,0x12,0x08,0x83,0xF8,0x42,0x08,0x42,0x08,0x13,0xF8,
  38. 0x10,0x00,0x27,0xFC,0xE4,0xA4,0x24,0xA4,0x24,0xA4,0x24,0xA4,0x2F,0xFE,0x00,0x00,/*"温",0*/

  39. 0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x22,0x20,
  40. 0x23,0xE0,0x20,0x00,0x2F,0xF0,0x24,0x10,0x42,0x20,0x41,0xC0,0x86,0x30,0x38,0x0E,/*"度",1*/
  41. };

  42. void setup()   {               
  43. // Serial.begin(115200);
  44.   delay(500);
  45. Wire.begin();
  46.       /*
  47.          //改时间
  48.         Clock.setSecond(10);//Set the second
  49.         Clock.setMinute(40);//Set the minute
  50.         Clock.setHour(1);  //Set the hour
  51.         Clock.setDoW(7);    //Set the day of the week
  52.         Clock.setDate(24);  //Set the date of the month
  53.         Clock.setMonth(6);  //Set the month of the year
  54.         Clock.setYear(18);  //Set the year (Last two digits of the year)
  55.       */
  56.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
  57. }
  58. void ReadDS3231()//读取时间
  59. {

  60.   second=Clock.getSecond(); //时间
  61.   minute=Clock.getMinute();//时间
  62.   hour=Clock.getHour(h12, PM);//时间
  63.   date=Clock.getDate(); //日期   
  64.   month=Clock.getMonth(Century);//日期
  65.   year=Clock.getYear();  //日期  
  66.   DoW=Clock.getDoW();//星期

  67.   temperature=Clock.getTemperature();//温度
  68. }
  69. void loop() {
  70.      ReadDS3231();//读取时间
  71.      
  72.   //1.检测全屏显示(看看有没有大面积坏点)
  73.   display.fillScreen(WHITE);//检测全屏显示(看看有没有大面积坏点)
  74.   display.clearDisplay();   // clears the screen and buffer

  75. /*
  76.    //2.画点 点坐标(10,10)  
  77.   display.drawPixel(20, 20, WHITE);// 列127 行63 画点 点坐标
  78.   
  79.   //3. 画线 从(0,0)到(50,50)
  80.   display.drawLine(20, 25,20,63, WHITE);//(开始列127  开始行63)( 结束列127 结束行63)
  81.   
  82.   //4.画空心矩形  左上角坐标(x0,y0)  右下角坐标(x1,y1)
  83.   display.drawRect(2,50,10,10,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y)
  84.   
  85.   //5.画个实心矩形
  86.   display.fillRect(2,35,10,10,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y)
  87.   
  88.    //6.画空心圆
  89.   display.drawCircle(36,50,6,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  90.   
  91.   //7.画实心圆
  92.   display.fillCircle(36,30,6,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  93.   
  94.   //8.画空心三角形
  95.   display.drawTriangle(60,32,45,43,70,43,WHITE);//(控制三角形A点列0/127 行0/63  控制三角形B点列0/127 行0/63 控制三角形C点列0/127 行0/63)
  96.   
  97.   //9.画实心三角形
  98.   display.fillTriangle(86,32,72,43,100,43,WHITE);//(控制三角形A点列0/127 行0/63  控制三角形B点列0/127 行0/63 控制三角形C点列0/127 行0/63)

  99.   //10.画空心圆角矩形
  100.   display.drawRoundRect(50,17,15,15,2,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y  控制圆角=+x)

  101. //11.画实心圆角矩形
  102.   display.fillRoundRect(70,17,15,15,2,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y  控制圆角=+x)

  103.   //12.画心形(自己用取模软件画的)相当于一个任意16X16字
  104.   display.drawBitmap(88,17,Heart_16x16,16,16,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=16  结束大小=16)这里只能是16X16因为是16X16字

  105. //13.显示英文
  106.   display.setTextSize(2);//设置字体大小
  107.   display.setTextColor(WHITE);//设置字体不反白
  108.   display.setCursor(0,0);//列127 行63     坐标
  109.   display.println("bb");
  110.   
  111.   //14.显示数字变量
  112.   display.setTextSize(2);//设置字体大小  
  113.   display.setTextColor(BLACK, WHITE); //设置字体反白
  114.   display.setCursor(30,0);//列127 行63     坐标
  115.   display.println(x);
  116.   
  117. //15.显示16进制变量
  118.   display.setTextSize(2);
  119.   display.setTextColor(WHITE);//设置字体不反白
  120.   display.setCursor(60,0);//列127 行63     坐标
  121.   display.print("0x");
  122.   display.println(x, HEX);

  123. //16.显示单个文字 就是调用drawBitmap(自己用取模软件取模)相当于一个任意16X16字
  124.   //display.drawBitmap(0,17,Strong_16x16,16,16,BLACK);//可用BLACK黑字在图片上显示(控制位置列0/127   控制位置行0/63  )(控制大小=16  结束大小=16)这里只能是16X16因为是16X16字
  125.   display.drawBitmap(0,17,Strong_16x16,16,16,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=16  结束大小=16)这里只能是16X16因为是16X16字

  126. //17.显示多个文字(在库里面加入一个ShowCN_16方法  为了同时显示多个中文 16X16 ,不然的话 就得一个一个drawBitmap)
  127.   display.ShowCN_16(0,45, bbjj_16x16,sizeof(bbjj_16x16)/32,WHITE);//查找数组法(控制位置列0/127   控制位置行0/63  )
  128. */
  129. //6.画空心圆
  130.    display.drawCircle(xo,yo,19,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  131.    display.drawCircle(xo,yo,25+6,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  132.   //7.画实心圆
  133.   display.fillCircle(xo,yo,2,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  134.    //不能用char型变量无法计算
  135.   r=17;//指针半径
  136.   xo=80;//圆心坐标x MAX 127
  137.   yo=32;//圆心坐标y  MAX 63
  138.   z=180;//圆
  139.   //second=0;//调整
  140.   // minute=0;//调整
  141.    // hour=0;//调整
  142.   int  hour1=hour;
  143.    if(hour1>12)
  144. {hour1=hour1-12;}
  145. else
  146. {hour1=hour1;}
  147.   a=(second-15)*6;//圆角度360/60
  148.   b=(minute-15)*6;//圆角度360/60
  149.   c=(hour1-15)*30;//圆角度360/12
  150.   //.画一圈实心圆
  151.    int B;  
  152.    for(B=0;B<12;B++)//.画一圈实心圆
  153.    {
  154.      int A=B*30;//圆角度
  155.     if(B==0||B==3||B==6||B==9)//跳过这几个点画实心圆
  156.     {}
  157.     else
  158.    {
  159.     display.fillCircle((xo+((r+9)*cos(A*3.14/z))),(yo+((r+9)*sin(A*3.14/z))),1,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  160.    }
  161.    }
  162.   //.画sec时针线  
  163.    display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);//(开始列127  开始行63)( 结束列127 结束行63) /////00
  164.   //.画minute时针线  
  165.    display.drawLine((xo+((r-2)*cos(b*3.14/z))),(yo+((r-2)*sin(b*3.14/z))),xo,yo, WHITE);//(开始列127  开始行63)( 结束列127 结束行63) /////00
  166.    //.画hour时针线  
  167.    display.drawLine((xo+((r-6)*cos(c*3.14/z))),(yo+((r-6)*sin(c*3.14/z))),xo,yo, WHITE);//(开始列127  开始行63)( 结束列127 结束行63) /////00  
  168.    
  169.    //7.画实心圆//.画sec时针线
  170.   display.fillCircle((xo+((r-4)*cos(a*3.14/z))),(yo+((r-4)*sin(a*3.14/z))),2,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  171.   
  172.    //13.显示英文
  173.   display.setTextSize(1);//设置字体大小
  174.   display.setTextColor(WHITE);//设置字体不反白
  175.   display.setCursor(xo-6,yo-29);//列127 行63     坐标
  176.   display.println("12");
  177.   display.setCursor(xo+22,yo-2);//列127 行63     坐标
  178.   display.println("3");
  179.   display.setCursor(xo-2,yo+22);//列127 行63     坐标
  180.   display.println("6");
  181.   display.setCursor(xo-27,yo-3);//列127 行63     坐标
  182.   display.println("9");
  183.   
  184.   
  185. // 17.显示多个文字(在库里面加入一个ShowCN_16方法  为了同时显示多个中文 16X16 ,不然的话 就得一个一个drawBitmap)  
  186.   display.ShowCN_16(0,40, bbjj_16x16,sizeof(bbjj_16x16)/32,WHITE);//查找数组法(控制位置列0/127   控制位置行0/63  )
  187.   
  188.   display.setTextSize(3);
  189.   display.setTextColor(WHITE);
  190.   
  191.   display.setCursor(0,17);
  192.   display.println((int)temperature);////温度
  193.   
  194.   display.setTextSize(1);
  195.   display.setTextColor(WHITE);
  196.    display.setCursor(0,5);   
  197.   display.println((int)hour/10);////
  198.    display.setCursor(7,5);
  199.    display.println((int)hour%10);////
  200.    display.setCursor(18,5);
  201.   display.println((int)minute/10);////
  202.    display.setCursor(25,5);
  203.   display.println((int)minute%10);////
  204.   display.setCursor(37,5);
  205.   display.println((int)second/10);////
  206.    display.setCursor(44,5);
  207.   display.println((int)second%10);////

  208. display.drawPixel(15, 6, WHITE);// 列127 行63 画点 点坐标
  209. display.drawPixel(15, 10, WHITE);// 列127 行63 画点 点坐标
  210. display.drawPixel(33, 6, WHITE);// 列127 行63 画点 点坐标
  211. display.drawPixel(33, 10, WHITE);// 列127 行63 画点 点坐标

  212.    //11.画空心圆角矩形
  213.   display.drawRoundRect(37,16,9,30,3,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y  控制圆角=+x)
  214.   //6.画空心圆
  215.   display.fillCircle(41,50,7,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  216.   //5.画个实心矩形
  217.   display.fillRect(39,(16+((60-temperature)/2)),5,30-(((60-temperature)/2)),WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y)//温度

  218.   display.display();

  219.    
  220.   
  221. }
复制代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:358930 发表于 2018-7-14 12:11 来自手机 | 显示全部楼层

//A4  SDA
//A5  SCL
//0X57   0X68
#include <Arduino.h>
#include <DS3231.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

int r,xo,yo,a,b,c,z;//动画变量不能用char型变量无法计算
int sec;//动画变量不能用char型变量无法计算
DS3231 Clock;
bool Century=false;
bool h12;
bool PM;
byte ADay, AHour, AMinute, ASecond, ABits;
bool ADy, A12h, Apm;
int second,minute,hour,date,month,year,DoW;
byte   temperature;//温度

#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 x;//动画变量

//显示一个心形
static const uint8_t PROGMEM Heart_16x16[] = {
  0x00,0x00,0x18,0x18,0x3C,0x3C,0x7E,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  0xFF,0xFF,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x03,0xC0,0x00,0x00//未命名文件0
};
static const uint8_t PROGMEM bbjj_16x16[] ={
0x00,0x00,0x23,0xF8,0x12,0x08,0x12,0x08,0x83,0xF8,0x42,0x08,0x42,0x08,0x13,0xF8,
0x10,0x00,0x27,0xFC,0xE4,0xA4,0x24,0xA4,0x24,0xA4,0x24,0xA4,0x2F,0xFE,0x00,0x00,/*"温",0*/

0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x22,0x20,
0x23,0xE0,0x20,0x00,0x2F,0xF0,0x24,0x10,0x42,0x20,0x41,0xC0,0x86,0x30,0x38,0x0E,/*"度",1*/
};

void setup()   {               
// Serial.begin(115200);
  delay(500);
Wire.begin();
      /*
         //改时间
        Clock.setSecond(10);//Set the second
        Clock.setMinute(40);//Set the minute
        Clock.setHour(1);  //Set the hour
        Clock.setDoW(7);    //Set the day of the week
        Clock.setDate(24);  //Set the date of the month
        Clock.setMonth(6);  //Set the month of the year
        Clock.setYear(18);  //Set the year (Last two digits of the year)
      */
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
}
void ReadDS3231()//读取时间
{

  second=Clock.getSecond(); //时间
  minute=Clock.getMinute();//时间
  hour=Clock.getHour(h12, PM);//时间
  date=Clock.getDate(); //日期   
  month=Clock.getMonth(Century);//日期
  year=Clock.getYear();  //日期  
  DoW=Clock.getDoW();//星期

  temperature=Clock.getTemperature();//温度
}
void loop() {
     ReadDS3231();//读取时间
     
  //1.检测全屏显示(看看有没有大面积坏点)
  display.fillScreen(WHITE);//检测全屏显示(看看有没有大面积坏点)
  display.clearDisplay();   // clears the screen and buffer

/*
   //2.画点 点坐标(10,10)  
  display.drawPixel(20, 20, WHITE);// 列127 行63 画点 点坐标
  
  //3. 画线 从(0,0)到(50,50)
  display.drawLine(20, 25,20,63, WHITE);//(开始列127  开始行63)( 结束列127 结束行63)
  
  //4.画空心矩形  左上角坐标(x0,y0)  右下角坐标(x1,y1)
  display.drawRect(2,50,10,10,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y)
  
  //5.画个实心矩形
  display.fillRect(2,35,10,10,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y)
  
   //6.画空心圆
  display.drawCircle(36,50,6,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  
  //7.画实心圆
  display.fillCircle(36,30,6,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  
  //8.画空心三角形
  display.drawTriangle(60,32,45,43,70,43,WHITE);//(控制三角形A点列0/127 行0/63  控制三角形B点列0/127 行0/63 控制三角形C点列0/127 行0/63)
  
  //9.画实心三角形
  display.fillTriangle(86,32,72,43,100,43,WHITE);//(控制三角形A点列0/127 行0/63  控制三角形B点列0/127 行0/63 控制三角形C点列0/127 行0/63)

  //10.画空心圆角矩形
  display.drawRoundRect(50,17,15,15,2,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y  控制圆角=+x)

//11.画实心圆角矩形
  display.fillRoundRect(70,17,15,15,2,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y  控制圆角=+x)

  //12.画心形(自己用取模软件画的)相当于一个任意16X16字
  display.drawBitmap(88,17,Heart_16x16,16,16,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=16  结束大小=16)这里只能是16X16因为是16X16字

//13.显示英文
  display.setTextSize(2);//设置字体大小
  display.setTextColor(WHITE);//设置字体不反白
  display.setCursor(0,0);//列127 行63     坐标
  display.println("bb");
  
  //14.显示数字变量
  display.setTextSize(2);//设置字体大小  
  display.setTextColor(BLACK, WHITE); //设置字体反白
  display.setCursor(30,0);//列127 行63     坐标
  display.println(x);
  
//15.显示16进制变量
  display.setTextSize(2);
  display.setTextColor(WHITE);//设置字体不反白
  display.setCursor(60,0);//列127 行63     坐标
  display.print("0x");
  display.println(x, HEX);

//16.显示单个文字 就是调用drawBitmap(自己用取模软件取模)相当于一个任意16X16字
  //display.drawBitmap(0,17,Strong_16x16,16,16,BLACK);//可用BLACK黑字在图片上显示(控制位置列0/127   控制位置行0/63  )(控制大小=16  结束大小=16)这里只能是16X16因为是16X16字
  display.drawBitmap(0,17,Strong_16x16,16,16,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=16  结束大小=16)这里只能是16X16因为是16X16字

//17.显示多个文字(在库里面加入一个ShowCN_16方法  为了同时显示多个中文 16X16 ,不然的话 就得一个一个drawBitmap)
  display.ShowCN_16(0,45, bbjj_16x16,sizeof(bbjj_16x16)/32,WHITE);//查找数组法(控制位置列0/127   控制位置行0/63  )
*/
//6.画空心圆
   display.drawCircle(xo,yo,19,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
   display.drawCircle(xo,yo,25+6,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  //7.画实心圆
  display.fillCircle(xo,yo,2,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
   //不能用char型变量无法计算
  r=17;//指针半径
  xo=80;//圆心坐标x MAX 127
  yo=32;//圆心坐标y  MAX 63
  z=180;//圆
  //second=0;//调整
  // minute=0;//调整
   // hour=0;//调整
  int  hour1=hour;
   if(hour1>12)
{hour1=hour1-12;}
else
{hour1=hour1;}
  a=(second-15)*6;//圆角度360/60
  b=(minute-15)*6;//圆角度360/60
  c=(hour1-15)*30;//圆角度360/12
  //.画一圈实心圆
   int B;  
   for(B=0;B<12;B++)//.画一圈实心圆
   {
     int A=B*30;//圆角度
    if(B==0||B==3||B==6||B==9)//跳过这几个点画实心圆
    {}
    else
   {
    display.fillCircle((xo+((r+9)*cos(A*3.14/z))),(yo+((r+9)*sin(A*3.14/z))),1,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
   }
   }
  //.画sec时针线  
   display.drawLine((xo+(r*cos(a*3.14/z))),(yo+(r*sin(a*3.14/z))),xo,yo, WHITE);//(开始列127  开始行63)( 结束列127 结束行63) /////00
  //.画minute时针线  
   display.drawLine((xo+((r-2)*cos(b*3.14/z))),(yo+((r-2)*sin(b*3.14/z))),xo,yo, WHITE);//(开始列127  开始行63)( 结束列127 结束行63) /////00
   //.画hour时针线  
   display.drawLine((xo+((r-6)*cos(c*3.14/z))),(yo+((r-6)*sin(c*3.14/z))),xo,yo, WHITE);//(开始列127  开始行63)( 结束列127 结束行63) /////00  
   
   //7.画实心圆//.画sec时针线
  display.fillCircle((xo+((r-4)*cos(a*3.14/z))),(yo+((r-4)*sin(a*3.14/z))),2,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  
   //13.显示英文
  display.setTextSize(1);//设置字体大小
  display.setTextColor(WHITE);//设置字体不反白
  display.setCursor(xo-6,yo-29);//列127 行63     坐标
  display.println("12");
  display.setCursor(xo+22,yo-2);//列127 行63     坐标
  display.println("3");
  display.setCursor(xo-2,yo+22);//列127 行63     坐标
  display.println("6");
  display.setCursor(xo-27,yo-3);//列127 行63     坐标
  display.println("9");
  
  
// 17.显示多个文字(在库里面加入一个ShowCN_16方法  为了同时显示多个中文 16X16 ,不然的话 就得一个一个drawBitmap)  
  display.ShowCN_16(0,40, bbjj_16x16,sizeof(bbjj_16x16)/32,WHITE);//查找数组法(控制位置列0/127   控制位置行0/63  )
  
  display.setTextSize(3);
  display.setTextColor(WHITE);
  
  display.setCursor(0,17);
  display.println((int)temperature);////温度
  
  display.setTextSize(1);
  display.setTextColor(WHITE);
   display.setCursor(0,5);   
  display.println((int)hour/10);////
   display.setCursor(7,5);
   display.println((int)hour%10);////
   display.setCursor(18,5);
  display.println((int)minute/10);////
   display.setCursor(25,5);
  display.println((int)minute%10);////
  display.setCursor(37,5);
  display.println((int)second/10);////
   display.setCursor(44,5);
  display.println((int)second%10);////

display.drawPixel(15, 6, WHITE);// 列127 行63 画点 点坐标
display.drawPixel(15, 10, WHITE);// 列127 行63 画点 点坐标
display.drawPixel(33, 6, WHITE);// 列127 行63 画点 点坐标
display.drawPixel(33, 10, WHITE);// 列127 行63 画点 点坐标

   //11.画空心圆角矩形
  display.drawRoundRect(37,16,9,30,3,WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y  控制圆角=+x)
  //6.画空心圆
  display.fillCircle(41,50,7,WHITE);//(控制圆心位置列0/127   控制圆心位置行0/63  )(控制大小=0+x )
  //5.画个实心矩形
  display.fillRect(39,(16+((60-temperature)/2)),5,30-(((60-temperature)/2)),WHITE);//(控制位置列0/127   控制位置行0/63  )(控制大小=列+x  结束大小=行+Y)//温度

  display.display();

   
  
}
20180714_120329.jpg
回复

使用道具 举报

ID:358930 发表于 2018-7-14 12:14 来自手机 | 显示全部楼层
冰冰洁洁 发表于 2018-7-14 12:11
//A4  SDA
//A5  SCL
//0X57   0X68

上个图,大家一起分享。
20180714_120317.jpg
回复

使用道具 举报

ID:219332 发表于 2018-7-30 11:01 来自手机 | 显示全部楼层
谢谢,做的真漂亮
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表