View difference between Paste ID: fMJnjQWf and xXJ0wTku
SHOW: | | - or go back to the newest paste.
1
//from Dave's Garage YouTube video https://youtu.be/aub9PecrbuM
2-
#include <U8g2lib.h>
2+
3
#include <Arduino.h>
4
//#include <U8g2lib.h>
5
#define FASTLED_INTERNAL
6-
#define OLED_CLOCK  15          // Pins for the OLED display
6+
7-
#define OLED_DATA   4
7+
8-
#define OLED_RESET  16
8+
//#define OLED_CLOCK  15          // Pins for the OLED display
9
//#define OLED_DATA   4
10-
#define NUM_LEDS    20          // FastLED definitions
10+
//#define OLED_RESET  16
11-
#define LED_PIN     5
11+
12
#define NUM_LEDS    150          // FastLED definitions
13
#define LED_PIN     16
14
15-
U8G2_SSD1306_128X64_NONAME_F_HW_I2C g_OLED(U8G2_R2, OLED_RESET, OLED_CLOCK, OLED_DATA);
15+
16-
int g_lineHeight = 0;
16+
17
//U8G2_SSD1306_128X64_NONAME_F_HW_I2C g_OLED(U8G2_R2, OLED_RESET, OLED_CLOCK, OLED_DATA);
18
//int g_lineHeight = 0;
19
20
// FramesPerSecond
21
//
22
// Tracks a weighted average to smooth out the values that it calcs as the simple reciprocal
23
// of the amount of time taken specified by the caller.  So 1/3 of a second is 3 fps, and it
24
// will take up to 10 frames or so to stabilize on that value.
25
26
double FramesPerSecond(double seconds)
27
{
28
  static double framesPerSecond; 
29
  framesPerSecond = (framesPerSecond * .9) + (1.0 / seconds * .1);
30
  return framesPerSecond;
31
}
32
33
void setup() 
34
{
35
  pinMode(LED_BUILTIN, OUTPUT);
36
  pinMode(LED_PIN, OUTPUT);
37
38
  Serial.begin(115200);
39
  while (!Serial) { }
40-
  g_OLED.begin();
40+
41-
  g_OLED.clear();
41+
42-
  g_OLED.setFont(u8g2_font_profont15_tf);
42+
//  g_OLED.begin();
43-
  g_lineHeight = g_OLED.getFontAscent() - g_OLED.getFontDescent();        // Descent is a negative number so we add it to the total
43+
//  g_OLED.clear();
44
//  g_OLED.setFont(u8g2_font_profont15_tf);
45
//  g_lineHeight = g_OLED.getFontAscent() - g_OLED.getFontDescent();        // Descent is a negative number so we add it to the total
46-
  FastLED.setBrightness(4);
46+
47
  FastLED.addLeds<WS2812B, LED_PIN, GRB>(g_LEDs, NUM_LEDS);               // Add our LED strip to the FastLED library
48
  FastLED.setBrightness(200);
49
}
50
51
void loop() 
52
{
53
  bool bLED = 0;
54
  double fps = 0;
55
56
  uint8_t initialHue = 0;
57
  const uint8_t deltaHue = 16;
58
  const uint8_t hueDensity = 4;
59
60
  for (;;)
61
  {
62
    bLED = !bLED;                                                         // Blink the LED off and on  
63
    digitalWrite(LED_BUILTIN, bLED);
64
65
    double dStart = millis() / 1000.0;                                    // Display a frame and calc how long it takes
66
67-
    g_OLED.clearBuffer();
67+
68-
    g_OLED.setCursor(0, g_lineHeight);
68+
69-
    g_OLED.printf("FPS: %.1lf", fps);
69+
    //g_OLED.clearBuffer();
70-
    g_OLED.sendBuffer();
70+
    //g_OLED.setCursor(0, g_lineHeight);
71
    //g_OLED.printf("FPS: %.1lf", fps);
72
    //g_OLED.sendBuffer();
73
74
    // Handle LEDs
75
76
    fill_rainbow(g_LEDs, NUM_LEDS, initialHue += hueDensity, deltaHue);
77
78
    FastLED.show();
79
80
    double dEnd = millis() / 1000.0;
81
    fps = FramesPerSecond(dEnd - dStart);
82
  }
83
}