INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Display zeigt nichts mehr an. Code-Logik Fehler?
02.12.2014, 00:14
Beitrag #1
Question Display zeigt nichts mehr an. Code-Logik Fehler?
Hallo und Guten Tag,
ich habe mit meinem Code ein problem und ich finde den Fehler einfach nicht, ich bin noch ein neuling in sachen Arduino.

Erstmal das Setting:
Arduino UNO
DfRobot Shield
Temperatur Sensor LM35

Erst hatte ich den Code beispiel von einer seite genommen der wie folgt aus gesehen hat:

Code:
int LM35 = A1;
float SensorValue = 0;
float temperatur = 0;
float temp[5];

void setup() {
Serial.begin(9600);
}

void loop() {
SensorValue = analogRead(LM35);
temp[1] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000); // 1 Sekunde Pause zwischen den Messungen machen
temp[2] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000);
temp[3] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000);
temp[4] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000);
temp[5] = (5.0 * analogRead(LM35) * 100.0) / 1024;

temperatur = (temp[1] + temp[2] + temp[3] + temp[4] + temp[5])/5; //Mittelwert aus 5 Messungen bilden

Serial.print(temperatur, 1); //Ausgabe der Temperatur mit einer Nachkommastelle
Serial.println("Grad Celsius");
}

Das ging prima, nun hab ich das LCD Shield bekommen und fing sofort an mich daran zu versuchen, nur jedes mal wenn ich mein Code einfüge zeigte das Display nichts mehr an.

Ich habe es als Funktionsaufruf versucht und auch ohne, es spielte keine rolle.
Schmeiß ich jedoch den Code wieder raus funktioniert es, nur halt ohne Temperatur.

Meine Vermutung ist das es irgendwie ein "Logik?" fehler ist, nur ich habe keine ahnung "wo/was" da ich noch neu auf dem Arduino gebiet bin.
Der Compiler läuft normal durch.

Ich gucke schon seit Stunden keine ahnung evt. könntet ihr mir da weiterhelfen?

Hier der Endgültige Code, habe die stellen makiert mit "Hier" die wenn ich sie Auskommentiere das Display wieder geht, makiert.

Grüße,
Remos
Code:
int LM35 = A1;
float SensorValue = 0;
float temperatur = 0;
float temp[5];

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);        // select the pins used on the LCD panel
  

void setup(){
    lcd.begin(16, 2);                       // start the library
}


int GetTemp(){  
  SensorValue = analogRead(LM35);
temp[1] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000); // 1 Sekunde Pause zwischen den Messungen machen
temp[2] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000);
temp[3] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000);
temp[4] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000);
temp[5] = (5.0 * analogRead(LM35) * 100.0) / 1024;

temperatur = (temp[1] + temp[2] + temp[3] + temp[4] + temp[5])/5; //Mittelwert aus 5 Messungen bilden
}

void loop(){
    
GetTemp(); // <-- Hier

             lcd.setCursor(0, 0);                   // set the LCD cursor   position
             lcd.print("T: ");              
             lcd.print(temperatur);             // <-- Hier
             lcd.print("C");              
     //}
    delay(500);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2014, 10:00 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2014 10:00 von Thorsten Pferdekämper.)
Beitrag #2
RE: Display zeigt nichts mehr an. Code-Logik Fehler?
Hi,
wenn Du ein Array der Länge 5 definierst (float temp[5]), dann geht der Index von 0 bis 4. (Das ist C++, nicht ABAP.) Wenn Du in temp[5] was reinschreibst, dann überschreibt das irgendeinen Speicherbereich hinter dem Array. Was dann passiert ist oft nicht wirklich vorherzusagen. Es kann gut gehen, kann aber auch praktisch beliebige Fehler erzeugen.
Der Fehler liegt also schon im kopierten Coding.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2014, 15:27 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2014 15:27 von Remos.)
Beitrag #3
RE: Display zeigt nichts mehr an. Code-Logik Fehler?
Hi Thorsen,
ja genau daran hats gelegen ich habe die Funktion GetTemp angepasst und habe von 0-4 rechnen lassen statt von 1-5 jetzt gehts, wenn auch das display noch nicht korrekt arbeitet(kleiner denkfehler) aber das werde ich selber raus bekommen Smile

Vielen Dank,
Dennis B.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Fehler in meinem Programm Franz54 7 163 01.12.2016 23:58
Letzter Beitrag: hotsystems
  matrix display elegoo uno R3 starter set lecker16 7 158 23.11.2016 21:14
Letzter Beitrag: Bitklopfer
  Einfacher Tacho für niedrige Geschwindigkeiten – Code optimieren Bastelo 2 261 12.10.2016 20:31
Letzter Beitrag: Bastelo
  Code mit Verifikation über Keypad & LCD machnetz 5 215 10.10.2016 15:01
Letzter Beitrag: torsten_156
  Fehler im Programmablauf binderj1 14 358 10.10.2016 10:29
Letzter Beitrag: StephanBuerger
  Fehler beim Kompilieren binderj1 5 296 03.10.2016 21:27
Letzter Beitrag: hotsystems
Smile Simpler Fehler bei MAP? malsehen 8 229 02.10.2016 19:46
Letzter Beitrag: malsehen
  Fehler beim Speichern von Projekten Manni66 16 691 23.08.2016 10:05
Letzter Beitrag: hotsystems
  Arduino lässt sich nicht mehr beschreiben Maxi290997 15 985 07.08.2016 11:40
Letzter Beitrag: Maxi290997
  LCD Display plötzlich komische Zeichen Jessi97 2 244 28.07.2016 11:34
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste