Nokia 5110 LCD fungerar inte med Arduino - Bug?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av Al_Bundy »

Hej igen!

Jag behöver hjälp med Nokia 5110 LCD. Jag får den inte att fungera. Jag tänker bara skriva ut text på skärmen.

Det jag har gjort är att följt denna manual. Mycket enkelt.
https://www.sparkfun.com/tutorials/300

Det här är min installation
Bild

Och jag har försökt köra denna kod.

Kod: Markera allt

#include "PCD8544.h"

//Define the pins you are connecting the LCD too. 
//PCD8544(SCLK, DIN/MOSI, D/C, SCE/CS, RST); 
PCD8544 nokia = PCD8544(3,4,5,7,6); 

void setup(void)
{
  nokia.init(); //Initialize lcd
  // set display to normal mode
  nokia.command(PCD8544_DISPLAYCONTROL | PCD8544_DISPLAYNORMAL);
  nokia.clear(); //Clear the display
}

void loop(void)
{
  // For all functions: 
  // x range is 0-84
  // y range is 0-48 
  // color is BLACK or WHITE 
  
  int pause=2000;
  // draw a single pixel
  // nokia.setPixel(x, y, color); 
  nokia.setPixel(30, 30, BLACK); 
  nokia.display(); 
  delay(pause);
  nokia.clear();
 
  // draw line
  // nokia.drawline(x1,y1,x2,y2,color); draws a line from (x1,x2) to (y1,y2)
  nokia.drawline(5,5,15,40,BLACK);
  nokia.display();
  delay(pause);
  nokia.clear();
  
  // draw rectangle
  // nokia.drawrect(x1,y1,x2,y2,color); 
  //draws a rectange with top left @ (x1,x2) and bottom right @ (y1,y2)
  nokia.drawrect(1,1,30,30,BLACK);
  nokia.display();
  delay(pause);
  nokia.clear();
  
  // draw filled rectangle
  nokia.fillrect(10,10,20,20,BLACK);
  nokia.display();
  delay(pause);
  nokia.clear();
  
  // draw circle
  // nokia.drawcircle(x,y,r,color);
  // x,y position with a radius of r
  nokia.drawcircle(30,20,5,BLACK);
  nokia.display();
  delay(pause);
  nokia.clear();
  
  // draw filled circle
  nokia.fillcircle(10,10,5,BLACK);
  nokia.display();
  delay(pause);
  nokia.clear();

} 
Och efter det så installerade jag biblioteket för denna LCD.
https://github.com/adafruit/Adafruit-PC ... CD-library

Jag har installerat Adafruit-PCD8544-Nokia-5110-LCD-library i:

Kod: Markera allt

/usr/share/arduino/libraries
Och efter jag startade om Arduino IDE så fungerade detta perfekt. IDE:n kände av.

Kod: Markera allt

(raring)acer@localhost:/usr/share/arduino/libraries$ ls
Adafruit_GFX              Esplora        OneWire         SPI
Adafruit_PCD8544          Ethernet       SD              Stepper
DallasTemperatureControl  Firmata        Servo           WiFi
EEPROM                    LiquidCrystal  SoftwareSerial  Wire
(raring)acer@localhost:/usr/share/arduino/libraries$ cd Adafruit_PCD8544
(raring)acer@localhost:/usr/share/arduino/libraries/Adafruit_PCD8544$ ls
Adafruit_PCD8544.cpp  Adafruit_PCD8544.h  examples  license.txt  README.txt
(raring)acer@localhost:/usr/share/arduino/libraries/Adafruit_PCD8544$ 
Men det fungerar inte för mig.


Om jag kör koden som finns ovan så får jag detta errormeddelade:
pcdtest.pde:1:21: fatal error: PCD8544.h: No such file or directory
compilation terminated.
Men om jag ändrar namnet på Adafruit_PCD8544.cpp til PCD8544.cpp och Adafruit_PCD8544.h till PCD8544.h och försöker att köra samma kod igen så får jag detta errormeddelande:

Kod: Markera allt

In file included from sketch_oct18a.ino:1:0:
/usr/share/arduino/libraries/Adafruit_PCD8544/PCD8544.h:52:46: error: expected class-name before ‘{’ token
sketch_oct18a.ino:5:1: error: ‘PCD8544’ does not name a type
sketch_oct18a.ino: In function ‘void setup()’:
sketch_oct18a.ino:9:3: error: ‘nokia’ was not declared in this scope
sketch_oct18a.ino: In function ‘void loop()’:
sketch_oct18a.ino:25:3: error: ‘nokia’ was not declared in this scope

Och om jag ändrar namnet på koden "#include "PCD8544.h" till "#include "Adafruit_PCD8544.h" och kör samma kod igen så får jag detta errormeddeladen:

Kod: Markera allt

sketch_oct18a.ino:1:30: fatal error: Adafruit_PCD8544.h: No such file or directory
compilation terminated.
Här är en bild på den LCD jag använder mig av.:
Bild

Det är inte den röda.

Jag har Arduino 1.0.3 men det ska fungera med detta bibliotek.

Om jag byter namn på Adafruit_PCD8544 to PCD8544 och Adafruit_PCD8544.h till PCD8544.h och Adafruit_PCD8544.cpp till PCD8544.cpp

Kod: Markera allt

(raring)acer@localhost:/usr/share/arduino/libraries$ ls
Adafruit_GFX              Ethernet       PCD8544         SPI
DallasTemperatureControl  Firmata        SD              Stepper
EEPROM                    LiquidCrystal  Servo           WiFi
Esplora                   OneWire        SoftwareSerial  Wire
(raring)acer@localhost:/usr/share/arduino/libraries$ cd PCD8544
(raring)acer@localhost:/usr/share/arduino/libraries/PCD8544$ ls
examples  license.txt  PCD8544.cpp  PCD8544.h  README.txt
(raring)acer@localhost:/usr/share/arduino/libraries/PCD8544$ 
Och kör koden så får jag detta meddeladen:

Kod: Markera allt

In file included from sketch_oct19a.ino:1:0:
/usr/share/arduino/libraries/PCD8544/PCD8544.h:52:46: error: expected class-name before ‘{’ token
sketch_oct19a.ino:5:1: error: ‘PCD8544’ does not name a type
sketch_oct19a.ino: In function ‘void setup()’:
sketch_oct19a.ino:9:3: error: ‘nokia’ was not declared in this scope
sketch_oct19a.ino: In function ‘void loop()’:
sketch_oct19a.ino:25:3: error: ‘nokia’ was not declared in this scope
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av sodjan »

Det är lite hoppblandning av "Adafruit_PCD8544" och "PCD8544" lite här och där.
Du får bestämma dig för ett namn och köra med det.

T.ex i den egen kod där du gör #include "PCD8544.h", om du byter
det mot #include "Adafruit_PCD8544.h", vad händer då?
Och alltså låter filerna som du har hämtat vara som de är.

Samma sak med PCD8544 nokia = PCD8544(3,4,5,7,6);. Om du jämför med .h filen så ska det nog
vara "Adafruit_" någonstans, kanske : vara PCD8544 nokia = Adafruit_PCD8544(3,4,5,7,6);
Jag är inte bra på c++ och klasser, så du får reda ut den delen...
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46949
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av TomasL »

Om du visar hur du kopplat in det, kanske det är lite enklare eftersom första bilden och bilden på LCD'n inte stämmer.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av Al_Bundy »

Hej TomasL!

Det spelar ingen roll tror jag hur jag har kopplat in den. Jag får ändå errormeddelande.
Jag har kopplat ur den men jag ska koppla tillbaka den igen.
sodjan skrev:Det är lite hoppblandning av "Adafruit_PCD8544" och "PCD8544" lite här och där.
Du får bestämma dig för ett namn och köra med det.

T.ex i den egen kod där du gör #include "PCD8544.h", om du byter
det mot #include "Adafruit_PCD8544.h", vad händer då?
Och alltså låter filerna som du har hämtat vara som de är.

Samma sak med PCD8544 nokia = PCD8544(3,4,5,7,6);. Om du jämför med .h filen så ska det nog
vara "Adafruit_" någonstans, kanske : vara PCD8544 nokia = Adafruit_PCD8544(3,4,5,7,6);
Jag är inte bra på c++ och klasser, så du får reda ut den delen...
Jo, jag hoppade lite hit och dit för att testa om allt fungerar.
Det ger samma errormeddelande. Men om jag kör med exempelkoden som är given i biblioteket så får jag bitmap-fel.
Jag ska ladda upp det också.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46949
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av TomasL »

Det spelar naturligtvis en jäkla roll hur du kopplar in den, kopplar du fel får du i bästa fall ett felmeddelande, i sämsta fall bränner du allt.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av Al_Bundy »

Nu kommer kopplingen.

Bild

RST - Röd kabel går till 5V
CE - Svart kabel går till GND
DC - Igenom 10kOhm vidare via orange kabel till digital pin 3
Din - Igenom 10kOhm vidare via grön kabel till digital pin 4
Clk - Igenom 10kOhm vidare via röd kabel till digital pin 5
Vcc - Igenom 10kOhm vidare via vit kabel till digital pin 6
BL - Igenom 10kOhm vidare via gul kabel till digital pin 7
GND - Inget

EDIT:
Nu ska jag ladda ner biblioteken:
https://github.com/adafruit/Adafruit-PC ... CD-library
https://github.com/adafruit/Adafruit-GFX-Library

Adafruit-GFX-Library är för att skriva ut cirklar och är mer en grafikdrivrutin.
Adafruit-PCD8544-Nokia-5110-LCD-library är för att kunna ansluta.

Jag döper om dom till Adafruit_PCD8544 och Adafruit_GFX och skickar dom till /usr/share/arduino/libraries

Nu när jag startar om Arduino IDE och väljer en exempelfil
Koden ser ut så här:

Kod: Markera allt

/*********************************************************************
This is an example sketch for our Monochrome Nokia 5110 LCD Displays

  Pick one up today in the adafruit shop!
  ------> http://www.adafruit.com/products/338

These displays use SPI to communicate, 4 or 5 pins are required to
interface

Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!

Written by Limor Fried/Ladyada  for Adafruit Industries.
BSD license, check license.txt for more information
All text above, and the splash screen must be included in any redistribution
*********************************************************************/

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

// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH  16

static unsigned char PROGMEM logo16_glcd_bmp[] =
{ B00000000, B11000000,
  B00000001, B11000000,
  B00000001, B11000000,
  B00000011, B11100000,
  B11110011, B11100000,
  B11111110, B11111000,
  B01111110, B11111111,
  B00110011, B10011111,
  B00011111, B11111100,
  B00001101, B01110000,
  B00011011, B10100000,
  B00111111, B11100000,
  B00111111, B11110000,
  B01111100, B11110000,
  B01110000, B01110000,
  B00000000, B00110000 };

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

  display.begin();
  // init done

  // you can change the contrast around to adapt the display
  // for the best viewing!
  display.setContrast(50);

  display.display(); // show splashscreen
  delay(2000);
  display.clearDisplay();   // clears the screen and buffer

  // draw a single pixel
  display.drawPixel(10, 10, BLACK);
  display.display();
  delay(2000);
  display.clearDisplay();

  // draw many lines
  testdrawline();
  display.display();
  delay(2000);
  display.clearDisplay();

  // draw rectangles
  testdrawrect();
  display.display();
  delay(2000);
  display.clearDisplay();

  // draw multiple rectangles
  testfillrect();
  display.display();
  delay(2000);
  display.clearDisplay();

  // draw mulitple circles
  testdrawcircle();
  display.display();
  delay(2000);
  display.clearDisplay();

  // draw a circle, 10 pixel radius
  display.fillCircle(display.width()/2, display.height()/2, 10, BLACK);
  display.display();
  delay(2000);
  display.clearDisplay();

  testdrawroundrect();
  delay(2000);
  display.clearDisplay();

  testfillroundrect();
  delay(2000);
  display.clearDisplay();

  testdrawtriangle();
  delay(2000);
  display.clearDisplay();
   
  testfilltriangle();
  delay(2000);
  display.clearDisplay();

  // draw the first ~12 characters in the font
  testdrawchar();
  display.display();
  delay(2000);
  display.clearDisplay();

  // text display tests
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0,0);
  display.println("Hello, world!");
  display.setTextColor(WHITE, BLACK); // 'inverted' text
  display.println(3.141592);
  display.setTextSize(2);
  display.setTextColor(BLACK);
  display.print("0x"); display.println(0xDEADBEEF, HEX);
  display.display();
  delay(2000);

  // miniature bitmap display
  display.clearDisplay();
  display.drawBitmap(30, 16,  logo16_glcd_bmp, 16, 16, 1);
  display.display();

  // invert the display
  display.invertDisplay(true);
  delay(1000); 
  display.invertDisplay(false);
  delay(1000); 

  // draw a bitmap icon and 'animate' movement
  testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH);
}


void loop() {
  
}


void testdrawbitmap(const uint8_t *bitmap, uint8_t w, uint8_t h) {
  uint8_t icons[NUMFLAKES][3];
  srandom(666);     // whatever seed
 
  // initialize
  for (uint8_t f=0; f< NUMFLAKES; f++) {
    icons[f][XPOS] = random() % display.width();
    icons[f][YPOS] = 0;
    icons[f][DELTAY] = random() % 5 + 1;
    
    Serial.print("x: ");
    Serial.print(icons[f][XPOS], DEC);
    Serial.print(" y: ");
    Serial.print(icons[f][YPOS], DEC);
    Serial.print(" dy: ");
    Serial.println(icons[f][DELTAY], DEC);
  }

  while (1) {
    // draw each icon
    for (uint8_t f=0; f< NUMFLAKES; f++) {
      display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, BLACK);
    }
    display.display();
    delay(200);
    
    // then erase it + move it
    for (uint8_t f=0; f< NUMFLAKES; f++) {
      display.drawBitmap(icons[f][XPOS], icons[f][YPOS],  logo16_glcd_bmp, w, h, WHITE);
      // move it
      icons[f][YPOS] += icons[f][DELTAY];
      // if its gone, reinit
      if (icons[f][YPOS] > display.height()) {
	icons[f][XPOS] = random() % display.width();
	icons[f][YPOS] = 0;
	icons[f][DELTAY] = random() % 5 + 1;
      }
    }
   }
}


void testdrawchar(void) {
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0,0);

  for (uint8_t i=0; i < 168; i++) {
    if (i == '\n') continue;
    display.write(i);
    //if ((i > 0) && (i % 14 == 0))
      //display.println();
  }    
  display.display();
}

void testdrawcircle(void) {
  for (int16_t i=0; i<display.height(); i+=2) {
    display.drawCircle(display.width()/2, display.height()/2, i, BLACK);
    display.display();
  }
}

void testfillrect(void) {
  uint8_t color = 1;
  for (int16_t i=0; i<display.height()/2; i+=3) {
    // alternate colors
    display.fillRect(i, i, display.width()-i*2, display.height()-i*2, color%2);
    display.display();
    color++;
  }
}

void testdrawtriangle(void) {
  for (int16_t i=0; i<min(display.width(),display.height())/2; i+=5) {
    display.drawTriangle(display.width()/2, display.height()/2-i,
                     display.width()/2-i, display.height()/2+i,
                     display.width()/2+i, display.height()/2+i, BLACK);
    display.display();
  }
}

void testfilltriangle(void) {
  uint8_t color = BLACK;
  for (int16_t i=min(display.width(),display.height())/2; i>0; i-=5) {
    display.fillTriangle(display.width()/2, display.height()/2-i,
                     display.width()/2-i, display.height()/2+i,
                     display.width()/2+i, display.height()/2+i, color);
    if (color == WHITE) color = BLACK;
    else color = WHITE;
    display.display();
  }
}

void testdrawroundrect(void) {
  for (int16_t i=0; i<display.height()/2-2; i+=2) {
    display.drawRoundRect(i, i, display.width()-2*i, display.height()-2*i, display.height()/4, BLACK);
    display.display();
  }
}

void testfillroundrect(void) {
  uint8_t color = BLACK;
  for (int16_t i=0; i<display.height()/2-2; i+=2) {
    display.fillRoundRect(i, i, display.width()-2*i, display.height()-2*i, display.height()/4, color);
    if (color == WHITE) color = BLACK;
    else color = WHITE;
    display.display();
  }
}
   
void testdrawrect(void) {
  for (int16_t i=0; i<display.height()/2; i+=2) {
    display.drawRect(i, i, display.width()-2*i, display.height()-2*i, BLACK);
    display.display();
  }
}

void testdrawline() {  
  for (int16_t i=0; i<display.width(); i+=4) {
    display.drawLine(0, 0, i, display.height()-1, BLACK);
    display.display();
  }
  for (int16_t i=0; i<display.height(); i+=4) {
    display.drawLine(0, 0, display.width()-1, i, BLACK);
    display.display();
  }
  delay(250);
  
  display.clearDisplay();
  for (int16_t i=0; i<display.width(); i+=4) {
    display.drawLine(0, display.height()-1, i, 0, BLACK);
    display.display();
  }
  for (int8_t i=display.height()-1; i>=0; i-=4) {
    display.drawLine(0, display.height()-1, display.width()-1, i, BLACK);
    display.display();
  }
  delay(250);
  
  display.clearDisplay();
  for (int16_t i=display.width()-1; i>=0; i-=4) {
    display.drawLine(display.width()-1, display.height()-1, i, 0, BLACK);
    display.display();
  }
  for (int16_t i=display.height()-1; i>=0; i-=4) {
    display.drawLine(display.width()-1, display.height()-1, 0, i, BLACK);
    display.display();
  }
  delay(250);

  display.clearDisplay();
  for (int16_t i=0; i<display.height(); i+=4) {
    display.drawLine(display.width()-1, 0, 0, i, BLACK);
    display.display();
  }
  for (int16_t i=0; i<display.width(); i+=4) {
    display.drawLine(display.width()-1, 0, i, display.height()-1, BLACK); 
    display.display();
  }
  delay(250);
}

Allt är uppställt i sin ordning:
Men jag gör om

Kod: Markera allt

Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

Men jag får errormeddelandet:

Kod: Markera allt

pcdtest.pde:38:46: error: variable ‘logo16_glcd_bmp’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’

Jag misstänker att det ligger det ligger något i detta:
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
TobiasEinarsson
Inlägg: 58
Blev medlem: 6 september 2012, 11:15:33
Ort: Göteborg

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av TobiasEinarsson »

Vet du vad Vcc och GND står för?

Du kan inte blint koppla enligt ett exempel som uppenbart inte använder sig av samma breakout board som du har och sedan förvänta sig att det fungerar.

Men oavsett hur du kopplat så är det inte därför som du får kompileringsfel. Har du provat med de exempel som följer med biblioteket? De brukar finnas under File / Examples i Arduino IDE.

Edit: I och med att du kopplat RST direkt till 5V så kan det nog tyvärr vara så att du gjort sönder displayen, vet dock inte hur tåliga ingångarna är.
Senast redigerad av TobiasEinarsson 19 oktober 2013, 15:04:46, redigerad totalt 1 gång.
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av snigelen »

Kod: Markera allt

static unsigned char PROGMEM logo16_glcd_bmp[]
Sätt in ordet const först på den raden (eller byt ut static mot const).

Det har fungerat utan const i tidigare versioner av avr-gcc, men gör det inte längre.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av Al_Bundy »

TobiasEinarsson skrev:Vet du vad Vcc och GND står för?

Du kan inte blint koppla enligt ett exempel som uppenbart inte använder sig av samma breakout board som du har och sedan förvänta sig att det fungerar.

Men oavsett hur du kopplat så är det inte därför som du får kompileringsfel. Har du provat med de exempel som följer med biblioteket? De brukar finnas under File / Examples i Arduino IDE.
GND = Ground
Vcc = Volvo Car Corporation...skojar bara. Det är power-supply pin.

Jag använder mig av exemplet. Det är koden ovan.
Jag håller med att jag måste lära mig koppla rätt. Jag tycker det är lite förvirrande med "RS" "K" "EC" osv.
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av snigelen »

Din blå display är inte pin-kompatibel med den röda. Du måste läsa vad det står på displayens pinnar och koppla så att det stämmer med de pinnar du angett i programmet.
TobiasEinarsson
Inlägg: 58
Blev medlem: 6 september 2012, 11:15:33
Ort: Göteborg

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av TobiasEinarsson »

Varför har du då inte kopplat GND till jord och Vcc till 5V?

Edit: Om det nu ska vara 5V vill säga, i Sparkfuns exempel skriver de att det är en 3.3 volts display men ända driver de den med 5V.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av Al_Bundy »

snigelen skrev:

Kod: Markera allt

static unsigned char PROGMEM logo16_glcd_bmp[]
Sätt in ordet const först på den raden (eller byt ut static mot const).

Det har fungerat utan const i tidigare versioner av avr-gcc, men gör det inte längre.

Det fungerar!
Är detta en bug eller? :)

Men det lyser inte, bara sidolamporta på LCD:n. Alltså återstår det ett kopplingsfel!
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av Al_Bundy »

TobiasEinarsson skrev:Varför har du då inte kopplat GND till jord och Vcc till 5V?

Edit: Om det nu ska vara 5V vill säga, i Sparkfuns exempel skriver de att det är en 3.3 volts display men ända driver de den med 5V.
Jag ska göra det, men vet inte exakt vart jag ska motstånden.

På min blåa display har jag

RST
CE
DC
Din
Clk
Vcc
BL
GND

På sparkfuns röda dipslay har dom

// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)

De jag inte vet vilka jag ska koppla till är BL och Clk(är detta SCLK?) och CE


Av uteslutningsmetoden så säger jag:

RST - Pin 3
CE - Pin 4
DC - Pin 5
Din - Pin 6
Clk - Pin 7
Vcc - 5V
BL - ?
GND - Jord

Har jag rätt?
Ska jag använda motstånd som sparkfun har gjort?
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av snigelen »

Är detta en bug eller? :)
Det är väl en bug i tidigare versioner av ḱompilatorn att tillåta data i FLASH att vara deklarerade utan const.

Jag hade visst sådan display som är pinkompatibel med din, det var bara att koppla från vänster till höger på displayen

Kod: Markera allt

Display   Arduino
1 RST - 3
2 CE  - 4
3 DC  - 5
4 DIN - 6
5 CLK - 7
6 VCC - 5V OBS vissa displayer med pcd8544 är inte 5V kompatibla. Min är det.
7 LIGHT struntade jag i
8 GND - GND
Edit: Så det stämmer med vad du skrev medan jag skrev detta.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Nokia 5110 LCD fungerar inte med Arduino - Bug?

Inlägg av Al_Bundy »

Nu lyser det inget.

Jag vet inte vad som har hänt, men jag hopplade precis som du skrev.
Jag ska testa ta bort motstånden.

Edit: Jag kopplade 3.3 V till BL och då lyser skärmen blå iallafall :)

EDIT2:
Jag tog bort alla motstånd och nu fungerar exakt allt! :D
Tackar!

Jag ska notera detta i min log.
Denna tråd borde klistras eller något så folk som har problem med Nokia 5110 LCD så kan dom vända sig hit.

Varsågoda!

Bild

En sak till!
Medan jag frågar om just pinnar osv.
Jag har ett relä som ser ut nästan som så här:
Bild

Den har 5 pinnar.
Vcc
ln1
Gnd
RVcc
Vcc

RVcc och Vcc har en liten klipps som som ansluter dom tillsammans. Samma klipps som sitter på IDE hårddiskar, om ni minns dessa gamla godingar?
Men vad betyder RVcc och ln1?
Senast redigerad av Al_Bundy 19 oktober 2013, 16:36:30, redigerad totalt 1 gång.
Skriv svar