LCD-Display zeigt nichts an, I2C

Hallo Leute,
ich verwende folgenden Code in dem ich die RPS usw. auf ein LCD Display anzeigen lassen möchte. Leider verstehe ich nicht warum mir das Display nichts anzeigen will, obwohl der Code (denke ich) richtig ist. Der Hintergrund des LCD Displays leuchtet, zeigt aber, wie gesagt, nichts an.
Danke schonmal im Voraus, wer mir dabei weiterhelfen kann.

Code:
|
|
|

#include <Wire.h>
#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27, 16, 2);
int sensor = 11;
unsigned long start_time = 0;
unsigned long end_time = 0;
int steps = 0;
float steps_old = 0;
float temp = 0;
float rps = 0;

void setup()
{
  Serial.begin(9600);
  pinMode(sensor, INPUT_PULLUP);
  lcd.setCursor(0, 0);
  lcd.print(" STEPS - 0");
  lcd.setCursor(0, 1);
  lcd.print(" RPS   - 0.00");
}

void loop()
{
  start_time = millis();
  end_time = start_time + 1000;
  while (millis() < end_time)
  {
    if (digitalRead(sensor))
    {
      steps = steps + 1;
      while (digitalRead(sensor));
    }
    lcd.setCursor(9, 0);
    lcd.print(steps);
    lcd.print("   ");
  }
  temp = steps - steps_old;
  steps_old = steps;
  rps = (temp / 20);
  lcd.setCursor(9, 1);
  lcd.print(rps);
  lcd.print("   ");
}

Hallo DemirAhmetspahic

Programmiere Testpunkte mit Serial.println(Wert der mich interssiert) in den Sketch ein um zu sehen wat passiert.

Im Seriellen Monitor wird die RPS Zahl angegeben. Es liegt dennoch dasselbe Problem vor

Hier hat doch noch alle geklappt.

Was hast Du denn verändert?

ich habe überhaupt nichts verändert, nur zeigt das display nichts mehr an. ich habe auch das display gewechselt und das potentiometer auf volle stärke aufgedreht und es zeigt immer noch nichts an

Irgendein Kabel evtl defekt? Schlechter Kontakt im Breadboard?
Zeig doch mal ein Foto Deines Aufbaus.

Da Du in dem anderen Thread Dein funktionierendes Ergebnis nicht mitgeteilt hast, kann da auch keiner darauf eingehen.
In meinen Augen fehlt da immer noch ein init oder begin.

Gruß Tommy

geraten:
immer wenn er ein funktionierendes Beispiel hochladet hat er ein lcd init/begin.
ladet er seinen Sketch hoch gehts weil das LCD initialisiert ist.
Schaltet er mal Strom aus - fehlt das lcd init/begin.
Aber da er sich beharrlich weigert auf Rückfragen einzugehen ist es vermutlich auch verlorene Zeit uns raten zu lassen.

Wenn du 20 Meter Kabel zwischen dem Display und dem Arduino hättest, könnte ich dir das zur Not noch glauben. Denn dann kommt es schon mal vor, dass es geht oder nicht. Ansonsten gibt es nur eine Möglichkeit, wenn deine Aussage richtig ist. Dann hast du das Display oder die I2C Schnittstelle gekillt. Wenn nicht, hast du was verändert. Ich vermisse in deinem Setup-Code das hier:

lcd.begin();

Kann auch lcd.init(); heißen. Das ist abhängig von der verwendeten Lib.

Die "volle Stärke" ist nicht am Ende das Potis. Es gibt nur die Richtige Enstellung und die liegt zwischen den beiden Vollanschägen.

Zeigt nichts an, oder evtl. ein paar Kästchen ?
Zeig doch mal ein Foto vom Display, wenn es möglich ist.

Als erstes musst Du mal im setup() festlegen, das Du einen lcd verwendest.

Dazu gehört entweder eine Zeile

lcd.begin(); 

oder einer Zeile

lcd.init();

Eine von beiden ist richtig - die andere lässt Dich den Sketch nicht kompilieren.
Wenn es dann noch nicht geht:
Lade den folgenden Code auf Deinen Controller und kontrolliere, ob dei Adresse 0x27 stimmt.

// --------------------------------------
// i2c_scanner
//
// Version 1
//    This program (or code that looks like it)
//    can be found in many places.
//    For example on the Arduino.cc forum.
//    The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
//     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
//    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
//    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
//    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
//    http://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
//    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
// Version 6, November 27, 2015.
//    Added waiting for the Leonardo serial communication.
//
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//

#include <Wire.h>


void setup()
{
  Wire.begin();
  Serial.begin(9600);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("\nI2C Scanner");
}


void loop()
{
  byte error, address;
  int nDevices;
  Serial.println("Scanning...");
  nDevices = 0;
  for (address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    Serial.print(error);
    Serial.println(address);
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address < 16)
      { Serial.print("0"); }
      Serial.print(address, HEX);
      Serial.println("  !");
      nDevices++;
    }
    else if (error == 4)
    {
      Serial.print("Unknown error at address 0x");
      if (address < 16)
      { Serial.print("0"); }
      Serial.println(address, HEX);
    }
  }
  if (nDevices == 0)
  { Serial.println("No I2C devices found\n"); }
  else
  { Serial.println("done\n"); }
  delay(5000);           // wait 5 seconds for next scan
}

Wenn die Adresse stimmt, dann nimm Deinen Code in dieser veränderten Form:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
  Serial.begin(9600);
  // lcd.begin();  // eines von beiden stimmt
  lcd.init(); 
  lcd.setCursor(0, 0);
  lcd.print(" STEPS - 0");
  lcd.setCursor(0, 1);
  lcd.print(" RPS   - 0.00");
}

void loop()
{}

und spiel den auf.
Wenn Du nix zu sehen bekommst, drehe an dem kleinen Drehwiderstand - der ist für den Kontrast zuständig. Es könnte sein, das er einfach zuweit zugedreht ist.

Berichte.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.