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
Wechsel vom 16x2 auf 5110 Display?
01.10.2014, 17:03
Beitrag #1
Wechsel vom 16x2 auf 5110 Display?
Hallo liebe Gemeinde der Bastler und Tüftler.
Ich habe eine Projekt im Internet gefunden welches ich gerne nachbauen würde.
Allerdings ist dieses Projekt mit 16x2 LCD Displays.
Ich würde gerne das Projekt mit 5110 Displays realiesieren.

Ist das so "einfach" möglich?

Was kann passieren wenn ich das mit dem 5110 einfach mal baue?


lg Mr.Q

[Bild: FE5NLZMHN8245EM.LARGE.jpg]

Code:
#include <Keypad.h>
#include <LiquidCrystal.h>
#include <Tone.h>
#define pound 14

Tone tone1;

int Scount = 12; // count seconds
int Mcount = 10; // count minutes
int Hcount = 0; // count hours
int DefuseTimer = 0; // set timer to 0

long secMillis = 0; // store last time for second add
long interval = 1000; // interval for seconds

char password[4]; // number of characters in our password
int currentLength = 0; //defines which number we are currently writing
int i = 0;
char entered[4];

int ledPin = 4; //red led
int ledPin2 = 3; //yellow led
int ledPin3 = 2; //green led

LiquidCrystal lcd(7,8,10,11,12,13); // the pins we use on the LCD

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {5, A5, A4, A2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {A1, A0, A3}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );


void setup(){
  pinMode(ledPin, OUTPUT); // sets the digital pin as output
  pinMode(ledPin2, OUTPUT); // sets the digital pin as output
  pinMode(ledPin3, OUTPUT); // sets the digital pin as output
  tone1.begin(9);
  lcd.begin(16, 2);
  Serial.begin(9600);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Enter Code: ");
  while (currentLength < 4)
  {
    lcd.setCursor(currentLength + 6, 1);
    lcd.cursor();
    char key = keypad.getKey();
    key == NO_KEY;
    if (key != NO_KEY)
    {
      if ((key != '*')&&(key != '#'))
      {
      lcd.print(key);
      password[currentLength] = key;
      currentLength++;
      tone1.play(NOTE_C6, 200);
      }
    }
  }

  if (currentLength == 4)
  {
    delay(500);
    lcd.noCursor();
    lcd.clear();
    lcd.home();
    lcd.print("You've Entered: ");
    lcd.setCursor(6,1);
    lcd.print(password[0]);
    lcd.print(password[1]);
    lcd.print(password[2]);
    lcd.print(password[3]);

    tone1.play(NOTE_E6, 200);
    delay(3000);
    lcd.clear();
    currentLength = 0;
  }
}

void loop()
{
  timer();
  char key2 = keypad.getKey(); // get the key
  
  if (key2 == '*')
    {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Code: ");
      
      while (currentLength < 4)
        {
          
          timer();
          
          char key2 = keypad.getKey();
          if (key2 == '#')
            {
              currentLength = 0;
              lcd.clear();
              lcd.setCursor(0,0);
              lcd.print("Code: ");
            }
          else                  
          if (key2 != NO_KEY)    
            {
              
              lcd.setCursor(currentLength + 7, 0);
              lcd.cursor();
              
              lcd.print(key2);
              entered[currentLength] = key2;
              currentLength++;
              tone1.play(NOTE_C6, 200);
              delay(100);
              lcd.noCursor();
              lcd.setCursor(currentLength + 6, 0);
              lcd.print("*");
              lcd.setCursor(currentLength + 7, 0);
              lcd.cursor();
            }
        }

      if (currentLength == 4)
        {
          if (entered[0] == password[0] && entered[1] == password[1] && entered[2] == password[2] && entered[3] == password[3])
            {
              lcd.noCursor();
              lcd.clear();
              lcd.home();
              lcd.print("Bomb Defused");
              currentLength = 0;
              digitalWrite(ledPin3, HIGH);
              delay(2500);
              lcd.setCursor(0,1);
              lcd.print("Reset the Bomb");
              delay(1000000);
            }
      else
        {
          lcd.noCursor();
          lcd.clear();
          lcd.home();
          lcd.print("Wrong Password!");
    
          if (Hcount > 0)
            {
              Hcount = Hcount - 1;
            }
    
          if (Mcount > 0)
            {
              Mcount = Mcount - 59;
            }
          if (Scount > 0)
            {
              Scount = Scount - 59;
            }
        delay(1500);
        currentLength = 0;
  
        }
      }  
    }
}

void timer()
{
  Serial.print(Scount);
  Serial.println();
  
  if (Hcount <= 0)
  {
    if ( Mcount < 0 )
    {
      lcd.noCursor();
      lcd.clear();
      lcd.home();
      lcd.print("The Bomb Has ");
      lcd.setCursor (0,1);
      lcd.print("Exploded!");
      
      while (Mcount < 0)
      {
        digitalWrite(ledPin, HIGH); // sets the LED on
        tone1.play(NOTE_A2, 90);
        delay(100);
        digitalWrite(ledPin, LOW); // sets the LED off
        tone1.play(NOTE_A2, 90);
        delay(100);
        digitalWrite(ledPin2, HIGH); // sets the LED on
        tone1.play(NOTE_A2, 90);
        delay(100);
        digitalWrite(ledPin2, LOW); // sets the LED off
        tone1.play(NOTE_A2, 90);
        delay(100);
        digitalWrite(ledPin3, HIGH); // sets the LED on
        tone1.play(NOTE_A2, 90);
        delay(100);
        digitalWrite(ledPin3, LOW); // sets the LED off
        tone1.play(NOTE_A2, 90);
        delay(100);
      }
    }
  }

  lcd.setCursor (0,1); // sets cursor to 2nd line
  lcd.print ("Timer:");

  if (Hcount >= 10)
    {
      lcd.setCursor (7,1);
      lcd.print (Hcount);
    }
  if (Hcount < 10)
    {
      lcd.setCursor (7,1);
      lcd.write ("0");
      lcd.setCursor (8,1);
      lcd.print (Hcount);
    }

  lcd.print (":");

  if (Mcount >= 10)
    {
      lcd.setCursor (10,1);
      lcd.print (Mcount);
    }
  if (Mcount < 10)
    {
      lcd.setCursor (10,1);
      lcd.write ("0");
      lcd.setCursor (11,1);
      lcd.print (Mcount);
    }
    
  lcd.print (":");

  if (Scount >= 10)
    {
      lcd.setCursor (13,1);
      lcd.print (Scount);
    }
  if (Scount < 10)
    {
      lcd.setCursor (13,1);
      lcd.write ("0");
      lcd.setCursor (14,1);
      lcd.print (Scount);
    }

  if (Hcount <0)
    {
      Hcount = 0;
    }

  if (Mcount <0)
    {
      Hcount --;
      Mcount = 59;
    }

  if (Scount <1) // if 60 do this operation
    {
      Mcount --; // add 1 to Mcount
      Scount = 59; // reset Scount
    }

  if (Scount > 0) // do this oper. 59 times
    {
      unsigned long currentMillis = millis();
  
      if(currentMillis - secMillis > interval)
        {
          tone1.play(NOTE_G5, 200);
          secMillis = currentMillis;
          Scount --; // add 1 to Scount
          digitalWrite(ledPin2, HIGH); // sets the LED on
          delay(10); // waits for a second
          digitalWrite(ledPin2, LOW); // sets the LED off
          delay(10); // waits for a second
          //lcd.clear();
        }
    }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.10.2014, 00:27
Beitrag #2
RE: Wechsel vom 16x2 auf 5110 Display?
Hallo,
wenn Dein "5110" ein NokiaDisplay ist, kannst Du das völlig vergessen. Das wird anders angesteuert und
verdrahtet. Siehe mal hier:

http://blog.simtronyx.de/nokia-5110-lcd-...tfrequenz/

Wenn es kein Nokia Display ist, dann wäre eine genaue Typenbezeichnung nicht schlecht.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.10.2014, 05:36
Beitrag #3
RE: Wechsel vom 16x2 auf 5110 Display?
Hallo Andreas, vielen dank für deine Antwort.
Leider ist es das besagte Nokia Display.
Wenn ich jetzt die Verkabelung anpassen würde, muss ja "lediglich" der Code korregiert werden.

Ist das sehr Kompliziert bzw viel zu ändern?
Ich kenne mich leider noch nicht so gut mit Programmieren aus.
Ich habe bis jetzt nur nachgebaut.

lg Mr.Q
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.10.2014, 18:19
Beitrag #4
RE: Wechsel vom 16x2 auf 5110 Display?
Hallo,
in dem Link aus "Beitrag 2" hat er es doch zum laufen bekommen.
Den Sketch gibt es doch dazu, da kannst Du die "Änderungen" erkennen.
Für das Display müßte es eingentlich auch eine passende Lib geben.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.10.2014, 18:07
Beitrag #5
RE: Wechsel vom 16x2 auf 5110 Display?
Hallo Andreas, ich hab nur den Code für das 16x2 gefunden.
Aber nichts wo er das mit dem 5110 gemacht hat.

Könntest Du mir den Link schicken? Ich finde das irgendwie nicht.

lg Mr.Q
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.10.2014, 01:30
Beitrag #6
RE: Wechsel vom 16x2 auf 5110 Display?
Hallo,
der Link aus dem Beitrag funktioniert doch.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.10.2014, 20:58
Beitrag #7
RE: Wechsel vom 16x2 auf 5110 Display?
Hallo Andreas, da haben wir jetzt etwas an einander vorbei geredet.
Ich hatte angenommen das das Projekt schon mit einem 5110 Display statt des 16x2 LCD geben würde.
Und nicht wie Du mir geben eine Anleitung um das 5110 in Betrieb zu nehmen.

:-D

Mittlerweile habe ich mir ein 16x02 LCD bestellt und alles nach gebaut.
Funktioniert mit dem 16x02 sehr gut.

Hier kann auch geschlossen werden.

Vielen Dank!

lg Mr.Q
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2014, 11:27
Beitrag #8
RE: Wechsel vom 16x2 auf 5110 Display?
Hallo,
"Ich würde gerne das Projekt mit 5110 Displays realiesieren.!
"Was kann passieren wenn ich das mit dem 5110 einfach mal baue?"

Hier wolltest Du doch das Projekt mit einem 5110 realisieren!?
In dem Link wird doch genau erklärt, wie das Display angeschlossen- und in
Betrieb genommen wird.
Was Du darauf darstellst, das bleibt doch Dir überlassen. Das was Dein 2x16
anzeigt, zeigt auch das 5110 an.

In Deinem 2x16 Sketch brauchst Du doch nur das einfügen:

Code:
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

// D7 - Serial clock out (CLK oder SCLK)
// D6 - Serial data out (DIN)
// D5 - Data/Command select (DC oder D/C)
// D4 - LCD chip select (CE oder CS)
// D3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

dann in setup

Code:
/ Display initialisieren
  display.begin();

  // Kontrast setzen
  display.setContrast(60);
  display.clearDisplay();   // clears the screen and buffer

dann in loop - für 5110

Code:
display.setTextSize(1);
  set_text(11,0,"Hallo Welt!",BLACK);

in loop - für 2x16 bei Dir

Code:
lcd.print("Hallo Welt!");

Ich weiß nicht, was da das Problem ist.
Gruß und Spaß
Andreas

[/code]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  7 Zoll Display und NRF24 Propleme schlappy82 15 377 28.11.2016 17:10
Letzter Beitrag: hotsystems
  Grafiken auf OLED-Display darstellen scritch 8 464 17.11.2016 13:33
Letzter Beitrag: scritch
  Graphisches Barometer mit e-Paper Display Bender 9 2.368 06.11.2016 06:10
Letzter Beitrag: Bender
Rainbow Wetterstation mit LC-Display I2C --> Feuchte, Temp, Wind, Druck, Tau, Tendenz Wampo 25 36.022 24.10.2016 19:05
Letzter Beitrag: Wampo
Thumbs Up Facebook LCD (Like Crystal Display) mit Ethernet Shield Wampo 0 982 02.12.2015 23:05
Letzter Beitrag: Wampo
  E-Paper Display Xtremefly 7 2.948 22.07.2015 11:48
Letzter Beitrag: Xtremefly
  Display 5" Xwill 26 10.446 04.06.2015 08:39
Letzter Beitrag: DaniDD
  Lcd Display clemens5555 17 5.844 23.06.2014 20:11
Letzter Beitrag: Sloompie

Gehe zu:


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