Advertisement
hwthinker

Demo1

Feb 13th, 2019
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // https://github.com/mgo-tec/ESP32_SSD1331
  2. // https://github.com/LilyGO/TTGO-T2-ESP32/
  3. #include "ESP32_SSD1331.h"
  4.  
  5. const uint8_t SCLK_OLED =  14; //SCLK
  6. const uint8_t MOSI_OLED =  13; //MOSI (Master Output Slave Input)
  7. const uint8_t MISO_OLED =  12; // (Master Input Slave Output)
  8. const uint8_t CS_OLED = 15;
  9. const uint8_t DC_OLED =  16; //OLED DC(Data/Command)
  10. const uint8_t RST_OLED =  4; //OLED Reset
  11.  
  12. ESP32_SSD1331 ssd1331(SCLK_OLED, MISO_OLED, MOSI_OLED, CS_OLED, DC_OLED, RST_OLED);
  13.  
  14. void setup() {
  15.   ssd1331.SSD1331_Init();
  16. }
  17.  
  18. void loop() {
  19.   int i, j;
  20.   uint8_t R, G, B, Dot1, Dot2;
  21.  
  22.   ssd1331.Display_Clear(0, 0, 95, 63);
  23.  
  24.   ssd1331.CommandWrite(0xAE); //Set Display Off
  25.   delay(1000);
  26.  
  27.   ssd1331.CommandWrite(0xA0); //Remap & Color Depth setting 
  28.     ssd1331.CommandWrite(0b00110010); //A[7:6] = 00; 256 color.
  29.  
  30.   R=7; G=0; B=0; //256 color : R (0-7), G (0-7), B (0-3)
  31.   Dot1 = (R << 5) | (G << 2) | B;
  32.   for(j=0; j<64; j++){
  33.     for(i=0; i<96; i++){
  34.       ssd1331.DataWrite(Dot1);
  35.     }
  36.   }
  37.  
  38.   ssd1331.CommandWrite(0xAF); //Set Display On
  39.   delay(110); //0xAF100ms
  40.   ssd1331.Brightness_FadeIn(4);
  41.   delay(1000);
  42.   ssd1331.Brightness_FadeOut(4);
  43.   delay(1000);
  44.   ssd1331.CommandWrite(0xAE); //Set Display Off
  45.   delay(1000);
  46.  
  47.   ssd1331.Brightness_FadeIn(0);
  48.   ssd1331.Display_Clear(0, 0, 95, 63);
  49.   ssd1331.CommandWrite(0xAF); //Set Display On
  50.   delay(110); //0xAF100ms
  51.   R=0; G=7; B=0; //256 color : R (0-7), G (0-7), B (0-3)
  52.   Dot1 = (R << 5) | (G << 2) | B;
  53.   for(j=0; j<64; j++){
  54.     for(i=0; i<96; i++){
  55.       ssd1331.DataWrite(Dot1);
  56.     }
  57.   }
  58.   delay(2000);
  59.  
  60.   R=0; G=0; B=3; //256 color : R (0-7), G (0-7), B (0-3)
  61.   Dot1 = (R << 5) | (G << 2) | B;
  62.   for(j=0; j<64; j++){
  63.     for(i=0; i<96; i++){
  64.       ssd1331.DataWrite(Dot1);
  65.     }
  66.   }
  67.   delay(2000);
  68.  
  69.   ssd1331.Display_Clear(0, 0, 95, 63);
  70.  
  71.   ssd1331.CommandWrite(0xA0); //Remap & Color Depth setting 
  72.     ssd1331.CommandWrite(0b01110010); //A[7:6] = 01; 65k color format
  73.  
  74.   R=31; G=63; B=31; //65k color : R (0-31), G (0-63), B (0-31)
  75.   uint8_t DotDot[2];
  76.   DotDot[0] = (R << 3) | (G >> 3);
  77.   DotDot[1] = (G << 5) | B;
  78.   for(j=0; j<64; j++){
  79.     for(i=0; i<96; i++){
  80.       ssd1331.DataWriteBytes(DotDot, 2); //65k colorモードでは、2バイトデータを送る
  81.     }
  82.   }
  83.   delay(2000);
  84.  
  85.   ssd1331.Display_Clear(0, 0, 95, 63);
  86.   ssd1331.Drawing_Line(0, 0, 95, 63, 31, 0, 0); //Red(0-31), Green(0-63), Blue(0-31)
  87.   delay(2000);
  88.  
  89.   ssd1331.Drawing_Line(95, 0, 0, 63, 0, 31, 0); //Red(0-31), Green(0-63), Blue(0-31)
  90.   delay(2000);
  91.  
  92.   ssd1331.Drawing_Line(48, 0, 48, 63, 0, 0, 31); //Red(0-31), Green(0-63), Blue(0-31)
  93.   delay(2000);
  94.  
  95.   for(i=0; i<63; i=i+5){
  96.     ssd1331.Drawing_Line(i, 63, 95, 63-i, 0, i, 31);
  97.   }
  98.   delay(2000);
  99.  
  100.   ssd1331.Display_Clear(0, 0, 95, 63);
  101.   ssd1331.Drawing_Rectangle_Line(20, 20, 40, 40, 31, 0, 0); //Red(0-31), Green(0-63), Blue(0-31)
  102.   delay(2000);
  103.  
  104.   ssd1331.Drawing_Rectangle_Line(0, 0, 60, 60, 0, 31, 0); //Red(0-31), Green(0-63), Blue(0-31)
  105.   delay(2000);
  106.  
  107.   ssd1331.Drawing_Rectangle_Line(70, 10, 80, 63, 0, 0, 31); //Red(0-31), Green(0-63), Blue(0-31)
  108.   delay(2000);
  109.  
  110.   ssd1331.Display_Clear(0, 0, 95, 63);
  111.   ssd1331.Drawing_Rectangle_Fill(0, 0, 60, 60, 0, 31, 0, 31, 0, 0); //Red(0-31), Green(0-63), Blue(0-31)
  112.   delay(2000);
  113.  
  114.   ssd1331.Drawing_Rectangle_Fill(20, 20, 40, 40, 0, 0, 31, 0, 31, 0); //Red(0-31), Green(0-63), Blue(0-31)
  115.   delay(2000);
  116.  
  117.   ssd1331.Drawing_Rectangle_Fill(70, 10, 80, 63, 31, 63, 31, 0, 0, 31); //Red(0-31), Green(0-63), Blue(0-31)
  118.   delay(2000);
  119.  
  120.   ssd1331.Display_Clear(0, 0, 95, 63);
  121.  
  122.   ssd1331.CommandWrite(0xA0); //Remap & Color Depth setting 
  123.     ssd1331.CommandWrite(0b00110010); //A[7:6] = 00; 256 color.
  124.  
  125.   ssd1331.Drawing_Circle_Line_256color(31, 31, 31, 7, 0, 0); //Red(0-7), Green(0-7), Blue(0-3)
  126.   delay(2000);
  127.   ssd1331.Drawing_Circle_Line_256color(50, 31, 20, 0, 7, 0); //Red(0-7), Green(0-7), Blue(0-3)
  128.   delay(2000);
  129.   ssd1331.Drawing_Circle_Line_256color(70, 31, 10, 0, 0, 3); //Red(0-7), Green(0-7), Blue(0-3)
  130.   delay(2000);
  131.  
  132.   ssd1331.Display_Clear(0, 0, 95, 63);
  133.  
  134.   ssd1331.Drawing_Circle_Fill(31, 31, 31, 31, 0, 0); //Red(0-31), Green(0-63), Blue(0-31)
  135.   delay(2000);
  136.   ssd1331.Drawing_Circle_Fill(50, 31, 20, 0, 63, 0); //Red(0-31), Green(0-63), Blue(0-31)
  137.   delay(2000);
  138.   ssd1331.Drawing_Circle_Fill(70, 31, 10, 0, 0, 31); //Red(0-31), Green(0-63), Blue(0-31)
  139.   delay(2000);
  140.  
  141.   ssd1331.Display_Clear(0, 0, 95, 63);
  142.   ssd1331.CommandWrite(0xA0); //Remap & Color Depth setting 
  143.     ssd1331.CommandWrite(0b01110010); //A[7:6] = 01; 65k color format
  144.  
  145.   ssd1331.Drawing_Circle_Line_65kColor(31, 31, 31, 0, 63, 31); //Red(0-31), Green(0-63), Blue(0-31)
  146.   delay(1000);
  147.   ssd1331.Drawing_Circle_Line_65kColor(50, 31, 20, 31, 0, 31); //Red(0-31), Green(0-63), Blue(0-31)
  148.   delay(1000);
  149.   ssd1331.Drawing_Circle_Line_65kColor(70, 31, 10, 31, 31, 0); //Red(0-31), Green(0-63), Blue(0-31)
  150.   delay(1000);
  151.  
  152.   ssd1331.SSD1331_Copy(60, 21, 80, 41, 0, 0);
  153.   ssd1331.SSD1331_Copy(60, 21, 80, 41, 75, 0);
  154.   ssd1331.SSD1331_Copy(60, 21, 80, 41, 0, 43);
  155.  
  156.   for(i=0; i<76; i++){
  157.     ssd1331.SSD1331_Copy(60, 21, 80, 41, 75-i, 43);
  158.     if(i>0){
  159.       ssd1331.Display_Clear(96-i, 43, 95, 63);
  160.     }
  161.     delay(20);
  162.   }
  163.   delay(2000);
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement