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
Alles nur im seriellen Monitor, nicht LCD?
23.02.2016, 15:23 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2016 17:54 von Bitklopfer.)
Beitrag #1
Alles nur im seriellen Monitor, nicht LCD?
Hallo,
ich heiße Achim und stöbere seid 3 Monaten im Arduino rum. Die beiden Bücher habe ich mir durchgesehen und auch das Arduino Kochbuch gekauft. Die Sketche kann ich nachvollziehen, aber sowie 2 zusammengesetzt werden müssen, habe ich keinen Erfolg. Zum Beispiel: Einen Analogwert einlesen und dann auf einem Lcd Monitor schreiben. Der Wert erscheint auf dem Seriellen Monitor, jedoch nicht auf dem Lcd. Auf dem Lcd kann ich schreiben, Zeilen wechseln, Blöcke schreiben usw. aber keine "dritten Daten" von externen Komponenten darstellen.
Wenn ich also wie hier, einen Software Seriellen Port für das LCD einrichte, bringt es nicht:
(Der letzte Absatz soll das schreiben bewirken, vorher ist nur die -One Wire- Sache)

Code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#include <OneWire.h>

// OneWire DS18S20, DS18B20, DS1822 Temperature Example
//
// http://www.pjrc.com/teensy/td_libs_OneWire.html
//
// The DallasTemperature library can do all this work for you!
// http://milesburton.com/Dallas_Temperature_Control_Library

OneWire  ds(6);  // on pin 10 (a 4.7K resistor is necessary)

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

   // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // initialize the serial communications:
  Serial.begin(9600);
}

void loop(void) {
  byte i;
  byte present = 0;
  byte type_s;
  byte data[12];
  byte addr[8];
  float celsius, fahrenheit;
  
  if ( !ds.search(addr)) {
    Serial.println("No more addresses.");
    Serial.println();
    ds.reset_search();
    delay(250);
    return;
  }
  
  Serial.print("ROM =");
  for( i = 0; i < 8; i++) {
    Serial.write(' ');
    Serial.print(addr[i], HEX);
  }

  if (OneWire::crc8(addr, 7) != addr[7]) {
      Serial.println("CRC is not valid!");
      return;
  }
  Serial.println();

  // the first ROM byte indicates which chip
  switch (addr[0]) {
    case 0x10:
      Serial.println("  Chip = DS18S20");  // or old DS1820
      type_s = 1;
      break;
    case 0x28:
      Serial.println("  Chip = DS18B20");
      type_s = 0;
      break;
    case 0x22:
      Serial.println("  Chip = DS1822");
      type_s = 0;
      break;
    default:
      Serial.println("Device is not a DS18x20 family device.");
      return;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44, 1);        // start conversion, with parasite power on at the end
  
  delay(1000);     // maybe 750ms is enough, maybe not
  // we might do a ds.depower() here, but the reset will take care of it.
  
  present = ds.reset();
  ds.select(addr);    
  ds.write(0xBE);         // Read Scratchpad

  Serial.print("  Data = ");
  Serial.print(present, HEX);
  Serial.print(" ");
  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();
    Serial.print(data[i], HEX);
    Serial.print(" ");
  }
  Serial.print(" CRC=");
  Serial.print(OneWire::crc8(data, 8), HEX);
  Serial.println();

  // Convert the data to actual temperature
  // because the result is a 16 bit signed integer, it should
  // be stored to an "int16_t" type, which is always 16 bits
  // even when compiled on a 32 bit processor.
  int16_t raw = (data[1] << 8) | data[0];
  if (type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (data[7] == 0x10) {
      // "count remain" gives full 12 bit resolution
      raw = (raw & 0xFFF0) + 12 - data[6];
    }
  } else {
    byte cfg = (data[4] & 0x60);
    // at lower res, the low bits are undefined, so let's zero them
    if (cfg == 0x00) raw = raw & ~7;  // 9 bit resolution, 93.75 ms
    else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
    else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
    //// default is 12 bit resolution, 750 ms conversion time
  }
  celsius = (float)raw / 16.0;
  fahrenheit = celsius * 1.8 + 32.0;
  Serial.print("  Temperature = ");
  Serial.print(celsius);
  Serial.print(" Celsius, ");
  Serial.print(fahrenheit);
  Serial.println(" Fahrenheit");
{
  // when characters arrive over the serial port...
  if (Serial.available()) {
    // wait a bit for the entire message to arrive
    delay(100);
    // clear the screen
    lcd.clear();
    // read all the available characters
    while (Serial.available() > 0) {
      // display each character to the LCD
      lcd.write(Serial.read());
    }
  }
  }
}

Ein großer Fingerzeig wäre nett.[/color]

Ich kann kaum etwas lernen, vergesse das auch wieder. Aber wenn ich etwas immer wieder klar vor Augen habe, kann ich verdammt viel damit anfangen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 15:52 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2016 17:57 von Bitklopfer.)
Beitrag #2
RE: Alles nur im seriellen Monitor, nicht LCD?
Bitte erst mal den Sketch in Code-Tags sertzen. (Schaltfläche # verwenden).
Dann können wir den auch richtig lesen.

man man....bewirb dich als Mod und flick die Tags selber rein....Big Grin
anstatt immer zu mosern...Undecided
lgbk

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 16:09
Beitrag #3
RE: Alles nur im seriellen Monitor, nicht LCD?
Danke für den Hinweis,
leider weis ich nicht was Du damit meinst?

ich selektiere mal den Befehl, daß das LCD alles schreiben soll, was der serielle Monitor schreibt:

// when characters arrive over the serial port...
if (Serial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
lcd.clear();
// read all the available characters
while (Serial.available() > 0) {
// display each character to the LCD
lcd.write(Serial.read());

Wie gesagt, das sind die Beispielcodes vom Arduino.

Mein Problem ist noch allgemeiner.
Ich bekomme absolut nichts vondem was Sensoren liefern auf das LCD. Nur auf den Seriellen Monitor. Ich babe mich gedanklich festgerannt.
Danke für eine Mühe.
Achim

Ich kann kaum etwas lernen, vergesse das auch wieder. Aber wenn ich etwas immer wieder klar vor Augen habe, kann ich verdammt viel damit anfangen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 16:19
Beitrag #4
RE: Alles nur im seriellen Monitor, nicht LCD?
(23.02.2016 16:09)malsehen schrieb:  Danke für den Hinweis,
leider weis ich nicht was Du damit meinst?

Dann solltest du dich auch mal mit der richtigen Bedienung des Forums befassen.

Zitat:ich selektiere mal den Befehl, daß das LCD alles schreiben soll, was der serielle Monitor schreibt:

// when characters arrive over the serial port...
if (Serial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
lcd.clear();
// read all the available characters
while (Serial.available() > 0) {
// display each character to the LCD
lcd.write(Serial.read());

Wie gesagt, das sind die Beispielcodes vom Arduino.

Mein Problem ist noch allgemeiner.
Ich bekomme absolut nichts vondem was Sensoren liefern auf das LCD. Nur auf den Seriellen Monitor. Ich babe mich gedanklich festgerannt.
Danke für eine Mühe.
Achim

Kein Wunder, wenn du die Daten des " leeren" Bildschirm zeigen willst.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 17:06
Beitrag #5
RE: Alles nur im seriellen Monitor, nicht LCD?
Danke Dir,
Aber das ist vielleicht jenes, was ich nicht verstehe.

// when characters arrive over the serial port...

wenn Zeichen auf dem Seriellen Port erscheinen.

wait a bit for the entire message to arrive

warte bis alles da ist

// clear the screen

mach den Bildschirm leer

/ read all the available characters

lese alles

// display each character to the LCD

schreib alle Zeichen auf den Bildschirm.





Wie das Forum bedient wird, hatte ich mir während der Registrierung vor 2 1/2 Monaten durchgelesen und ich ärgere mich selber, dass ich mir sowenig merken kann.
In der Hoffnung deine Toleranzgrenze nicht zuweit überschritten zu haben.
Danke
Achim

Ps. Ich lese die Anleitung jetzt noch einmal.

Ich kann kaum etwas lernen, vergesse das auch wieder. Aber wenn ich etwas immer wieder klar vor Augen habe, kann ich verdammt viel damit anfangen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 17:21
Beitrag #6
RE: Alles nur im seriellen Monitor, nicht LCD?
Hier nochmal der Hinweis:

Sketch in das Forum einfügen mit der Schaltfläche "#" oder vor den Sketch [*code] setzen. Ohne den Stern*. Hinter den Sketch [*\code] setzen, auch ohne Stern.

Ich hoffe, dies war verständlich.

Warum überträgst du die Daten erst auf den Seriellen Monitor und willst diese danach auf das LDC schreiben. Das funktioniert nicht.
Schreibe es doch gleich auf das LCD:
Beispiel:
Code:
LCD.print(celsius);

Hinweis: Lies dir bitte die Basics durch. Ohne Grundlagen wirst du das alles nicht verstehen. Wir helfen immer gern, aber dann muss das auch verstanden werden.
Und wenn du einfach nur Code aus dem Netz kopierst, wirst du es nicht lernen. Also nimm es bitte als gut gemeinten Rat an.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 17:37
Beitrag #7
RE: Alles nur im seriellen Monitor, nicht LCD?
Danke hotsystems,

In der Hilfe steht das unter"Listeneinträge"

Ich wollte Dich auch nicht nerven. Und ja, ich habe mir das Franzis Buch runtergeladen und gelesen. Auch habe ich das Arduino Kochbuch vor der Nase. Mehrfach durchgelesen und viele Sketche probiert. Leider vergesse ich viel(ärgerlicher Unfall). Deshalb kann ich schlecht kombinieren.

Danke für deine Hilfe. ich versuche das gleich mal.
Außerdem werde ich nach Möglichkeit keinen Tread mehr eröffnen.
Diesesmal habe ich auch 2 Monate fast jeden Abend selbst versucht das Problem zu lösen.

Danke und nicht sauer sein.
Achim

Ich kann kaum etwas lernen, vergesse das auch wieder. Aber wenn ich etwas immer wieder klar vor Augen habe, kann ich verdammt viel damit anfangen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 17:54
Beitrag #8
RE: Alles nur im seriellen Monitor, nicht LCD?
(23.02.2016 17:37)malsehen schrieb:  Danke hotsystems,

In der Hilfe steht das unter"Listeneinträge"

Ich wollte Dich auch nicht nerven. Und ja, ich habe mir das Franzis Buch runtergeladen und gelesen. Auch habe ich das Arduino Kochbuch vor der Nase. Mehrfach durchgelesen und viele Sketche probiert. Leider vergesse ich viel(ärgerlicher Unfall). Deshalb kann ich schlecht kombinieren.

Danke für deine Hilfe. ich versuche das gleich mal.
Außerdem werde ich nach Möglichkeit keinen Tread mehr eröffnen.
Diesesmal habe ich auch 2 Monate fast jeden Abend selbst versucht das Problem zu lösen.

Also, das solltest du nicht so ernst nehmen.
Wenn du selbst an der Sache intensiv dran bist, ist da ok.
Aber lernen solltest du.

Und wir helfen dir, wenn es nicht mehr weiter geht.
Also mach gern mit "neuen" Fragen auch einen neuen Thread auf.

War das mit der LCD-Ausgabe jetzt klar?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino lässt sich nicht installieren bergfrei 4 146 20.11.2016 18:34
Letzter Beitrag: bergfrei
  Arduino Mega 2560 läuft nicht Wolfgang50 6 185 13.11.2016 10:50
Letzter Beitrag: Wolfgang50
  Ausgabe Serial Monitor zu viele Byt`s Hannes 0 97 12.11.2016 20:29
Letzter Beitrag: Hannes
  Ardublock übertragt nicht an IDE oder UNO R3 tobi83 5 342 16.10.2016 14:07
Letzter Beitrag: Pit
  Upload funktioniert nicht Levi 5 244 22.09.2016 20:19
Letzter Beitrag: hotsystems
  ESP8266 tuts nicht sowerum 7 393 19.09.2016 21:01
Letzter Beitrag: sowerum
  If-Bedingung funktioniert nicht bei Serial1.write Datatom 6 226 16.09.2016 20:36
Letzter Beitrag: Datatom
  SD Karte wird nicht erkannt... Maxi290997 2 207 16.08.2016 14:36
Letzter Beitrag: Maxi290997
  Arduino lässt sich nicht mehr beschreiben Maxi290997 15 980 07.08.2016 11:40
Letzter Beitrag: Maxi290997
  Serial Monitor ASCII 1 schreiben BennIY 11 580 01.08.2016 16:42
Letzter Beitrag: Mathias

Gehe zu:


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