Hilfe bei obd bordcomputer

Hallo. Habe bei meinem Bordcomputer folgendes Problem in der config.h
Viellciht kann mir jemand helfen.

Arduino: 1.8.3 (Windows 10), Board: "Arduino Nano, ATmega328"

In file included from C:\Users\Doffl\Desktop\nanotimer\nanotimer.ino:14:0:

config.h:25: error: 'LCD_SSD1306' does not name a type

LCD_SSD1306 lcd;

^

C:\Users\Doffl\Desktop\nanotimer\nanotimer.ino: In member function 'virtual void COBDLogger::dataIdleLoop()':

nanotimer:179: error: 'lcd' was not declared in this scope

lcd.setFontSize(FONT_SIZE_SMALL);

^

nanotimer:179: error: 'FONT_SIZE_SMALL' was not declared in this scope

lcd.setFontSize(FONT_SIZE_SMALL);

^

C:\Users\Doffl\Desktop\nanotimer\nanotimer.ino: In member function 'void COBDLogger::timerLoop()':

nanotimer:205: error: 'lcd' was not declared in this scope

lcd.setFontSize(FONT_SIZE_XLARGE);

^

nanotimer:205: error: 'FONT_SIZE_XLARGE' was not declared in this scope

lcd.setFontSize(FONT_SIZE_XLARGE);

^

nanotimer:244: error: 'FONT_SIZE_MEDIUM' was not declared in this scope

lcd.setFontSize(FONT_SIZE_MEDIUM);

^

nanotimer:254: error: 'FONT_SIZE_MEDIUM' was not declared in this scope

lcd.setFontSize(FONT_SIZE_MEDIUM);

^

nanotimer:268: error: 'FONT_SIZE_SMALL' was not declared in this scope

lcd.setFontSize(FONT_SIZE_SMALL);

^

nanotimer:294: error: 'FONT_SIZE_MEDIUM' was not declared in this scope

lcd.setFontSize(FONT_SIZE_MEDIUM);

^

C:\Users\Doffl\Desktop\nanotimer\nanotimer.ino: In member function 'void COBDLogger::reconnect()':

nanotimer:307: error: 'lcd' was not declared in this scope

lcd.clear();

^

nanotimer:308: error: 'FONT_SIZE_MEDIUM' was not declared in this scope

lcd.setFontSize(FONT_SIZE_MEDIUM);

^

C:\Users\Doffl\Desktop\nanotimer\nanotimer.ino: In member function 'void COBDLogger::showStates()':

nanotimer:326: error: 'lcd' was not declared in this scope

lcd.setFontSize(FONT_SIZE_SMALL);

^

nanotimer:326: error: 'FONT_SIZE_SMALL' was not declared in this scope

lcd.setFontSize(FONT_SIZE_SMALL);

^

C:\Users\Doffl\Desktop\nanotimer\nanotimer.ino: In member function 'void COBDLogger::showTimerResults()':

nanotimer:336: error: 'lcd' was not declared in this scope

lcd.setFontSize(FONT_SIZE_SMALL);

^

nanotimer:336: error: 'FONT_SIZE_SMALL' was not declared in this scope

lcd.setFontSize(FONT_SIZE_SMALL);

^

nanotimer:345: error: 'FONT_SIZE_MEDIUM' was not declared in this scope

lcd.setFontSize(FONT_SIZE_MEDIUM);

^

C:\Users\Doffl\Desktop\nanotimer\nanotimer.ino: In member function 'void COBDLogger::initTimerScreen()':

nanotimer:374: error: 'lcd' was not declared in this scope

lcd.clear();

^

nanotimer:376: error: 'FONT_SIZE_SMALL' was not declared in this scope

lcd.setFontSize(FONT_SIZE_SMALL);

^

C:\Users\Doffl\Desktop\nanotimer\nanotimer.ino: In function 'void setup()':

nanotimer:390: error: 'lcd' was not declared in this scope

lcd.begin();

^

nanotimer:391: error: 'FONT_SIZE_MEDIUM' was not declared in this scope

lcd.setFontSize(FONT_SIZE_MEDIUM);

^

exit status 1
'LCD_SSD1306' does not name a type

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

Hallo,
noch- hast Du NUR- Probleme mit Deinem BordComputer.
Richtige Probleme können auftreten, wenn Du Deinen Code NICHT- in CodeTags(Editor </>) setzt.
Gruß und Spaß
Andreas

Es wäre auch sinnvoll, wenn Du uns Deinen Sketch mitteilst. Setze ihn bitte in Codetags (</> oben links im Editor)

Gruß Tommy

Das hier wäre die config.h dazu wo er mir den Fehler bringt.

Bei Choose LCD model here
**************************************/
LCD_SSD1306 lcd;
//LCD_SH1106 lcd;
//LCD_Null lcd;

Das LCD Modul LCD_SSD1306 lcd meckert er mir als Fehler an

//Config

#ifndef CONFIG_H_INCLUDED
#define CONFIG_H_INCLUDED

/**************************************
* Data logging/streaming out
**************************************/
#define ENABLE_DATA_OUT 0
#define ENABLE_DATA_LOG 0
#define USE_SOFTSERIAL 0
//this defines the format of log file
#define LOG_FORMAT FORMAT_CSV

/**************************************
* Choose SD pin here
**************************************/
#define SD_CS_PIN 10

/**************************************
* Choose LCD model here
**************************************/
LCD_SSD1306 lcd;     
//LCD_SH1106 lcd;
//LCD_Null lcd;

/**************************************
* Other options
**************************************/
//#define OBD_MIN_INTERVAL 50 /* ms */
//#define DEBUG Serial
#define DEBUG_BAUDRATE 9600

#endif // CONFIG_H_INCLUDED

hier der Hauptcode etwas gekürzt damit er gepostet werden kann

#include <Arduino.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SSD1306.h>
#include <OBD.h>
#include "config.h"
#if USE_SOFTSERIAL
#include <SoftwareSerial.h>
#endif
#include "datalogger.h"




.........


private:
    void dataIdleLoop()
    {
        if (state & STATE_SLEEPING) return;

        if (getState() == OBD_CONNECTED)
            return;

        // called while initializing
        char buf[10];
        unsigned int t = (millis() - startTime) / 1000;
        sprintf(buf, "%02u:%02u", t / 60, t % 60);
        lcd.setFontSize(FONT_SIZE_SMALL);
        lcd.setCursor(97, 7);
        lcd.print(buf);
    }
    void timerLoop()
    {
        uint32_t elapsed = millis() - startTime;
        uint16_t n;
#if !ENABLE_DATA_LOG
        uint32_t dataTime;
#endif
        int speed;
        if (!readPID(PID_SPEED, speed))
            return;

        dataTime = millis();
#if ENABLE_DATA_LOG
        logData(0x100 | PID_SPEED, speed);

        int rpm = 0;
        if (read(PID_RPM, rpm)) {
            dataTime = millis();
            logData(0x100 | PID_RPM, rpm);
        }
#endif

        lcd.setFontSize(FONT_SIZE_XLARGE);
        // estimate distance
        distance += (uint32_t)(speed + lastSpeed) * (dataTime - lastSpeedTime) / 2 / 3600;

        if (lastSpeed != speed) {
            lcd.setCursor(0, 4);
            lcd.printInt((unsigned int)speed % 1000, 3);
            lastSpeed = speed;
        }

        lastSpeedTime = dataTime;

        if (stage == STAGE_WAIT_START) {
            if (speed > 0) {
                stage = STAGE_MEASURING;
                startTime = lastSpeedTime;

#if ENABLE_DATA_LOG
                uint32_t t = dataTime;
                dataTime = lastSpeedTime;
                logData(0x100 | PID_SPEED, lastSpeed);
                dataTime = t;
                logData(0x100 | PID_SPEED, speed);
#endif

                lastSpeed = 0;
                distance = 0;

                memset(times, 0, sizeof(times));

                initTimerScreen();
            }
        } else if (stage == STAGE_MEASURING) {
            // display elapsed time (mm:ss:mm)
            n = elapsed / 1000;
            if (n < 100) {
                lcd.setCursor(0, 0);
                lcd.printInt(n, 2);
                n = (elapsed % 1000) / 100;
                lcd.setFontSize(FONT_SIZE_MEDIUM);
                lcd.setCursor(32, 1);
                lcd.write('.');
                lcd.write('0' + n);
            }
            if (times[2] == 0 && speed >= SPEED_THRESHOLD_3) {
                times[2] = elapsed / 100;
                stage = STAGE_IDLE;
                lcd.clear(0, 0, 128, 24);
                showTimerResults();
                lcd.setFontSize(FONT_SIZE_MEDIUM);
                lcd.setCursor(0, 0);
                lcd.print("DONE!");
            } else if (times[1] == 0 && speed >= SPEED_THRESHOLD_2) {
                times[1] = elapsed / 100;
                showTimerResults();
            } else if (times[0] == 0 && speed >= SPEED_THRESHOLD_1) {
                times[0] = elapsed / 100;
                showTimerResults();
            } else if (speed == 0) {
                // speed go back to 0
                stage = STAGE_IDLE;
            }
            if (distance > 0) {
                lcd.setFontSize(FONT_SIZE_SMALL);
                lcd.setCursor(62, 6);
                if (distance >= 400) {
                    lcd.printInt(400, 3);
                    if (!times[3]) {
                        times[3] = elapsed / 100;
                        showTimerResults();
                    }
                } else {
                    lcd.printInt(distance, 3);
                }
            }
#if ENABLE_DATA_LOG
            // log speed data
            logData(0x100 | PID_SPEED, speed);
            // log additional data
            int rpm;
            if (read(PID_RPM, rpm)) {
                dataTime = millis();
                logData(0x100 | PID_RPM, rpm);
            }
#endif
        } else {
            if (speed == 0) {
                stage = STAGE_WAIT_START;
                initTimerScreen();
                lcd.setFontSize(FONT_SIZE_MEDIUM);
                lcd.setCursor(0, 0);
                lcd.println(" GET");
                lcd.println("READY");
                delay(500);
            }
        }
    }
    void reconnect()
    {
#if ENABLE_DATA_LOG
        closeFile();
#endif
        lcd.clear();
        lcd.setFontSize(FONT_SIZE_MEDIUM);
        lcd.print("Reconnecting");
        startTime = millis();
        state &= ~STATE_OBD_READY;
        state |= STATE_SLEEPING;
        //digitalWrite(SD_CS_PIN, LOW);
        for (int i = 0; !init(); i++) {
            if (i == 10) lcd.clear();
        }
        state &= ~STATE_SLEEPING;
        fileIndex++;
        setup();
    }
    byte state;

    // screen layout related stuff
    void showStates()
    {
        lcd.setFontSize(FONT_SIZE_SMALL);
        lcd.setCursor(0, 3);
        if (state & STATE_OBD_READY) {
            lcd.println("OBD connected!   ");
        } else {
            lcd.println("Connecting OBD...");
        }
    }
    void showTimerResults()
    {
        lcd.setFontSize(FONT_SIZE_SMALL);
        lcd.setCursor(56, 0);
        lcd.print(" 0~60:  --");
        lcd.setCursor(56, 2);
        lcd.print("0~100:  --");
        lcd.setCursor(56, 4);
        lcd.print("0~200:  --");
        lcd.setCursor(56, 6);
        lcd.print(" 400m:  --");
        lcd.setFontSize(FONT_SIZE_MEDIUM);
        char buf[8];
        if (times[0]) {
            sprintf(buf, "%2d.%1d", times[0] / 10, times[0] % 10);
            Serial.println(times[0]);
            lcd.setCursor(92, 0);
            lcd.print(buf);
        }
        if (times[1]) {
            sprintf(buf, "%2d.%1d", times[1] / 10, times[1] % 10);
            Serial.println(buf);
            lcd.setCursor(92, 2);
            lcd.print(buf);
        }
        if (times[2]) {
            sprintf(buf, "%2d.%1d", times[2] / 10, times[2] % 10);
            Serial.println(buf);
            lcd.setCursor(92, 4);
            lcd.print(buf);
        }
        if (times[3]) {
            sprintf(buf, "%2d.%1d", times[3] / 10, times[3] % 10);
            Serial.println(buf);
            lcd.setCursor(92, 6);
            lcd.print(buf);
        }
    }
    void initTimerScreen()
    {
        lcd.clear();
        showTimerResults();
        lcd.setFontSize(FONT_SIZE_SMALL);
        lcd.setCursor(24, 7);
        lcd.print("km/h");
    }
};

static COBDLogger logger;

void setup()
{
#ifdef DEBUG
    DEBUG.begin(DEBUG_BAUDRATE);
#endif

    lcd.begin();
    lcd.setFontSize(FONT_SIZE_MEDIUM);
    lcd.println("PerformanceBox");

    logger.begin();
#if ENABLE_DATA_LOG
    logger.initSender();
    logger.checkSD();
#endif
    logger.setup();
}

void loop()
{
    logger.loop();
}

in den Libraries sind auch die
SSD1306.cpp
und
SSD1306.h

Hast du denn auch das gemacht, was in der Fehlermeldung steht ?