Full FIS maar dan net even anders

Alle vragen en projecten m.b.t het interieur en je instrumenten stel je hier.

Moderators: atg, reichbus

Plaats reactie
muurman

Full FIS maar dan net even anders

Bericht 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
Laatst gewijzigd door muurman op 18 sep 2016, 13:59, 2 keer totaal gewijzigd.
muurman

Re: Full FIS maar dan net even anders

Bericht door muurman »

hmmm plaatje word niet getoond . Wat doe ik fout?
Gebruikersavatar
Johan
3L Vriendenteam
3L Vriendenteam
Berichten: 2647
Lid geworden op: 13 jan 2014, 10:41
Autotype: Overige autotypes
Locatie: Noord-Brabant

Re: Full FIS maar dan net even anders

Bericht door Johan »

Niet beter te weten heeft elke A2 een Canbus, dus ook de 3L
de Lupo niet.
Gebruikersavatar
Nietsnut
Vriendelijke beheerder
Vriendelijke beheerder
Berichten: 6138
Lid geworden op: 12 jan 2014, 16:35
Echte naam: Melvin
Autotype: VW Lupo 1.2TDI
Productiedatum: 10 jul 1999
Kilometerstand: 339.863km
Transmissie: Automaat
Kleur: Moonsilver - LR7X
Brandstof: Normale diesel
Locatie: Zwolle

Re: Full FIS maar dan net even anders

Bericht door Nietsnut »

muurman schreef:hmmm plaatje word niet getoond . Wat doe ik fout?
blijkbaar wil het plaatje op de tdi club niet gelinkt worden?
Huidig per 21-02-2022: Peugeot e208 GT Vertigo Blauw
Huidig per 09-02-2019: Kia e-Niro BEV https://3lvrienden.nl/viewtopic.php?f=32&t=4105
Ex: 2013 Passat 2.0 TDi DSG Variant http://3lvrienden.nl/viewtopic.php?f=32&t=3644
Ex: 1999 Lupo 3L 98-LZS-3 http://3lvrienden.nl/viewtopic.php?f=32&t=1014
Mijn YouTube kanaal.
muurman

Re: Full FIS maar dan net even anders

Bericht 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.
Gebruikersavatar
Nietsnut
Vriendelijke beheerder
Vriendelijke beheerder
Berichten: 6138
Lid geworden op: 12 jan 2014, 16:35
Echte naam: Melvin
Autotype: VW Lupo 1.2TDI
Productiedatum: 10 jul 1999
Kilometerstand: 339.863km
Transmissie: Automaat
Kleur: Moonsilver - LR7X
Brandstof: Normale diesel
Locatie: Zwolle

Re: Full FIS maar dan net even anders

Bericht door Nietsnut »

Ziet er leuk uit, heb je je project ook beschreven? Of moeten we het met deze toch wel summiere info doen?
Huidig per 21-02-2022: Peugeot e208 GT Vertigo Blauw
Huidig per 09-02-2019: Kia e-Niro BEV https://3lvrienden.nl/viewtopic.php?f=32&t=4105
Ex: 2013 Passat 2.0 TDi DSG Variant http://3lvrienden.nl/viewtopic.php?f=32&t=3644
Ex: 1999 Lupo 3L 98-LZS-3 http://3lvrienden.nl/viewtopic.php?f=32&t=1014
Mijn YouTube kanaal.
muurman

Re: Full FIS maar dan net even anders

Bericht 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.
muurman

Re: Full FIS maar dan net even anders

Bericht 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() ; }



}
Laatst gewijzigd door 3L-Emiel op 18 sep 2016, 22:33, 1 keer totaal gewijzigd.
Reden: (modedit) ik had niet zo veel geduld. :)
Gebruikersavatar
Nietsnut
Vriendelijke beheerder
Vriendelijke beheerder
Berichten: 6138
Lid geworden op: 12 jan 2014, 16:35
Echte naam: Melvin
Autotype: VW Lupo 1.2TDI
Productiedatum: 10 jul 1999
Kilometerstand: 339.863km
Transmissie: Automaat
Kleur: Moonsilver - LR7X
Brandstof: Normale diesel
Locatie: Zwolle

Re: Full FIS maar dan net even anders

Bericht 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.
Huidig per 21-02-2022: Peugeot e208 GT Vertigo Blauw
Huidig per 09-02-2019: Kia e-Niro BEV https://3lvrienden.nl/viewtopic.php?f=32&t=4105
Ex: 2013 Passat 2.0 TDi DSG Variant http://3lvrienden.nl/viewtopic.php?f=32&t=3644
Ex: 1999 Lupo 3L 98-LZS-3 http://3lvrienden.nl/viewtopic.php?f=32&t=1014
Mijn YouTube kanaal.
muurman

Re: Full FIS maar dan net even anders

Bericht door muurman »

Nietsnut schreef: Zet maar eens een filmpje online wat je tft kan.
U roept wij draaien :lol:
https://goo.gl/photos/zs9LM3BFGwnLr3RU6
Gebruikersavatar
Nietsnut
Vriendelijke beheerder
Vriendelijke beheerder
Berichten: 6138
Lid geworden op: 12 jan 2014, 16:35
Echte naam: Melvin
Autotype: VW Lupo 1.2TDI
Productiedatum: 10 jul 1999
Kilometerstand: 339.863km
Transmissie: Automaat
Kleur: Moonsilver - LR7X
Brandstof: Normale diesel
Locatie: Zwolle

Re: Full FIS maar dan net even anders

Bericht door Nietsnut »

Leuk om werkend te zien :)
Huidig per 21-02-2022: Peugeot e208 GT Vertigo Blauw
Huidig per 09-02-2019: Kia e-Niro BEV https://3lvrienden.nl/viewtopic.php?f=32&t=4105
Ex: 2013 Passat 2.0 TDi DSG Variant http://3lvrienden.nl/viewtopic.php?f=32&t=3644
Ex: 1999 Lupo 3L 98-LZS-3 http://3lvrienden.nl/viewtopic.php?f=32&t=1014
Mijn YouTube kanaal.
muurman

Re: Full FIS maar dan net even anders

Bericht door muurman »

En natuurlijk hoeft het geen 3.5inch tft zijn.
kleiner kan , maar ook bv 16x2 display kan.
kwestie van software aanpassen
Gebruikersavatar
Nietsnut
Vriendelijke beheerder
Vriendelijke beheerder
Berichten: 6138
Lid geworden op: 12 jan 2014, 16:35
Echte naam: Melvin
Autotype: VW Lupo 1.2TDI
Productiedatum: 10 jul 1999
Kilometerstand: 339.863km
Transmissie: Automaat
Kleur: Moonsilver - LR7X
Brandstof: Normale diesel
Locatie: Zwolle

Re: Full FIS maar dan net even anders

Bericht 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?
Huidig per 21-02-2022: Peugeot e208 GT Vertigo Blauw
Huidig per 09-02-2019: Kia e-Niro BEV https://3lvrienden.nl/viewtopic.php?f=32&t=4105
Ex: 2013 Passat 2.0 TDi DSG Variant http://3lvrienden.nl/viewtopic.php?f=32&t=3644
Ex: 1999 Lupo 3L 98-LZS-3 http://3lvrienden.nl/viewtopic.php?f=32&t=1014
Mijn YouTube kanaal.
muurman

Re: Full FIS maar dan net even anders

Bericht 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.
Plaats reactie

Terug naar “Interieur en Dashboard”