Paul Keenan
Published © GPL3+

TFT Barograph

The project was built to provide the history of the Barometric pressure over 19 days on a 10.1inch tft display.

IntermediateFull instructions provided2 hours160
TFT Barograph

Things used in this project

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free

Story

Read more

Custom parts and enclosures

Barograph Boards

The shield is provided with the display. The power supply for the BMP 180 is taken from the Due along with the scl & sda coms via soldered leads

Schematics

Baragraph

Code

Barograph

Arduino
The code very basically it uses a loop to populate the screen fully & @ that point goes to another loop to update the screen by removing the oldest & inserting the new. It will do this until a specific number of times before resetting the program & starting all over again by populating the screen once again. The digital reading is a Float so to display a integer I have blanked out the decimal point.
#include <SPI.h>
#include <Arduino.h>
#include <Print.h>
#include <Ra8876_Lite.h>

#include <Wire.h>
#include <Adafruit_BMP085.h>

Adafruit_BMP085 bmp;

const int RA8876_XNSCS = 10;
const int RA8876_XNRESET = 9;

 char stringEnd ='\0';
 char string1[] = {0xa6,0xb0,0xa4,0xe9,0xaa,0x46,0xa4,0xe8,stringEnd};  //BIG5
 char string2[] = {0xbb,0xb6,0xd3,0xad,0xca,0xb9,0xd3,0xc3,stringEnd};  //BG2312

Ra8876_Lite ra8876lite(RA8876_XNSCS, RA8876_XNRESET);  

// IMPORTANT: Adafruit_TFTLCD LIBRARY MUST BE SPECIFICALLY
// CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD.
// SEE RELEVANT COMMENTS IN Adafruit_TFTLCD.h FOR SETUP.
//Technical support:goodtft@163.com

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library

//#include <DS3231.h>


 #include <Adafruit_BMP085.h>
 //*****************************************************************************  added for reset
#define SYSRESETREQ    (1<<2)
#define VECTKEY        (0x05fa0000UL)
#define VECTKEY_MASK   (0x0000ffffUL)
#define AIRCR          (*(uint32_t*)0xe000ed0cUL) // fixed arch-defined address
#define REQUEST_EXTERNAL_RESET (AIRCR=(AIRCR&VECTKEY_MASK)|VECTKEY|SYSRESETREQ)
//***********************************************************************************


// Global variables
  int valueBlock[7000];// 7000 max
  int timeBlock[7000];  // 7000 max
  int locationBlock[7000];  // 7000 max
  int valuePos;
  int blockPos;
  int v;
  int z;
  int bp;
  // Editable Variables
  bool proDebug = 0;

  double float_data;
    int graphRange = 1024;//  was 60   X AXIS 
  int markSize = 3;   //  was 3  size of mark
  
// Calculate Values
  const int numberOfMarks = 200;// was 8  20 reduces gap ...see also 53 to 57, 302 , 342
  const int originX = 0;// no offset
  const int originY = 0;  // no offset
  const int sizeX = 1024;  // 1024 full scale
  const int sizeY = 600;  // 600 full scale
  const int deviation =  45;  // WAS 30...15    Moves the start plot. neg moveto left
  
 /// int boxSize = (sizeX / numberOfMarks);
   //int boxSize = ((sizeX - 45) / 200);
    int boxSize = (1000 / 190);
  int mark[] = {(boxSize + deviation), ((boxSize * 2) + deviation), ((boxSize * 3) + deviation), ((boxSize * 4) + deviation), ((boxSize * 5) + deviation), ((boxSize * 6) + deviation), ((boxSize * 7) + deviation), ((boxSize * 8) + deviation),
  ((boxSize * 9) + deviation), ((boxSize * 10) + deviation),((boxSize * 11) + deviation),((boxSize * 12) + deviation),((boxSize * 13) + deviation),((boxSize * 14) + deviation),((boxSize * 15) + deviation),((boxSize * 16) + deviation),((boxSize * 17) + deviation),((boxSize * 18) + deviation),((boxSize * 19) + deviation),((boxSize * 20) + deviation),(boxSize * 21 + deviation), ((boxSize * 22) + deviation), ((boxSize * 23) + deviation), ((boxSize * 24) + deviation), ((boxSize * 25) + deviation), ((boxSize * 26) + deviation), ((boxSize * 27) + deviation), ((boxSize * 28) + deviation),
  ((boxSize * 29) + deviation), ((boxSize * 30) + deviation),((boxSize * 31) + deviation),((boxSize * 32) + deviation),((boxSize * 33) + deviation),((boxSize * 34) + deviation),((boxSize * 35) + deviation),((boxSize * 36) + deviation),((boxSize * 37) + deviation),((boxSize * 38) + deviation),((boxSize * 39) + deviation),((boxSize * 40) + deviation),((boxSize * 41) + deviation),((boxSize * 42) + deviation),((boxSize * 43) + deviation),((boxSize * 44) + deviation),((boxSize * 45) + deviation),((boxSize * 46) + deviation),((boxSize * 47) + deviation),((boxSize * 48) + deviation),((boxSize * 49) + deviation),((boxSize * 50) + deviation),
  ((boxSize * 51) + deviation), ((boxSize * 52) + deviation), ((boxSize * 53) + deviation), ((boxSize * 54) + deviation), ((boxSize * 55) + deviation), ((boxSize * 56) + deviation), ((boxSize * 57) + deviation), ((boxSize * 58) + deviation),
  ((boxSize * 59) + deviation), ((boxSize * 60) + deviation),((boxSize * 61) + deviation),((boxSize * 62) + deviation),((boxSize * 63) + deviation),((boxSize * 64) + deviation),((boxSize * 65) + deviation),((boxSize * 66) + deviation),((boxSize * 67) + deviation),((boxSize * 68) + deviation),((boxSize * 69) + deviation),((boxSize * 70) + deviation),(boxSize * 71 + deviation), ((boxSize * 72) + deviation), ((boxSize * 73) + deviation), ((boxSize * 74) + deviation), ((boxSize * 75) + deviation), ((boxSize * 76) + deviation), ((boxSize * 77) + deviation), ((boxSize * 78) + deviation),
  ((boxSize * 79) + deviation), ((boxSize * 80) + deviation),((boxSize * 81) + deviation),((boxSize * 82) + deviation),((boxSize * 83) + deviation),((boxSize * 84) + deviation),((boxSize * 85) + deviation),((boxSize * 86) + deviation),((boxSize *87) + deviation),((boxSize * 88) + deviation),((boxSize * 89) + deviation),((boxSize * 90) + deviation),((boxSize * 91) + deviation),((boxSize * 92) + deviation),((boxSize * 93) + deviation),((boxSize * 94) + deviation),((boxSize * 95) + deviation),((boxSize * 96) + deviation),((boxSize * 97) + deviation),((boxSize * 98) + deviation),((boxSize * 99) + deviation),((boxSize * 100) + deviation),

  ((boxSize  * 101)+ deviation), ((boxSize * 102) + deviation), ((boxSize * 103) + deviation), ((boxSize * 104) + deviation), ((boxSize * 105) + deviation), ((boxSize * 106) + deviation), ((boxSize * 107) + deviation), ((boxSize * 108) + deviation),
  ((boxSize * 109) + deviation), ((boxSize * 110) + deviation),((boxSize * 111) + deviation),((boxSize * 112) + deviation),((boxSize * 113) + deviation),((boxSize * 114) + deviation),((boxSize * 115) + deviation),((boxSize * 116) + deviation),((boxSize * 117) + deviation),((boxSize * 118) + deviation),((boxSize * 119) + deviation),((boxSize * 120) + deviation),(boxSize * 121 + deviation), ((boxSize * 122) + deviation), ((boxSize * 123) + deviation), ((boxSize * 124) + deviation), ((boxSize * 125) + deviation), ((boxSize * 126) + deviation), ((boxSize * 127) + deviation), ((boxSize * 128) + deviation),
  ((boxSize * 129) + deviation), ((boxSize * 130) + deviation),((boxSize * 131) + deviation),((boxSize * 132) + deviation),((boxSize * 133) + deviation),((boxSize * 134) + deviation),((boxSize * 135) + deviation),((boxSize * 136) + deviation),((boxSize * 137) + deviation),((boxSize * 138) + deviation),((boxSize * 139) + deviation),((boxSize * 140) + deviation),((boxSize * 141) + deviation),((boxSize * 142) + deviation),((boxSize * 143) + deviation),((boxSize * 144) + deviation),((boxSize * 145) + deviation),((boxSize * 146) + deviation),((boxSize * 147) + deviation),((boxSize * 148) + deviation),((boxSize * 149) + deviation),((boxSize * 150) + deviation),
  ((boxSize * 151) + deviation), ((boxSize * 152) + deviation), ((boxSize * 153) + deviation), ((boxSize * 154) + deviation), ((boxSize * 155) + deviation), ((boxSize * 156) + deviation), ((boxSize * 157) + deviation), ((boxSize * 158) + deviation),
  ((boxSize * 159) + deviation), ((boxSize * 160) + deviation),((boxSize * 161) + deviation),((boxSize * 162) + deviation),((boxSize * 163) + deviation),((boxSize * 164) + deviation),((boxSize * 165) + deviation),((boxSize * 166) + deviation),((boxSize * 167) + deviation),((boxSize * 168) + deviation),((boxSize * 169) + deviation),((boxSize * 170) + deviation),(boxSize * 171 + deviation), ((boxSize * 172) + deviation), ((boxSize * 173) + deviation), ((boxSize * 174) + deviation), ((boxSize * 175) + deviation), ((boxSize * 176) + deviation), ((boxSize * 177) + deviation), ((boxSize * 178) + deviation),
  ((boxSize * 179) + deviation), ((boxSize * 180) + deviation),((boxSize * 181) + deviation),((boxSize * 182) + deviation),((boxSize * 183) + deviation),((boxSize * 184) + deviation),((boxSize * 185) + deviation),((boxSize * 186) + deviation),((boxSize * 187) + deviation),((boxSize * 188) + deviation),((boxSize * 189) + deviation),((boxSize * 190) + deviation),((boxSize * 191) + deviation),((boxSize * 192) + deviation),((boxSize * 193) + deviation),((boxSize * 194) + deviation),((boxSize * 195) + deviation),((boxSize * 196) + deviation),((boxSize * 197) + deviation),((boxSize * 198) + deviation),((boxSize * 199) + deviation),((boxSize * 200) + deviation)

  
};

  
//********************************************************************************************************************************************************************
   
void setup() {
   Serial.begin(9600);

   
  pinMode(8, OUTPUT);  //backlight 
  digitalWrite(8, HIGH);//on
   
     delay(100);
   if (!ra8876lite.begin()) 
   {
   Serial.println("RA8876 or RA8877 Fail");
   while (1);
   }
   Serial.println("RA8876 or RA8877 Pass!");
   
   ra8876lite.displayOn(true);
#define BACKCOLOR 0xffe0 // White
#define PIXELCOLOR 0x0000  // Black

// ra8876lite.stroke(0,255,255);

Scale();
   bmp.begin();//******************************************

}

//***************************************************************************************************************************************************************

void loop() {
   
 graph();

 z = z + 1;
Serial.print(" z =.................................................z =  ");
 Serial.println(z);

  if( z > 6999){
    REQUEST_EXTERNAL_RESET;
  }

   delay(8640000);
   //   delay(100);
   }
//****************************************************************************************************************************************************************
 
   void Scale(){
     //demo display float
  ra8876lite.canvasImageStartAddress(PAGE1_START_ADDR);
  ra8876lite.canvasImageWidth(SCREEN_WIDTH);
  ra8876lite.activeWindowXY(0,0);
  ra8876lite.activeWindowWH(SCREEN_WIDTH,SCREEN_HEIGHT); 
  ra8876lite.drawSquareFill(0, 0, 1023, 599, COLOR65K_BLACK);// WAS BLUE

  ra8876lite.setTextParameter1(RA8876_SELECT_INTERNAL_CGROM,RA8876_CHAR_HEIGHT_32,RA8876_SELECT_8859_1);//cch
  ra8876lite.setTextParameter2(RA8876_TEXT_FULL_ALIGN_DISABLE, RA8876_TEXT_CHROMA_KEY_DISABLE,RA8876_TEXT_WIDTH_ENLARGEMENT_X1,RA8876_TEXT_HEIGHT_ENLARGEMENT_X1);
  ra8876lite.textColor(COLOR65K_WHITE,COLOR65K_BLACK);
 

ra8876lite.drawLine( 50, 560, 1020, 560, 0xffff);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL

ra8876lite.drawLine( 1020, 0, 1020, 560, 0xffff);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########End Vertical

ra8876lite.drawLine( 50, 0, 50, 560, 0xffff);//##########################################################################VERTICL

// Horizontal scale lines
  
  ra8876lite.drawLine( 50, 56, 997, 56, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 1050
 
  ra8876lite.drawLine( 50, 111, 997, 111, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 1040
  
  ra8876lite.drawLine( 50, 166, 997, 166, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 1030

  ra8876lite.drawLine( 50, 221, 997, 221, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 1020
  
  ra8876lite.drawLine( 50, 277, 997, 277, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 1010

  ra8876lite.drawLine( 50, 331, 997, 331, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 1000

  ra8876lite.drawLine( 50, 385, 997, 385, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 990

  ra8876lite.drawLine( 50, 439, 997, 439, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 980

  ra8876lite.drawLine( 50, 494, 997, 494, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 970

  ra8876lite.drawLine( 50, 549, 997, 549, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########HORIZONTAL scale Line 960
  

 // Vertical scale lines

  
     ra8876lite.drawLine( 96, 0, 96, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 1
          
     ra8876lite.drawLine( 146, 0, 146, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 2

     ra8876lite.drawLine( 196, 0, 196, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 3
  
     ra8876lite.drawLine( 246, 0, 246, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 4

     ra8876lite.drawLine( 296, 0, 296, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 5

     ra8876lite.drawLine( 346, 0,346, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 6

     ra8876lite.drawLine( 396, 0, 396, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 7

     ra8876lite.drawLine( 446, 0, 446, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 8

     ra8876lite.drawLine( 496, 0, 496, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 9

     ra8876lite.drawLine( 546, 0, 546, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 10

     ra8876lite.drawLine( 596, 0, 596, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 11

     ra8876lite.drawLine( 646, 0, 646, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 12

     ra8876lite.drawLine( 696, 0, 696, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 13

     ra8876lite.drawLine( 746, 0, 746, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 14

     ra8876lite.drawLine( 796, 0, 796, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 15

     ra8876lite.drawLine( 846, 0, 846, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 16

     ra8876lite.drawLine( 896, 0, 896, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 17

     ra8876lite.drawLine( 946, 0, 946, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 18

     ra8876lite.drawLine( 996, 0, 996, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 19

     ra8876lite.drawLine( 1046, 0, 1046, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 20

     ra8876lite.drawLine( 1096, 0, 1096, 560, 0xA145);// X START (from left), Y START( from top), X FINISH   ,Y FINISH#########Day 21

  //Verticl Scale

  
   ra8876lite.setTextParameter1(RA8876_SELECT_INTERNAL_CGROM,RA8876_CHAR_HEIGHT_16,RA8876_SELECT_8859_1);//cch
  ra8876lite.setTextParameter2(RA8876_TEXT_FULL_ALIGN_DISABLE, RA8876_TEXT_CHROMA_KEY_DISABLE,RA8876_TEXT_WIDTH_ENLARGEMENT_X1,RA8876_TEXT_HEIGHT_ENLARGEMENT_X1);
  ra8876lite.textColor(COLOR65K_WHITE,COLOR65K_BLACK);

  ra8876lite.putString(0,45,"1050");
  
  ra8876lite.putString(0,100,"1040");

  ra8876lite.putString(0,155,"1030");

   ra8876lite.putString(0,210,"1020");
  
  ra8876lite.putString(0,265,"1010");

  ra8876lite.putString(0,320,"1000");

   ra8876lite.putString(0,375,"990");

   ra8876lite.putString(0,430,"980");
  
  ra8876lite.putString(0,485,"970");

  ra8876lite.putString(0,540,"960");

  ra8876lite.setTextParameter1(RA8876_SELECT_INTERNAL_CGROM,RA8876_CHAR_HEIGHT_16,RA8876_SELECT_8859_1);//cch
  ra8876lite.setTextParameter2(RA8876_TEXT_FULL_ALIGN_DISABLE, RA8876_TEXT_CHROMA_KEY_DISABLE,RA8876_TEXT_WIDTH_ENLARGEMENT_X1,RA8876_TEXT_HEIGHT_ENLARGEMENT_X2);
   ra8876lite.textColor(COLOR65K_YELLOW,COLOR65K_BLACK);



  ra8876lite.putString(10,565,"Barometric Pressure ");
 
 ra8876lite.putString(500,565,"....interval days");

 
 
   }

   //***********************************************************************************************************************************************************

 void graph()
{
   Serial.println("In Graph ");

   bmp.begin();//******************************************

  bp = (bmp.readPressure()/100) + 0;// needs to be repeated
/// bp = 1000;
     ra8876lite.setTextParameter2(RA8876_TEXT_FULL_ALIGN_DISABLE, RA8876_TEXT_CHROMA_KEY_DISABLE,RA8876_TEXT_WIDTH_ENLARGEMENT_X3,RA8876_TEXT_HEIGHT_ENLARGEMENT_X3);

    ra8876lite.textColor(COLOR65K_YELLOW,COLOR65K_BLACK);
 
    
     ra8876lite.putFloat(230,550,bp,1,1,"n"); //  x,y Value,number of decimal places ,font size , font type 
     //ra8876lite.putInteger(230, 550, bp, 1,"n");// does not compile
  ra8876lite.putString(334,565," mb ");
 if (bp > 999){
  ra8876lite.drawSquareFill(334, 562, 400, 600, COLOR65K_BLACK);
  
 }
  else
  {
     ra8876lite.drawSquareFill(310, 562, 400, 600, COLOR65K_BLACK);
     
  }

  ra8876lite.setTextParameter1(RA8876_SELECT_INTERNAL_CGROM,RA8876_CHAR_HEIGHT_16,RA8876_SELECT_8859_1);//cch
  ra8876lite.setTextParameter2(RA8876_TEXT_FULL_ALIGN_DISABLE, RA8876_TEXT_CHROMA_KEY_DISABLE,RA8876_TEXT_WIDTH_ENLARGEMENT_X1,RA8876_TEXT_HEIGHT_ENLARGEMENT_X2);
   ra8876lite.textColor(COLOR65K_YELLOW,COLOR65K_BLACK);

  ra8876lite.putString(334,565," mb ");




     
 timeBlock[valuePos] = ((millis() - 4500) / 1000);// 4500/1000  TIMING

  valueBlock[valuePos] = bp;
  
  if(proDebug)
  {
    Serial.println(timeBlock[valuePos]);
  }
 
  if(blockPos < 190)// was 8...... NUMBER OF PLOTS..12   also change line 53...57 & 342
  
  {
   
    // map the value   
    locationBlock[valuePos] = map(bp,960,1060,550,0);
    
    // draw point
    ra8876lite.drawSquareFill((mark[valuePos] - 1), (locationBlock[valuePos] - 1), (mark[valuePos] - 1)+3, (locationBlock[valuePos] - 1)+3, COLOR65K_YELLOW);

    // try connecting to previous point
    if(valuePos != 0)
    {
      ra8876lite.drawLine(mark[valuePos], locationBlock[valuePos], mark[(valuePos - 1)], locationBlock[(valuePos - 1)], COLOR65K_YELLOW);
    }
    blockPos++;
   
  }
 
  else
  {
    // clear the graph's canvas
    /// ra8876lite.drawSquareFill( 0, 0, sizeX, sizeY, COLOR65K_YELLOW);// After 8 plots turns graph canvas colour chosen + 2  LEAVING OUT GIVES BARS
      Scale();
     Serial.println("Scale................................................Scale ");
    bmp.begin();//******************************************

      bp = (bmp.readPressure()/100)+ 0;// needed for second time
    ///  bp = 1020;
 Serial.print("bp  =    ");
 Serial.println(bp);

  locationBlock[valuePos] = bp;

 Serial.print(" mapped value position..ELSE............................................ ");
   Serial.println(locationBlock[valuePos]);

   ra8876lite.setTextParameter2(RA8876_TEXT_FULL_ALIGN_DISABLE, RA8876_TEXT_CHROMA_KEY_DISABLE,RA8876_TEXT_WIDTH_ENLARGEMENT_X3,RA8876_TEXT_HEIGHT_ENLARGEMENT_X3);

    ra8876lite.textColor(COLOR65K_YELLOW,COLOR65K_BLACK);

  ra8876lite.putFloat(230,550,bp,1,1,"n"); //  x,y Value,number of decimal places ,font size , font type 

if (bp > 999){
  ra8876lite.drawSquareFill(334, 562, 400, 600, COLOR65K_BLACK);
  
 }
  else
  {
     ra8876lite.drawSquareFill(310, 562, 400, 600, COLOR65K_BLACK);
     
  }

    ra8876lite.setTextParameter1(RA8876_SELECT_INTERNAL_CGROM,RA8876_CHAR_HEIGHT_16,RA8876_SELECT_8859_1);//cch
    ra8876lite.setTextParameter2(RA8876_TEXT_FULL_ALIGN_DISABLE, RA8876_TEXT_CHROMA_KEY_DISABLE,RA8876_TEXT_WIDTH_ENLARGEMENT_X1,RA8876_TEXT_HEIGHT_ENLARGEMENT_X2);
    ra8876lite.textColor(COLOR65K_YELLOW,COLOR65K_BLACK);
    ra8876lite.putString(345,565," mb ");//334,565

    // map the value - current point
   
         locationBlock[valuePos] = map(bp,960,1060,550,0);
    // draw point - current point
/////    ra8876lite.drawSquareFill((mark[7]), (locationBlock[valuePos] - 1), (mark[19])+3, (locationBlock[valuePos] - 1)+3, COLOR65K_GREEN);//[7]

    // draw all points
    for(int i = 0; i < 190; i++)
    {
      ra8876lite.drawSquareFill((mark[(blockPos - (i + 1))] - 1), (locationBlock[(valuePos - i)] - 1), (mark[(blockPos - (i + 1))] - 1)+3, (locationBlock[(valuePos - i)] - 1)+3, COLOR65K_YELLOW);
    }

    // draw all the lines
    for(int i = 0; i < 189; i++)// 7
    {
      ra8876lite.drawLine(mark[blockPos - (i + 1)], locationBlock[valuePos - i], mark[blockPos - (i + 2)], locationBlock[valuePos - (i + 1)], COLOR65K_YELLOW);
    }

   
    
  }
 valuePos++;
  Serial.println("Leaving Graph ");
}

Credits

Paul Keenan
1 project • 0 followers
Contact
Thanks to Adrian Florin.

Comments

Please log in or sign up to comment.