Go Down

Topic: Adafruit LCD shield and Arduino Ethernet shield on Uno R3 (Read 708 times) previous topic - next topic

ox3io

Hi

Just got this LCD shield - http://www.adafruit.com/products/714
It only uses 2 pins, analog 4 & 5, which is the brilliant part.
I have no problems using the display on my R3 board when it's the only shield mounted.
When adding my Ethernet shield I can't print any chars on the display. The strange part is that the command used to changes the LCD backlight colour is working. There is no conflict in the pins used by there 2 shields so I wonder...

Hope to hear from somebody with a good idea :-)

Best regards,
Brian Vind Borgstrom
Nuuk
Greenland

arduinodlb

Post a link to your ethernet shield.
Post your complete code, using code tags:

Code: [Select]

code here...
Do not IM me. I will not respond. Ask questions in the forum.

ox3io

My Ethernet Shield is this one: http://arduino.cc/en/Main/ArduinoEthernetShield

My code (Sample from Adafruit). The Ethernet Shield is not initialized:
Code: [Select]

/*********************

Example code for the Adafruit RGB Character LCD Shield and Library

This code displays text on the shield, and also reads the buttons on the keypad.
When a button is pressed, the backlight changes color.

**********************/

// include the library code:
#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>

// The shield uses the I2C SCL and SDA pins. On classic Arduinos
// this is Analog 4 and 5 so you can't use those for analogRead() anymore
// However, you can connect other I2C sensors to the I2C bus and share
// the I2C bus.
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();

// These #defines make it easy to set the backlight color
#define RED 0x1
#define YELLOW 0x3
#define GREEN 0x2
#define TEAL 0x6
#define BLUE 0x4
#define VIOLET 0x5
#define WHITE 0x7

void setup() {
  // Debugging output
  Serial.begin(9600);
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);

  // Print a message to the LCD. We track how long it takes since
  // this library has been optimized a bit and we're proud of it :)
  int time = millis();
  lcd.print("Hello, world!");
  time = millis() - time;
  Serial.print("Took "); Serial.print(time); Serial.println(" ms");
  lcd.setBacklight(WHITE);
}

uint8_t i=0;
void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);

  uint8_t buttons = lcd.readButtons();

  if (buttons) {
    lcd.clear();
    lcd.setCursor(0,0);
    if (buttons & BUTTON_UP) {
      lcd.print("UP ");
      lcd.setBacklight(RED);
    }
    if (buttons & BUTTON_DOWN) {
      lcd.print("DOWN ");
      lcd.setBacklight(YELLOW);
    }
    if (buttons & BUTTON_LEFT) {
      lcd.print("LEFT ");
      lcd.setBacklight(GREEN);
    }
    if (buttons & BUTTON_RIGHT) {
      lcd.print("RIGHT ");
      lcd.setBacklight(TEAL);
    }
    if (buttons & BUTTON_SELECT) {
      lcd.print("SELECT ");
      lcd.setBacklight(VIOLET);
    }
  }
}


Best regards, Brian

floresta

Are you using the recommended stacking headers between your ethernet shield and your LCD shield?

Don


Go Up