Geschwindigkeitsmessanlage uno

Moritz2808:
Mein problem ist das wenn ich den sketch überprüfen will das jedes mal eine fehlermeldung erscheint

Diese Fehlermeldung können wir nicht sehen....warum postest du die nicht ?

Am obigen Sketch kann ich schon mal sehen, dass das erste "#include" zu viel ist und andere fehlen.
Z.B. "#include <LiquidCrystal.h>"

Zusätzlich solltest du mal über Groß und Kleinschreibung, sowie Punkte und Kommas nachdenken.

Poste doch bitte deine Fehlermeldungen hier ins Forum. Wir sind keine Hellseher.

Ich habe den Sketch an mein LCD angepaßt und an ein paar Stellen geändert. Der Compiler ist nun zufrieden und zu fubktionieren scheint es auch:

#include <Wire.h>
#include <hd44780.h> // include hd44780 library header file
#include <hd44780ioClass/hd44780_I2Cexp.h> // i/o expander/backpack class
hd44780_I2Cexp lcd; // auto detect backpack and pin mappings

#include "TimerOne.h"

int Sensor_A = A0;
int Sensor_B = A1;
int Sensor_1 = 900;
int Sensor_2 = 900;
int Zeitmesser = 0;
int Loeschen = 0;
int Start = 0;
int Stop = 0;
int Geschwindigkeit = 0;

void setup()
{
  lcd.begin(16, 2);
  lcd.setCursor(3, 0);
  lcd.print("Bereit f\xF5r");
  lcd.setCursor(2, 1);
  lcd.print("eine Messung");

  Timer1.initialize(50000);
  Timer1.attachInterrupt(Zeitkonstante);

  //Serial.begin(9600);
}

void Zeitkonstante()
{
  // Start der Zeit
  if ((Start == 1 || Start == 2) && Stop == 0)
  {
    Zeitmesser++;
  }

  // Zeit zum Löschen des Displays auf Grundstellung
  if (Loeschen > 0)
  {
    Loeschen++;
  }
  /*
  // Ausgabe der Sensorwerte
  Serial.print("Sensor_1: ");
  Serial.println(Sensor_1);
  Serial.print("Sensor_2: ");
  Serial.println(Sensor_2);
  Serial.println();
  */
}

void loop()
{
  Sensor_1 = analogRead(Sensor_A);
  Sensor_2 = analogRead(Sensor_B);

  // Messung wenn Zug aus Richtung 1 kommt
  if (Sensor_1 < 500 && Sensor_2 > 500 && Start == 0)
  {
    Start = 1;
    lcd.begin(16, 2);
    lcd.setCursor(4, 0);
    lcd.print("Messung");
    lcd.setCursor(3, 1);
    lcd.print("gestartet");
  }
  // Messung gestoppt
  if (Sensor_2 < 500 && Start == 1)
  {
    Stop = 1;
  }

  // Messung wenn Zug aus Richtung 2 kommt
  if (Sensor_2 < 500 && Sensor_1 > 500 && Start == 0)
  {
    Start = 2;
    lcd.begin(16, 2);
    lcd.setCursor(4, 0);
    lcd.print("Messung");
    lcd.setCursor(3, 1);
    lcd.print("gestartet");
  }
  // Messung gestoppt
  if (Sensor_1 < 500 && Start == 2)
  {
    Stop = 1;
  }

  // Ausgabe der Geschwindigkeit
  if (Stop == 1 && Loeschen == 0)
  {
    // v = s / t; s = Streckenlänge (in cm) / 100 * Maßstab * 3,6 * 20 (Auflösung des Interrupts)
    Geschwindigkeit = 3182 / Zeitmesser;
    Zeitmesser = 0;
    Loeschen = 1;
    lcd.begin(16, 2);
    lcd.setCursor(0, 0);
    lcd.print("Geschwindigkeit:");
    if (Geschwindigkeit < 100)
    {
      lcd.setCursor(4, 1);
      lcd.print(Geschwindigkeit);
      lcd.setCursor(7, 1);
      lcd.print("km/h");
    }
    else
    {
      lcd.setCursor(4, 1);
      lcd.print(Geschwindigkeit);
      lcd.setCursor(8, 1);
      lcd.print("km/h");
    }
  }

  // Displays löschen, Grundstellung
  if (Loeschen > 150)
  {
    Start = 0;
    Stop = 0;
    Zeitmesser = 0;
    Loeschen = 0;
    lcd.begin(16, 2);
    lcd.setCursor(3, 0);
    lcd.print("Bereit f\xF5r");
    lcd.setCursor(2, 1);
    lcd.print("eine Messung");
  }

  // Ausgabe wenn beide Sensoren auslösen = Gleis ist belegt
  if (Sensor_1 < 500 && Sensor_2 < 500 && Start == 0)
  {
    Start = 3;
    lcd.begin(16, 2);
    lcd.setCursor(0, 0);
    lcd.print("Gleis ist belegt");
  }

  // beide Sensoren wieder in Grundstellung = Gleis ist nicht mehr belegt
  if (Sensor_1 > 500 && Sensor_2 > 500 && Start == 3)
  {
    Start = 0;
    Zeitmesser = 0;
    lcd.begin(16, 2);
    lcd.setCursor(3, 0);
    lcd.print("Bereit f\xF5r");
    lcd.setCursor(2, 1);
    lcd.print("eine Messung");
  }

  // wenn nach dem Auslösen des ersten Sensors eine Zeit von 40 Sekunden überschritten wird: Grundstellung und Ausgabe "Messung ungültig"
  if (Zeitmesser > 800)
  {
    Zeitmesser = 0;
    Loeschen = 1;
    lcd.begin(16, 2);
    lcd.setCursor(3, 0);
    lcd.print("Ung\xF5ltige");
    lcd.setCursor(4, 1);
    lcd.print("Messung");
  }
}

Richtig glücklich macht mich dieser Sketch allerdings nicht, da wäre noch Luft nach oben :slight_smile:

agmue:
Richtig glücklich macht mich dieser Sketch allerdings nicht, da wäre noch Luft nach oben :slight_smile:

Der komplette Thread macht mich nicht glücklich.
Wieder einmal werden unsere Antworten komplett ignoriert.

Aber schön, dass du dir die Mühe gemacht hast, im den Sketch fertig zu schreiben.
Hoffen wir, er versteht es.

HotSystems:
Der komplette Thread macht mich nicht glücklich.

Mich auch nicht.

HotSystems:
Wieder einmal werden unsere Antworten komplett ignoriert.

Oder aber, wir sind zu schnell :slight_smile:

HotSystems:
Aber schön, dass du dir die Mühe gemacht hast, im den Sketch fertig zu schreiben.

War aus meiner Sicht Kleinkram :wink:

HotSystems:
Hoffen wir, er versteht es.

Ja oder ein stiller Mitleser :slight_smile:

Schonmal Entschuldigung das ich mich nichtmehr gemeldet habe habe deinen neuen Code probiert mir wird dennoch ein fehler angezeigt:

Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"

C:\Users\moppe\Documents\Arduino\1_a\1_a.ino:2:60: fatal error: hd44780.h: No such file or directory

#include <hd44780.h> // include hd44780 library header file

^

compilation terminated.

exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Uno.

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

und danke für eure mühe

Moritz2808:
.....habe deinen neuen Code probiert mir wird dennoch ein fehler angezeigt:

Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"

C:\Users\moppe\Documents\Arduino\1_a\1_a.ino:2:60: fatal error: hd44780.h: No such file or directory

#include <hd44780.h> // include hd44780 library header file

Du musst die Library auch installieren.

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

Und wenn du das machen würdest, was da steht, wüsstest du was falsch ist.

Manchmal sieht man auch den wald vor lauter bäumen nicht

Moritz2808:
Manchmal sieht man auch den wald vor lauter bäumen nicht

Wenn es dann funktioniert, ist es ja ok.

Und eine Rückmeldung lesen wir immer gern.

ich hätte mich wirklich mehr darüber informieren sollen was für ein projekt ich mir aussuche. Da ich mich viel zu wenig damit auskenne ich hoffe mir kann jemand sagen was ich bei diesem error machen soll

Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"

sketch_jan29g:6: error: stray '\240' in program

^

sketch_jan29g:8: error: stray '\240' in program

^

sketch_jan29g:18: error: stray '\240' in program

^

sketch_jan29g:30: error: stray '\240' in program

^

sketch_jan29g:33: error: stray '\240' in program

^

sketch_jan29g:36: error: stray '\240' in program

^

sketch_jan29g:44: error: stray '\240' in program

^

sketch_jan29g:58: error: stray '\240' in program

^

sketch_jan29g:63: error: stray '\240' in program

^

sketch_jan29g:79: error: stray '\240' in program

^

sketch_jan29g:95: error: stray '\240' in program

^

sketch_jan29g:121: error: stray '\240' in program

^

sketch_jan29g:139: error: stray '\240' in program

^

sketch_jan29g:148: error: stray '\240' in program

^

sketch_jan29g:164: error: stray '\240' in program

^

exit status 1
stray '\240' in program

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

Da hast Du Dir beim C&P ein blödes Zeichen in Deinen Code geholt.
Schau Dir mal die angegebenen Zeilen genau an, evtl. auch mal die Zeichenkodierung ändern (Externer Editor z.B. Notepad++) um sie zu sehen.

Das hatte ich auch mal in einem aus dem Browser kopierten Quelltext. Das war ein in UTF-8 nicht sichtbares Zeichen zwischn 2 Klammern. In ANSI konnte ich es sehen.

Gruß Tommy

Kann man diese einfach löschen ?

Da zeigt sich mal wieder, man sollte auch verstehen, was man kopiert und nicht einfach nur copy&paste durchführen.

Moritz2808:
Kann man diese einfach löschen ?

Wenn Du die Zeichen findest, ja. Aber nicht die ganze Zeile löschen :wink:
Gruuß Tommy

HotSystems:
Da zeigt sich mal wieder, man sollte auch verstehen, was man kopiert und nicht einfach nur copy&paste durchführen.

Die Dinger siehst Du nicht. Wie gesaht: Bei mir waren das Zeichen zwischen 2 schließenden Klammern, die auf dem Bildschirm hintereinander ohne Zwischenraum waren.
Erst das Spielen mit der Codierung der Datei brachte sie ans Licht.
An dieser Stelle ist nichts mit verstehen. Ansonsten gebe ich Dir Recht.
Gruß Tommy

Tommy56:
Die Dinger siehst Du nicht. Wie gesaht: Bei mir waren das Zeichen zwischen 2 schließenden Klammern, die auf dem Bildschirm hintereinander ohne Zwischenraum waren.
Erst das Spielen mit der Codierung der Datei brachte sie ans Licht.
An dieser Stelle ist nichts mit verstehen. Ansonsten gebe ich Dir Recht.
Gruß Tommy

Ok...das habe ich so allerdings noch nicht erlebt.
Dann sollte es doch funktionieren, den Text über einen einfachen Text-Editor zu kopieren, da sollten doch sämtliche Steuerzeichen weg sein.

und ich muss euch bei allem recht geben hätte mich wirklich früher mit dem Thema beschäftigen sollen kann es nun aber leider nicht mehr ändern. Bin auch sehr dankbar das ihr so geduldig mit mir seit. Hab die Nichtsichtbaren Zeichen entfernt doch es erscheint die nächste Fehlermeldung:
Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"

C:\Users\moppe\Documents\Arduino\jetzt\jetzt.ino: In function 'void loop()':

jetzt:177: error: expected ';' at end of input

'}'

^

jetzt:177: error: expected '}' at end of input

jetzt:177: error: expected '}' at end of input

jetzt:177: error: expected '}' at end of input

exit status 1
expected ';' at end of input

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

Da hast Du zuviel gelöscht.
Wenn Du ordentlich einrückst, merkst Du die fehlenden Klammern und findest das fehlende ;

Gruß Tommy

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

Und hier steht, was du unbedingt machen solltest.