Sainsmart Sensorshield V4 und SainSmart 20X4 LCD an Arduino UNO r2 problem

Ich hab ein riesen problem, ich habe einen Sketch der vor IDE 1.0 geschrieben und erstellt wurde :include

#include 
#include
LiquidCrystal_I2C lcd(0x27,16,2); //set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
    lcd.init(); 
    lcd.backlight();
    lcd.setCursor(0, 0);
    lcd.print("b2cqshop");
    lcd.setCursor(0, 1);
    lcd.print("Voltage: ");
    lcd.setCursor(13, 1);
    lcd.print("V");
}
void loop()
{
    int val;
    float temp;
     val=analogRead(0);
    temp=val/4.092;
    val=(int)temp;//
    lcd.setCursor(9, 1);
    lcd.print(0x30+val/100,BYTE); 
    lcd.print(0x30+(val%100)/10,BYTE); 
    lcd.print('.');
    lcd.print(0x30+val%10,BYTE);
    delay(100);
}

aber ich habe (und möchte) mit IDE 1.0.2 angefangen und das soll auch darauf laufen.

Folgende fehlermeldung kommt dabei heraus wenn ich den sketch testweise compiliere:

sketch_dec07a.ino:1:10: error: #include expects "FILENAME" or
sketch_dec07a.ino:2:10: error: #include expects "FILENAME" or
sketch_dec07a:4: error: 'LiquidCrystal_I2C' does not name a type
sketch_dec07a.ino: In function 'void setup()':
sketch_dec07a:8: error: 'lcd' was not declared in this scope
sketch_dec07a.ino: In function 'void loop()':
sketch_dec07a:24: error: 'lcd' was not declared in this scope
sketch_dec07a:25: error: 'BYTE' was not declared in this scope

Seit Arduino 1.0 wird das Keyword 'BYTE' nicht mehr unterstützt.
Bitte verwenden Sie stattdessen Serial.write().

wie kann ich das umschreiben????? Wie schon in meinem ersten post erwähnt ich bin einsteiger und habe kaum erfahrung mit programmieren.

lg Geilduino

Erstmal müsstest Du die Libraries ja überhaupt einbinden. Das geht mit

#include "libraryxyz.h" //(entsprechende library eintragen)

Bei Dir steht nur das #include und das funktioniert natürlich nicht.

Hm okay, hab mir jetzt von hier http://arduino-info.wikispaces.com/LCD-Blue-I2C die libraries besorgt, sind etwas neuer wie es scheint.
hab im libraries Ordner (da wo die sketches sind) einen neuen ordner erstellt und da alles hinkopiert/verschoben.
bekomme trotz einbinden (Sketch-> import libraries) nix auf die reihe.

hab grad mal gesehen das der obige sketch nur für ein 16x2 lcd ist, ich habe allerdings ein 4x20 lcd von daher ist das schon tierisch falsch.

also nun hab ich wenigstens schon mal hintergrundbeleuchtung und in der 1ten und 3 zeile weisse kästchen (lcd ist blau weiss).
mit folgendem sketch:

/* YourDuino.com Example Software Sketch
 20 character 4 line I2C Display
 NEW TYPE Marked "Arduino-IIC-LCD GY-LCD-V1"
/*-----( Import needed libraries )-----*/ 
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>  // F Malpartida's NewLiquidCrystal library
//Download: https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move original LiquidCrystal library elsewhere, copy this in it's place (okay unter mac muss man das nicht auch wenn ich das testweise probiert habe)

/*-----( Declare Constants )-----*/
#define I2C_ADDR    0x20  // Define I2C Address for the PCF8574A 
//---(Following are the PCF8574 pin assignments to LCD connections )----
// This are different than earlier/different I2C LCD displays
#define BACKLIGHT_PIN  7
#define En_pin  4
#define Rw_pin  5
#define Rs_pin  6
#define D4_pin  0
#define D5_pin  1
#define D6_pin  2
#define D7_pin  3

#define  LED_OFF  0
#define  LED_ON  1

/*-----( Declare objects )-----*/  
LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  lcd.begin (20,4);  // initialize the lcd 
// Switch on the backlight
  lcd.setBacklightPin(BACKLIGHT_PIN,NEGATIVE);
  lcd.setBacklight(LED_ON);
}// END Setup

void loop()   /*----( LOOP: RUNS OVER AND OVER AGAIN )----*/
{

// Reset the display  
  lcd.clear();
  delay(1000);
  lcd.home();
  
// Print our characters on the LCD
  lcd.backlight();  //Backlight ON if under program control
  lcd.setCursor(1,0); //Start at character 3 on line 0
  lcd.print("Hello, world!");
  delay(1000);
  lcd.setCursor(2,1);
  lcd.print("From Arduino with Sainsmart");
  delay(1000);  
  lcd.setCursor(0,2);
  lcd.print("20 by 4 Line Display");
  lcd.setCursor(0,3);
  delay(2000);   
  lcd.print("http://arduino.cc");
  delay(8000);
} // END Loop

Hm okay, hab mir jetzt von hier http://arduino-info.wikispaces.com/LCD-Blue-I2C die libraries besorgt, sind etwas neuer wie es scheint.
hab im libraries Ordner (da wo die sketches sind) einen neuen ordner erstellt und da alles hinkopiert/verschoben.
bekomme trotz einbinden (Sketch-> import libraries) nix auf die reihe.

Welches Betriebsystem benutzt Du?
Hast Du den IDE beendet und neu gestartet? Änderungen treten erst beim Starten in kraft.

Grüße Uwe

uwefed:
Welches Betriebsystem benutzt Du?
Grüße Uwe

Mac OSX 10.8.2

Als Window-ler kann ich Dir nicht antworten.
Da muß Dir jemand anders weiterhelfen.
Grüße Uwe

uwefed:
Als Window-ler kann ich Dir nicht antworten.
Da muß Dir jemand anders weiterhelfen.
Grüße Uwe

nicht ganz richtig, was die software betrifft ist das 1:1 Uwe.

Geilduino:

uwefed:
Als Window-ler kann ich Dir nicht antworten.
Da muß Dir jemand anders weiterhelfen.
Grüße Uwe

nicht ganz richtig, was die software betrifft ist das 1:1 Uwe.

Liegen die Verzeichnisse der Sketche nicht an verschiedenen Orten je nach Betriebssystem?

Geilduino schreibt:

hab im libraries Ordner (da wo die sketches sind) einen neuen ordner erstellt und da alles hinkopiert/verschoben.

Bei Windows sind standartmäßig die Sketche und das libraries-Verzeichnis an 2 verschiedenen Orten;
das libraries-Verzeichnis in C:\Programme\arduino xx\ und die Sketche in C:\Dokumente und Einstellungen\user\Eigene Dateien\Arduino\

Grüße Uwe

na unter windows halt zwei varianten unter mac gibts nur unter /Users/xxx/Dokumente/Arduino/libraries/ <-- da rein.
mehr geht nicht man kann zwar auch in der app mit paketinhalt zeigen rumfummeln aber sollte man tunlichst unterlassen…

es handelt sich ja auch nur um das shield in verbindung mit dem i2c (J204A) LCD (4x20 chars).
ich bekomm da nix auf die reihe selbst mit der neuesten LiquidCrystal_I2C library nicht.

also nun hab ich wenigstens schon mal hintergrundbeleuchtung und in der 1ten und 3 zeile weisse kästchen (lcd ist blau weiss).
mit folgendem sketch:

Das legt ja nahe, das es kein Problem mehr ist, die Lib einzubinden, sondern eher sie zu richtig zu benutzen.

mkl0815:

also nun hab ich wenigstens schon mal hintergrundbeleuchtung und in der 1ten und 3 zeile weisse kästchen (lcd ist blau weiss).
mit folgendem sketch:

Das legt ja nahe, das es kein Problem mehr ist, die Lib einzubinden, sondern eher sie zu richtig zu benutzen.

würde ich als anfänger mal nicht verneinen XD. Nur wo zur hölle fang ich da an ich finde ja nicht mal Datasheets für die beiden sachen (Sensorshield V4 sowie für das Display)

so habe alles aber selbst ein ganz normaler sketch HelloWorld funktioniert nicht adresse umgesetzt auf 0x37 und immer noch nix

adresse umgesetzt auf 0x37

Schon mal den I2C Scanner probiert, ob der einen Sklaven findet ?

Libraries sind toll, wenn sie gleich funktionieren.
Wenn nicht, ist es aber viel toller, dann kann man was lernen und hat schonmal Spielmaterial :wink:

Also der I2C Scanner ist der Hammer…
Hab danach 0x3F benutzt und hatte erst das gleiche ergebnis…
dann hab ich mir mal die beiden platinen vorgenommen: et voila… Kalte lötstellen… geflickt… LÄUFT!!!
yihaaa Danke