Pagina 1 van 1

Full FIS maar dan net even anders

Geplaatst: 17 sep 2016, 22:08
door muurman
Lupo en A2 3L hebben denk ik geen can-bus.
Maar ipv can-bus kun je ook een obd2 adapter aan de arduino hangen ( dit heb ik in 1ste instantie ook gedaan maar nu op can-bus ) obd2 arduino interface heb ik nu trouwens over.
aansturing tft is met een arduino . Software zelf geschreven mbv info van internet

Wat ik gedaan heb bij mijn golf5 : bestaande middenstuk ( tft en lampjes ) weggehaald en hierachter een tft geplaatst.
Heb eerst meerdere maanden met een losse tft getest maar vananvond maar een tft in huidige dashboard gebouwd.

Afbeelding

Re: Full FIS maar dan net even anders

Geplaatst: 17 sep 2016, 22:11
door muurman
hmmm plaatje word niet getoond . Wat doe ik fout?

Re: Full FIS maar dan net even anders

Geplaatst: 18 sep 2016, 11:01
door Johan
Niet beter te weten heeft elke A2 een Canbus, dus ook de 3L
de Lupo niet.

Re: Full FIS maar dan net even anders

Geplaatst: 18 sep 2016, 13:10
door Nietsnut
muurman schreef:hmmm plaatje word niet getoond . Wat doe ik fout?
blijkbaar wil het plaatje op de tdi club niet gelinkt worden?

Re: Full FIS maar dan net even anders

Geplaatst: 18 sep 2016, 13:59
door muurman
Nietsnut schreef:
muurman schreef:hmmm plaatje word niet getoond . Wat doe ik fout?
blijkbaar wil het plaatje op de tdi club niet gelinkt worden?
vreemd link naar audi-a2 forum wil wel.

Re: Full FIS maar dan net even anders

Geplaatst: 18 sep 2016, 17:13
door Nietsnut
Ziet er leuk uit, heb je je project ook beschreven? Of moeten we het met deze toch wel summiere info doen?

Re: Full FIS maar dan net even anders

Geplaatst: 18 sep 2016, 19:41
door muurman
Ik denk post het eerst. Dacht als er interesse is dan meer info.

Je hebt nodig:
Arduino uno
tft parallel ( ik ben begonnen met een 2.4" ( https://opencircuit.nl/Product/10036/2. ... touchpanel ) en nu een 3.5inch inch variant ( http://www.ebay.de/itm/111875574700)
can-bus module https://benselectronics.nl/mcp2515-can- ... iver-spi-/ waarbij ik het 8mhz cristal heb vervangen door een 16mhz
of zoals ik begonnen ben met een obd2 uart voor arduino van sparkfun ( maar die is ongeveer 60,- )

En daarbij dan nog stukje software schrijven. Indien er meer mensen ook ermee bezig willen kunnen we er een gezamelijk project van maken.

Re: Full FIS maar dan net even anders

Geplaatst: 18 sep 2016, 21:22
door muurman
arduino code op dit moment ( nog niet netjes :) )

Code: Selecteer alles

#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

#define  BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF
#define GREY    0x5AEB

#define Achtergrond BLACK
#define Voorgrond   WHITE
#define Labels      MAGENTA
#define Waarden     WHITE

#include <mcp_can.h> // can-bus

#include <SPI.h>          // f.k. for Arduino-1.5.2
#include "Adafruit_GFX.h"// Hardware-specific library
#include <MCUFRIEND_kbv.h>


MCUFRIEND_kbv tft;


int KleurMeterRand = GREY;
int KleurMeterStreep = WHITE ;

long unsigned int rxId;
unsigned char len = 0;
unsigned char rxBuf[8];

unsigned char rxBufSerieel[16];
//int Ypos=5;
int WaardenGrote=3;

long KmStand=0;
String strSerial="";
String tijd="00:00:00";
String Melding, KnipperLicht,Rem, HexString;
int coolant=0,coolantnew=0, tdruk=0, rpm=0,rpmnew=0 , snelheid=0, SnelheidVorig=0, olie=0,olienew=0 , brandstof=0;
int teller35b ,  teller351 ;
int uur , minuut , seconde ;
int Scherm=1;

 // Meter

float M_SIZE=1;
float Yoffset=3.5;
float Xoffset=1;

float ltx = 0;    // Saved x coord of bottom of needle
uint16_t osx = M_SIZE*120, osy = M_SIZE*120; // Saved x & y coords
uint32_t updateTime = 0;       // time for next update

int MeterMin=-90 ,MeterMax=90;

int old_analog =  -999; // Value last displayed

int value[6] = {0, 0, 0, 0, 0, 0};
int old_value[6] = { -1, -1, -1, -1, -1, -1};
int d = 0;

int NeedleMin=-180;
int NeedleMax=180;
int i2 ;
int j=0;



MCP_CAN CAN0(10);                               // Set CS to pin 10

void TFTprint(int X, int Y,  uint16_t Kleur ,int tsize, String txt)
 {
     tft.setTextSize(tsize);
     tft.setTextColor(Kleur);
     tft.setCursor(X, Y);
     tft.print(txt);
  }

void plotNaald(int NaaldPunt, float Xoffset, float Yoffset, float M_SIZE  ,char Kleur )
{
   float sx = cos((NaaldPunt - 90) * 0.0174532925 );
   float sy = sin((NaaldPunt - 90) * 0.0174532925 );

   uint16_t x1 = sx * M_SIZE*100 + M_SIZE*120*Xoffset;
   uint16_t y1 = sy * M_SIZE*100 + M_SIZE*140*Yoffset;

   tft.drawLine(120*Xoffset*M_SIZE, 140*Yoffset*M_SIZE, x1, y1, Kleur);
}

void plotKorteNaald(int NaaldPunt, float Xoffset, float Yoffset, float M_SIZE  ,char Kleur )
{
    float sx = cos((NaaldPunt - 90) * 0.0174532925 );
    float sy = sin((NaaldPunt - 90) * 0.0174532925 );
    int tl = 20;
    uint16_t x0 = sx * (M_SIZE*100 - tl) + M_SIZE*120*Xoffset;
    uint16_t y0 = sy * (M_SIZE*100 - tl) + M_SIZE*140*Yoffset;
    uint16_t x1 = sx * M_SIZE*100 + M_SIZE*120*Xoffset;
    uint16_t y1 = sy * M_SIZE*100 + M_SIZE*140*Yoffset;
    tft.drawLine(x0, y0, x1, y1, Kleur);
  
}

void streepMeter(float Xoffset,float Yoffset,float M_SIZE,int i,int tl)
{
 
    float sx = cos((i - 90) * 0.0174532925 );
    float sy = sin((i - 90) * 0.0174532925 );
    //tl = +
    uint16_t x0 = sx * (M_SIZE*100 + tl) + M_SIZE*120*Xoffset;
    uint16_t y0 = sy * (M_SIZE*100 + tl) + M_SIZE*140*Yoffset;
    uint16_t x1 = sx * M_SIZE*100 + M_SIZE*120*Xoffset;
    uint16_t y1 = sy * M_SIZE*100 + M_SIZE*140*Yoffset;
    tft.drawLine(x0, y0, x1, y1, KleurMeterStreep);
}

void WaardeMeter(float Xoffset,float Yoffset,float M_SIZE,int i,String txt)
{
   int tl=15;
    float sx = cos((i - 90) * 0.0174532925 );
    float sy = sin((i - 90) * 0.0174532925 );
    
    uint16_t x0 = sx * (M_SIZE*100 + tl) + M_SIZE*120*Xoffset;
    uint16_t y0 = sy * (M_SIZE*100 + tl) + M_SIZE*140*Yoffset;
    uint16_t x1 = sx * M_SIZE*100 + M_SIZE*120*Xoffset;
    uint16_t y1 = sy * M_SIZE*100 + M_SIZE*140*Yoffset;
    int x = x0-txt.length()/2*18;
    TFTprint( x, y0-20,Waarden,2,txt);
    
}



void analogMeter(float Xoffset,float Yoffset,float M_SIZE)
{


  // Draw ticks every 5 degrees from -50 to +50 degrees (100 deg. FSD swing)
  for (int i = MeterMin; i < MeterMax; i += 5) {
    // Long scale tick length
    int tl = 15;
     // Coodinates of tick to draw
    float sx = cos((i - 90) * 0.0174532925 );
    float sy = sin((i - 90) * 0.0174532925 );
    
    uint16_t x0 = sx * (M_SIZE*100 + tl) + M_SIZE*120*Xoffset;
    uint16_t y0 = sy * (M_SIZE*100 + tl) + M_SIZE*140*Yoffset;
    uint16_t x1 = sx * M_SIZE*100 + M_SIZE*120*Xoffset;
    uint16_t y1 = sy * M_SIZE*100 + M_SIZE*140*Yoffset;

    // Coordinates of next tick for zone fill
    float sx2 = cos((i + 5 - 90) * 0.0174532925);
    float sy2 = sin((i + 5 - 90) * 0.0174532925);
    int x2 = sx2 * (M_SIZE*100 + tl) + M_SIZE*120*Xoffset;
    int y2 = sy2 * (M_SIZE*100 + tl) + M_SIZE*140*Yoffset;
    int x3 = sx2 * M_SIZE*100 + M_SIZE*120*Xoffset;
    int y3 = sy2 * M_SIZE*100 + M_SIZE*140*Yoffset;

   
    tft.fillTriangle(x0, y0, x1, y1, x2, y2, KleurMeterRand);
    tft.fillTriangle(x1, y1, x2, y2, x3, y3, KleurMeterRand);
   
  }



  
}



// #########################################################################

void MeterWaarde(int vorig,int huidig)
{
int  factor = 0.038 ;
if (huidig > vorig)
  
  for ( int j = vorig; j < huidig; j +=1 )
  { 
   
   //int jj = j * 0.036 - MeterMax;
   int jj = j  - MeterMax;
    plotKorteNaald(jj,Xoffset,Yoffset,M_SIZE,BLUE); }

 if (huidig < vorig)
  for ( int j = vorig ; j > huidig; j -=1 )
  { 
    //int jj = j * 0.036 - MeterMax;
    
    int jj = j  - MeterMax;
    plotKorteNaald(jj,Xoffset,Yoffset,M_SIZE,Achtergrond); }
 
  
}






void setup()
{

  Serial.begin(115200);
 // Serial.println("MCP2515 Library Receive Example...");
 
 
  tft.reset();

uint16_t identifier = tft.readID();
 
  // tft.begin(37697);
   //tft.begin(37672);  //test
   //tft.begin(0x9325);  //test
  //  tft.begin(0x9481); // 0x9488 3.5inch
   tft.begin(identifier);
   
  tft.fillRect(0,0,320,480,Achtergrond);
  TFTprint(10,10,Labels,2,"Welkom Bestuurder");
  TFTprint(10,30,Labels,2,"Gaspedaal zit rechts");
  TFTprint(10,50,Labels,2,"Koppeling zit links");
  TFTprint(10,70,RED,2,"Rem .. afblijven");
  
  delay(6000);
  CAN0.begin(CAN_100KBPS);                       // init can bus : 
  
  scherm1Opbouw();
  
   
 teller35b = 10;
 teller351=10;

  KnipperLicht = "<>";
  TFTprint(196,430,YELLOW,3,KnipperLicht);
  delay(1000);
  TFTprint(196,430,Achtergrond,3,KnipperLicht);
 analogWrite(A5,1023);
  
  
    
}
void scherm1Opbouw()
{
  tft.fillRect(0,0,320,480,Achtergrond);
  
  TFTprint(5,50,Labels,2,"Coolant/Oil");
  TFTprint(5,85,Labels,2,"Turbo");
  TFTprint(130,85,Labels,2,"Fuel");
  TFTprint(5,125,Labels,2,"RPM");
  M_SIZE=1;
  Yoffset=2.9;
  Xoffset=1.2;
  analogMeter(Xoffset,Yoffset,M_SIZE);

  for (int i = 0; i < 5000; i += 100) 
  {
  j = i * 0.036 - MeterMax;
  int tl = 10;
  if ( i == 1000 or i == 1500 or i == 2000 or i == 2500 or i == 3000 or i == 3500 or i == 4000 ) {tl=20;} 
  if ( i == 2500) {WaardeMeter(Xoffset,Yoffset,M_SIZE,j,"2500");}
  streepMeter(Xoffset,Yoffset,M_SIZE,j,tl);
  }  
}

void scherm1Waarden()
{
    
      CAN0.readMsgBuf(&len, rxBuf);              // Read data: len = data length, buf = data byte(s)
      rxId = CAN0.getCanId();                    // Get message ID
 if ( rxId == 0x10 )
 {    
    // vanaf andere arduino
 }  

if ( rxId == 0x621 )
 {    
  // byte 0 handrem geeft 20
  // ook wellicht deur
   
    TFTprint(190,85,Achtergrond,WaardenGrote,String(brandstof));
     brandstof = rxBuf[3] ;
    bitWrite(brandstof,7,0);
     TFTprint(190,85,Waarden,WaardenGrote,String(brandstof));
    TFTprint(210,150,Achtergrond,6,"T");
    if ( brandstof < 6 ){TFTprint(210,150,RED,6,"T");}
     
 }  

 
  
if ( rxId == 0x35B )
  {
     // byte 7 brandstof sinds motor aan
  TFTprint(26,430,Achtergrond,4,"C"); 
  if ( rxBuf[6] == 66 ) { TFTprint(26,430,YELLOW,4,"C"); } // cruise aan
  teller35b = teller35b + 1;
  if (teller35b > 5 )
   {
    teller35b = 0;
    coolantnew = (rxBuf[3]-32)/1.8;
    if (coolant-coolantnew>2 or coolant-coolantnew<2 )
      {
      TFTprint(146,50,Achtergrond,WaardenGrote,String(coolant)); 
      coolant=coolantnew;
      TFTprint(146,50,Waarden,WaardenGrote,String(coolant)); 
      }
      
    rpmnew = 0.25*(256*rxBuf[2]+rxBuf[1]);
    if (rpmnew-rpm>20 or rpmnew-rpm<20 )
      {
        TFTprint(60,125,Achtergrond,WaardenGrote,String(rpm));
        MeterWaarde(rpm * 0.036,rpmnew * 0.036);
        rpm=rpmnew;
        if ( rpm < 4000 && rpm > 1700) {TFTprint(60,125,Waarden,WaardenGrote,String(rpm));}
        if ( rpm < 1700 ) {TFTprint(60,125,YELLOW,WaardenGrote,String(rpm));}
        if ( rpm > 4000 ) {TFTprint(60,125,MAGENTA,WaardenGrote,String(rpm));}
        
      }
   }
  }

 if ( rxId == 0x555 )
 {
    
      TFTprint(70,85,Achtergrond,WaardenGrote,String(tdruk)); 
      tdruk = rxBuf[4];
      TFTprint(70,85,Waarden,WaardenGrote,String(tdruk)); 
      
      olienew = (rxBuf[7]-32)/1.8;
      if (olienew-olie>2 or olienew-olie<2)
      {    
      TFTprint(196,50,Achtergrond,WaardenGrote,String(olie)); 
      olie=olienew;
      TFTprint(196,50,Waarden,WaardenGrote,String(olie));
      } 
     
      
 }


if ( rxId == 0x351 )
   {
     teller351=teller351+1;
     if (teller351 > 2)
    // if ( SnelheidVorig != snelheid )
     {
      teller351=0;

      snelheid=(rxBuf[2]*256+(rxBuf[1]-1))/200; 
      //MeterWaarde(SnelheidVorig,snelheid);
      TFTprint(100,350,Achtergrond,6,String(SnelheidVorig));
      TFTprint(100,350,Waarden,6,String(snelheid));  
      SnelheidVorig = snelheid;
      } 
   
   }



if ( rxId == 0x65D )
{
    TFTprint(5,12,Achtergrond,3,String(KmStand));
    KmStand=(rxBuf[3]*65536+rxBuf[2]*256+rxBuf[1]);
    TFTprint(5,12,Waarden,3,String(KmStand));

  uur=00 ; minuut=00 ; seconde=00 ;
  bitWrite(uur,4,bitRead(rxBuf[6],0));
  bitWrite(uur,3,bitRead(rxBuf[5],7));
  bitWrite(uur,2,bitRead(rxBuf[5],6));
  bitWrite(uur,1,bitRead(rxBuf[5],5));
  bitWrite(uur,0,bitRead(rxBuf[5],4));

  bitWrite(minuut,5,bitRead(rxBuf[6],6));
  bitWrite(minuut,4,bitRead(rxBuf[6],5));
  bitWrite(minuut,3,bitRead(rxBuf[6],4));
  bitWrite(minuut,2,bitRead(rxBuf[6],3));
  bitWrite(minuut,1,bitRead(rxBuf[6],2));
  bitWrite(minuut,0,bitRead(rxBuf[6],1));

//  bitWrite(seconde,5,bitRead(rxBuf[7],4));
//  bitWrite(seconde,4,bitRead(rxBuf[7],3));
//  bitWrite(seconde,3,bitRead(rxBuf[7],2));
//  bitWrite(seconde,2,bitRead(rxBuf[7],1));
//  bitWrite(seconde,1,bitRead(rxBuf[7],0));
//  bitWrite(seconde,0,bitRead(rxBuf[6],7));

 TFTprint(216,12,Achtergrond,3,tijd);
 tijd = String(uur) + ":" + String(minuut)   ;
 TFTprint(216,12,Waarden,3,tijd);
}

if ( rxId == 0x531  )
  {
    TFTprint(6,430,Achtergrond,4,Melding);
    TFTprint(196,430,Achtergrond,6,KnipperLicht);

    if ( ( rxBuf[1] == 0x11 ) or ( rxBuf[1] == 0x51 ) )
    {
     KnipperLicht = "<";
     TFTprint(196,430,YELLOW,6,KnipperLicht);
    }

    if (( rxBuf[1] == 0x12 ) or ( rxBuf[1] == 0x52 ) )
    {
     KnipperLicht = ">"; 
     TFTprint(196,430,YELLOW,6,KnipperLicht);
    }
   
     
    if ( rxBuf[0] == 0x0 )
    {
     Melding = "L";
     TFTprint(6,430,RED,4,Melding);
    }

    if ( rxBuf[0] == 0xc3 )
    {
     Melding = "L";
     TFTprint(6,430,GREEN,4,Melding);
    }
  } 
   
  
}

void scherm2Opbouw()
{
  tft.fillRect(0,0,320,480,Achtergrond);
  
  TFTprint(5,50,Labels,2,"Coolant/Oil");
  TFTprint(5,85,Labels,2,"Turbo");
  TFTprint(5,150,Labels,2,"RPM");
    
}

void scherm2Waarden()
{
    
      CAN0.readMsgBuf(&len, rxBuf);              // Read data: len = data length, buf = data byte(s)
      rxId = CAN0.getCanId();                    // Get message ID

  
if ( rxId == 0x35B )
  {
     // byte 7 brandstof sinds motor aan
  TFTprint(26,430,Achtergrond,4,"C"); 
  if ( rxBuf[6] == 66 ) { TFTprint(26,430,YELLOW,4,"C"); } // cruise aan
  teller35b = teller35b + 1;
  if (teller35b > 5 )
   {
    teller35b = 0;
    coolantnew = (rxBuf[3]-32)/1.8;
    if (coolant-coolantnew>2 or coolant-coolantnew<2 )
      {
      TFTprint(146,50,Achtergrond,WaardenGrote,String(coolant)); 
      coolant=coolantnew;
      TFTprint(146,50,Waarden,WaardenGrote,String(coolant)); 
      }
      
    rpmnew = 0.25*(256*rxBuf[2]+rxBuf[1]);
    if (rpmnew-rpm>20 or rpmnew-rpm<20 )
      {
        TFTprint(60,150,Achtergrond,6,String(rpm));
        rpm=rpmnew;
        if ( rpm < 4000 && rpm > 1700) {TFTprint(60,150,Waarden,6,String(rpm));}
        if ( rpm < 1700 ) {TFTprint(60,150,YELLOW,6,String(rpm));}
        if ( rpm > 4000 ) {TFTprint(60,150,MAGENTA,6,String(rpm));}
        
      }
   }
  }

 if ( rxId == 0x555 )
 {
    
      TFTprint(70,85,Achtergrond,6,String(tdruk)); 
      tdruk = rxBuf[4];
      TFTprint(70,85,Waarden,6,String(tdruk)); 
      
      olienew = (rxBuf[7]-32)/1.8;
      if (olienew-olie>2 or olienew-olie<2)
      {    
      TFTprint(196,50,Achtergrond,WaardenGrote,String(olie)); 
      olie=olienew;
      TFTprint(196,50,Waarden,WaardenGrote,String(olie));
      } 
     
      
 }


if ( rxId == 0x351 )
   {
     teller351=teller351+1;
     if (teller351 > 2)
    // if ( SnelheidVorig != snelheid )
     {
      teller351=0;

      snelheid=(rxBuf[2]*256+(rxBuf[1]-1))/200; 
      //MeterWaarde(SnelheidVorig,snelheid);
      TFTprint(80,350,Achtergrond,10,String(SnelheidVorig));
      TFTprint(80,350,Waarden,10,String(snelheid));  
      SnelheidVorig = snelheid;
      } 
   
   }



if ( rxId == 0x65D )
{
    TFTprint(5,12,Achtergrond,3,String(KmStand));
    KmStand=(rxBuf[3]*65536+rxBuf[2]*256+rxBuf[1]);
    TFTprint(5,12,Waarden,3,String(KmStand));

  uur=00 ; minuut=00 ; seconde=00 ;
  bitWrite(uur,4,bitRead(rxBuf[6],0));
  bitWrite(uur,3,bitRead(rxBuf[5],7));
  bitWrite(uur,2,bitRead(rxBuf[5],6));
  bitWrite(uur,1,bitRead(rxBuf[5],5));
  bitWrite(uur,0,bitRead(rxBuf[5],4));

  bitWrite(minuut,5,bitRead(rxBuf[6],6));
  bitWrite(minuut,4,bitRead(rxBuf[6],5));
  bitWrite(minuut,3,bitRead(rxBuf[6],4));
  bitWrite(minuut,2,bitRead(rxBuf[6],3));
  bitWrite(minuut,1,bitRead(rxBuf[6],2));
  bitWrite(minuut,0,bitRead(rxBuf[6],1));

//  bitWrite(seconde,5,bitRead(rxBuf[7],4));
//  bitWrite(seconde,4,bitRead(rxBuf[7],3));
//  bitWrite(seconde,3,bitRead(rxBuf[7],2));
//  bitWrite(seconde,2,bitRead(rxBuf[7],1));
//  bitWrite(seconde,1,bitRead(rxBuf[7],0));
//  bitWrite(seconde,0,bitRead(rxBuf[6],7));

 TFTprint(216,12,Achtergrond,3,tijd);
 tijd = String(uur) + ":" + String(minuut)   ;
 TFTprint(216,12,Waarden,3,tijd);
}

if ( rxId == 0x531  )
  {
    TFTprint(6,430,Achtergrond,4,Melding);
    TFTprint(196,430,Achtergrond,6,KnipperLicht);

    if ( ( rxBuf[1] == 0x11 ) or ( rxBuf[1] == 0x51 ) )
    {
     KnipperLicht = "<";
     TFTprint(196,430,YELLOW,6,KnipperLicht);
    }

    if (( rxBuf[1] == 0x12 ) or ( rxBuf[1] == 0x52 ) )
    {
     KnipperLicht = ">"; 
     TFTprint(196,430,YELLOW,6,KnipperLicht);
    }
   
     
    if ( rxBuf[0] == 0x0 )
    {
     Melding = "L";
     TFTprint(6,430,RED,4,Melding);
    }

    if ( rxBuf[0] == 0xc3 )
    {
     Melding = "L";
     TFTprint(6,430,GREEN,4,Melding);
    }
  } 
   
  
}



void logserieel()
{
  Serial.println("");
  Serial.print(rxId,HEX);
  Serial.print(",");
      for(int i = 0; i<len; i++)                // Print each byte of the data
      {
        if(rxBuf[i] < 0x10)                     // If data byte is less than 0x10, add a leading zero
        {
          Serial.print("0"); 
        }
       Serial.print(rxBuf[i],HEX);
       Serial.print(",");
      }
}

void logscherm()
{
//     TFTprint(0,265,Achtergrond,2,HexString);
//     HexString = String(rxBuf[0], HEX) + " "+String(rxBuf[1], HEX) + " "+String(rxBuf[2], HEX) + " "+String(rxBuf[3], HEX) + " "+String(rxBuf[4], HEX) + " " + String(rxBuf[5], HEX) + " " + String(rxBuf[6], HEX) + " " + String(rxBuf[7], HEX) ;
//     TFTprint(0,265,Waarden,2,HexString);
}

void loop()
{

if ( analogRead(A5) == 0 ) 
  {
    Scherm++ ;
    delay(500);
    analogWrite(A5,1023);
     tft.fillRect(0,0,320,480,Achtergrond);
    if ( Scherm == 3 ){Scherm = 1;}
    if (Scherm == 1 ) { scherm1Opbouw(); }
    if (Scherm == 2 ) { scherm2Opbouw(); }
  }

if (Scherm == 1 ) { scherm1Waarden() ; }
if (Scherm == 2 ) { scherm2Waarden() ; }



}

Re: Full FIS maar dan net even anders

Geplaatst: 18 sep 2016, 22:31
door Nietsnut
Er is hier altijd interesse voor dit soort leuke dingen, we hebben zelfs een codebox om code netjes in te kunnen plaatsen om aan te duiden dat het code is. Zei ik al dat we een codebox hebben?

Zet maar eens een filmpje online wat je tft kan.

Re: Full FIS maar dan net even anders

Geplaatst: 19 sep 2016, 19:53
door muurman
Nietsnut schreef: Zet maar eens een filmpje online wat je tft kan.
U roept wij draaien :lol:
https://goo.gl/photos/zs9LM3BFGwnLr3RU6

Re: Full FIS maar dan net even anders

Geplaatst: 19 sep 2016, 19:58
door Nietsnut
Leuk om werkend te zien :)

Re: Full FIS maar dan net even anders

Geplaatst: 19 sep 2016, 20:16
door muurman
En natuurlijk hoeft het geen 3.5inch tft zijn.
kleiner kan , maar ook bv 16x2 display kan.
kwestie van software aanpassen

Re: Full FIS maar dan net even anders

Geplaatst: 19 sep 2016, 20:26
door Nietsnut
Werkt dit via je OBD-poort of heb je in de bedrading de K-lijn getapt? En kan dit ook voor andere auto's dan VW?

Re: Full FIS maar dan net even anders

Geplaatst: 19 sep 2016, 20:40
door muurman
Nietsnut schreef:Leuk om werkend te zien :)
ik gebruik nu canbus en pak deze nu nog achter de radio weg ( ik heb geluk op de infotainment canbus zit bij mij ook veel info )

Met de sparkfun obd2 uart waar ik mee begonnen ben kun je koppelen aan de obd2 poort en dit is dan niet auto specifiek.