diff --git a/nv3030b-graphicstest.ino b/nv3030b-graphicstest.ino index 97df77b..3808d92 100644 --- a/nv3030b-graphicstest.ino +++ b/nv3030b-graphicstest.ino @@ -17,342 +17,56 @@ #include "SPI.h" #include "Adafruit_GFX.h" // https://learn.adafruit.com/adafruit-gfx-graphics-library #include "Adafruit_NV3030B.h" +#include // For the Adafruit shield, these are the default. #define TFT_DC 8 -#define TFT_CS 9 -#define TFT_MOSI 11 -#define TFT_CLK 10 +#define TFT_CS 17 +#define TFT_MOSI 19 +#define TFT_CLK 18 #define TFT_RST 12 -#define TFT_MISO 14 - +#define TFT_MISO 16 +#define TFT_BACKLIGHT 13 // Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC // Adafruit_NV3030B tft = Adafruit_NV3030B(TFT_CS, TFT_DC); // If using the breakout, change pins as desired Adafruit_NV3030B tft = Adafruit_NV3030B(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO); +int moisture = 0; +int position = 0; + +GFXcanvas1 canvas(240, 280); // 1-bit, 120x30 pixels + void setup() { Serial.begin(9600); - Serial.println("NV3030B Test!"); - - tft.begin(); + Serial.println("NV3030B Test!"); - Serial.println(F("Benchmark Time (microseconds)")); - delay(10); - Serial.print(F("Screen fill ")); - Serial.println(testFillScreen()); - delay(500); + pinMode(TFT_BACKLIGHT, OUTPUT); + digitalWrite(TFT_BACKLIGHT, HIGH); - Serial.print(F("Text ")); - Serial.println(testText()); - delay(3000); - - Serial.print(F("Lines ")); - Serial.println(testLines(NV3030B_CYAN)); - delay(500); - - Serial.print(F("Horiz/Vert Lines ")); - Serial.println(testFastLines(NV3030B_RED, NV3030B_BLUE)); - delay(500); - - Serial.print(F("Rectangles (outline) ")); - Serial.println(testRects(NV3030B_GREEN)); - delay(500); - - Serial.print(F("Rectangles (filled) ")); - Serial.println(testFilledRects(NV3030B_YELLOW, NV3030B_MAGENTA)); - delay(500); - - Serial.print(F("Circles (filled) ")); - Serial.println(testFilledCircles(10, NV3030B_MAGENTA)); - - Serial.print(F("Circles (outline) ")); - Serial.println(testCircles(10, NV3030B_WHITE)); - delay(500); - - Serial.print(F("Triangles (outline) ")); - Serial.println(testTriangles()); - delay(500); - - Serial.print(F("Triangles (filled) ")); - Serial.println(testFilledTriangles()); - delay(500); - - Serial.print(F("Rounded rects (outline) ")); - Serial.println(testRoundRects()); - delay(500); - - Serial.print(F("Rounded rects (filled) ")); - Serial.println(testFilledRoundRects()); - delay(500); - - Serial.println(F("Done!")); + tft.begin(); + tft.fillScreen(NV3030B_BLACK); + canvas.setFont(&FreeSerifBold18pt7b); // Use custom font + canvas.setTextWrap(false); } +void setup1(){ + +} void loop(void) { - for(uint8_t rotation=0; rotation<4; rotation++) { - tft.setRotation(rotation); - testText(); - delay(1000); - } -} - -unsigned long testFillScreen() { - unsigned long start = micros(); - tft.fillScreen(NV3030B_BLACK); - yield(); - tft.fillScreen(NV3030B_RED); - yield(); - tft.fillScreen(NV3030B_GREEN); - yield(); - tft.fillScreen(NV3030B_BLUE); - yield(); - tft.fillScreen(NV3030B_BLACK); - yield(); - return micros() - start; -} - -unsigned long testText() { - tft.fillScreen(NV3030B_BLACK); - unsigned long start = micros(); - tft.setCursor(0, 0); - tft.setTextColor(NV3030B_WHITE); tft.setTextSize(1); - tft.println("Hello World!"); - tft.setTextColor(NV3030B_YELLOW); tft.setTextSize(2); - tft.println(1234.56); - tft.setTextColor(NV3030B_RED); tft.setTextSize(3); - tft.println(0xDEADBEEF, HEX); - tft.println(); - tft.setTextColor(NV3030B_GREEN); - tft.setTextSize(5); - tft.println("Groop"); - tft.setTextSize(2); - tft.println("I implore thee,"); - tft.setTextSize(1); - tft.println("my foonting turlingdromes."); - tft.println("And hooptiously drangle me"); - tft.println("with crinkly bindlewurdles,"); - tft.println("Or I will rend thee"); - tft.println("in the gobberwarts"); - tft.println("with my blurglecruncheon,"); - tft.println("see if I don't!"); - return micros() - start; -} - -unsigned long testLines(uint16_t color) { - unsigned long start, t; - int x1, y1, x2, y2, - w = tft.width(), - h = tft.height(); - - tft.fillScreen(NV3030B_BLACK); - yield(); + //canvas.fillScreen(0); // Clear canvas (not display) - x1 = y1 = 0; - y2 = h - 1; - start = micros(); - for(x2=0; x20; i-=6) { - i2 = i / 2; - start = micros(); - tft.fillRect(cx-i2, cy-i2, i, i, color1); - t += micros() - start; - // Outlines are not included in timing results - tft.drawRect(cx-i2, cy-i2, i, i, color2); - yield(); - } - - return t; -} - -unsigned long testFilledCircles(uint8_t radius, uint16_t color) { - unsigned long start; - int x, y, w = tft.width(), h = tft.height(), r2 = radius * 2; - - tft.fillScreen(NV3030B_BLACK); - start = micros(); - for(x=radius; x10; i-=5) { - start = micros(); - tft.fillTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, - tft.color565(0, i*10, i*10)); - t += micros() - start; - tft.drawTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, - tft.color565(i*10, i*10, 0)); - yield(); - } - - return t; -} - -unsigned long testRoundRects() { - unsigned long start; - int w, i, i2, - cx = tft.width() / 2 - 1, - cy = tft.height() / 2 - 1; - - tft.fillScreen(NV3030B_BLACK); - w = min(tft.width(), tft.height()); - start = micros(); - for(i=0; i20; i-=6) { - i2 = i / 2; - tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(0, i, 0)); - yield(); - } - - return micros() - start; -} \ No newline at end of file