Software apps and online services | ||||||
![]() |
| |||||
Hand tools and fabrication machines | ||||||
![]() |
| |||||
![]() |
|
The project was built to provide the history of the Barometric pressure over 19 days on a 10.1inch tft display. Once to display is fully populated the oldest data falls off & the latest is added. The logic was derived from a Adrian Florin project
(https;//www.hackster.io/adrianflorin/tft-graphing-live-history-graphs)
That project was basically small scale but proved vital in the creation of this project.
The tft display is a ra8876 10.1 inch tft which can be obtained from..
https://www.buydisplay.comthen search serial-spi-arduino-10-1-tft-lcd-display-shield-ra8876-for-due.
The shield is provided with the display.
A arduino Due & a BMP 180 is also required
Barograph
ArduinoThe 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 ");
}
Thanks to Adrian Florin.
Comments
Please log in or sign up to comment.