久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5509|回復: 4
打印 上一主題 下一主題
收起左側

OLED12864液晶摸擬指針時鐘

[復制鏈接]
跳轉到指定樓層
樓主
ID:358930 發表于 2018-7-13 23:13 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
/*
* 16X16點陣顯示 取模方式 陰碼+逐行式+順向
**/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "DS18B20.h"
float Temp_Buffer = 0;    //存放溫度值的10倍
DS18B20 myDS18B20(A0);


#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 Strong_16x16[] = {
0x00,0x40,0x40,0x40,0x20,0x40,0x20,0x44,0x00,0x68,0x07,0x70,0x11,0x60,0x11,0x50,
0x21,0x50,0xE2,0x48,0x22,0x48,0x24,0x44,0x28,0x42,0x20,0x40,0x21,0x40,0x00,0x80,/*"冰",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);
  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
}

void loop() {
     
      x++;
      if(x==60)x=0;
  //1.檢測全屏顯示(看看有沒有大面積壞點)
  display.fillScreen(WHITE);//檢測全屏顯示(看看有沒有大面積壞點)
  display.clearDisplay();   // clears the screen and buffer

/*
  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(60,40,23,WHITE);//(控制圓心位置列0/127   控制圓心位置行0/63  )(控制大小=0+x )
  //7.畫實心圓
  display.fillCircle(60,40,2,WHITE);//(控制圓心位置列0/127   控制圓心位置行0/63  )(控制大小=0+x )
//3. 畫線 從(0,0)到(50,50)
  if(x==0)display.drawLine(60,20,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63) /////00
  if(x==1)display.drawLine(62,22,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==2)display.drawLine(64,24,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==3)display.drawLine(66,26,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==4)display.drawLine(68,28,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==6)display.drawLine(70,30,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==7)display.drawLine(71,31,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==8)display.drawLine(72,32,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==9)display.drawLine(73,33,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==10)display.drawLine(74,34,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==11)display.drawLine(75,35,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==12)display.drawLine(76,36,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==13)display.drawLine(78,38,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==14)display.drawLine(79,39,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==15)display.drawLine(80,40,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)////15
  if(x==16)display.drawLine(78,42,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==17)display.drawLine(76,44,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==18)display.drawLine(74,46,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==19)display.drawLine(72,48,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==20)display.drawLine(70,50,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==21)display.drawLine(69,51,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==22)display.drawLine(68,52,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==23)display.drawLine(67,53,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==24)display.drawLine(66,54,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==25)display.drawLine(65,55,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==26)display.drawLine(64,56,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==27)display.drawLine(63,57,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==28)display.drawLine(62,58,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==29)display.drawLine(61,59,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==30)display.drawLine(60,60,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)////18
  if(x==31)display.drawLine(58,58,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==32)display.drawLine(56,56,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==33)display.drawLine(54,54,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==34)display.drawLine(52,52,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==35)display.drawLine(50,50,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==36)display.drawLine(49,49,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==37)display.drawLine(48,48,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==38)display.drawLine(47,47,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==39)display.drawLine(46,46,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==40)display.drawLine(45,45,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==41)display.drawLine(44,44,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==42)display.drawLine(43,43,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==43)display.drawLine(42,42,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==44)display.drawLine(41,41,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==45)display.drawLine(40,40,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)//00
  if(x==46)display.drawLine(42,38,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==47)display.drawLine(44,36,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==48)display.drawLine(46,34,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==49)display.drawLine(48,32,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==50)display.drawLine(49,31,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==51)display.drawLine(50,30,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==52)display.drawLine(51,29,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==53)display.drawLine(52,28,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==54)display.drawLine(53,27,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==55)display.drawLine(54,26,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==56)display.drawLine(55,25,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==57)display.drawLine(56,24,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==58)display.drawLine(57,23,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
  if(x==59)display.drawLine(58,22,60,40, WHITE);//(開始列127  開始行63)( 結束列127 結束行63)
   //13.顯示英文
  display.setTextSize(1);//設置字體大小
  display.setTextColor(WHITE);//設置字體不反白
  display.setCursor(58,18);//列127 行63     坐標
  display.println("0");
  display.setCursor(70,35);//列127 行63     坐標
  display.println("15");
  display.setCursor(56,55);//列127 行63     坐標
  display.println("30");
  display.setCursor(38,35);//列127 行63     坐標
  display.println("45");
  
// 17.顯示多個文字(在庫里面加入一個ShowCN_16方法  為了同時顯示多個中文 16X16 ,不然的話 就得一個一個drawBitmap)

  display.ShowCN_16(0,40, bbjj_16x16,sizeof(bbjj_16x16)/32,WHITE);//查找數組法(控制位置列0/127   控制位置行0/63  )
  
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0,17);
  Temp_Buffer = myDS18B20.Get_temp();////溫度
  display.println((int)Temp_Buffer);////溫度
  x=Temp_Buffer;
  display.display();
  //delay(2000);
   
  
}

20180712_195644.jpg (41.02 KB, 下載次數: 36)

20180712_195644.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:108715 發表于 2019-2-16 21:41 | 只看該作者
請問能幫我改個STC12單片機的嗎?目前只學了單片機。萬分感謝。
3064471943@qq.com
回復

使用道具 舉報

板凳
ID:317383 發表于 2019-2-21 07:31 | 只看該作者
做的不錯,厲害
回復

使用道具 舉報

地板
ID:471632 發表于 2019-2-22 11:33 | 只看該作者
好牛呀!
回復

使用道具 舉報

5#
ID:91165 發表于 2020-3-21 10:41 | 只看該作者
這個是ARDUINO的程序還是esp8266的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久99精品久久久久久国产越南 | 一级看片免费视频囗交动图 | 一级做a爰片久久毛片免费看 | 久色| 国产精品揄拍一区二区 | 日韩欧美第一页 | 久久不卡 | 国产农村一级片 | 欧美精品久久久久久 | 久久精品视频在线播放 | 日本精品裸体写真集在线观看 | 日韩理论电影在线观看 | 亚洲精品9999 | 国产视频二区 | 成人伊人 | 日韩久草| 日韩精品一区二区三区在线播放 | 久草网址| 婷婷五月色综合香五月 | 日本超碰| 国产精品一卡二卡三卡 | 国产视频日韩 | 在线免费av电影 | 欧美色综合 | 久免费视频 | 巨大黑人极品videos精品 | 中文字幕一区二区三区不卡在线 | 日韩在线不卡 | 国产精品视频免费观看 | 日韩av电影在线观看 | 男人天堂99 | 国产精品久久久久久久久久三级 | 亚洲综合色站 | 亚洲黄色成人网 | 国产精品99久久久久久动医院 | 日韩精品一区二区三区在线播放 | 国产在线中文字幕 | 成人教育av | 亚洲欧美一区二区三区国产精品 | 久久91av | 中文字幕亚洲精品 |