Forum: Mikrocontroller und Digitale Elektronik LCD Shield ansprechen


von Jens Weidner (Gast)


Lesenswert?

Hallo,
ich habe mir für mein Arduino ein LCD Shield gekauft und zwar dieses 
hier: 
http://www.dfrobot.com/image/cache/data/DFR0009/DFR0009-500x500.jpg
(DFR0009).

Nun würde ich gerne einfach nur einen Text auf dem LCD ausgeben, doch 
leider klappt das ganze nicht. Ich habe bereits gesehen das ich dafür 
die LCD4BitLibrary brauche also habe ich mir diese gedownloaded und da 
ich am Mac bin habe ich diese in den passenden Ort 
(Documents->Arduino->libraries->) verschoben. Naja wenn ich das erste 
Beispiel nehme und versuche dieses hichzuladen bekomme ich immer eine 
Batterie an Error's die mir das compilieren nicht ermöglichen. Muss ich 
die LCD4BitLibrary irgendwie anders einbinden ?

Gruß Jens

von Peter D. (peda)


Lesenswert?

Jens Weidner schrieb:
> bekomme ich immer eine
> Batterie an Error's

Das ist schonmal ne ganz blöde Idee, bei Errormeldungen nicht den 
exakten Wortlaut des ersten Errors zu posten (wozu gibt es copy&paste).
Und noch blöder ist es, nicht den Code anzuhängen, damit auch ja keiner 
die Zeilennnummer in der Errormeldung zuordnen kann.

Es mag Dich erstaunen, aber Hellseher gibt es nicht.


Peter

von Jens Weidner (Gast)


Lesenswert?

ok das war in der Tat dumm von mir.
Hier der Code:
1
//example use of LCD4Bit_mod library
2
3
#include <LCD4Bit_mod.h> 
4
//create object to control an LCD.  
5
//number of lines in display=1
6
LCD4Bit_mod lcd = LCD4Bit_mod(2); 
7
8
//Key message
9
char msgs[5][15] = {"Right Key OK ", 
10
                    "Up Key OK    ", 
11
                    "Down Key OK  ", 
12
                    "Left Key OK  ", 
13
                    "Select Key OK" };
14
int  adc_key_val[5] ={30, 150, 360, 535, 760 };
15
int NUM_KEYS = 5;
16
int adc_key_in;
17
int key=-1;
18
int oldkey=-1;
19
20
void setup() { 
21
  pinMode(13, OUTPUT);  //we'll use the debug LED to output a heartbeat
22
23
  lcd.init();
24
  //optionally, now set up our application-specific display settings, overriding whatever the lcd did in lcd.init()
25
  //lcd.commandWrite(0x0F);//cursor on, display on, blink on.  (nasty!)
26
   lcd.clear();
27
  lcd.printIn("KEYPAD testing... pressing");
28
    
29
}
30
31
void loop() {
32
33
  adc_key_in = analogRead(0);    // read the value from the sensor  
34
  digitalWrite(13, HIGH);  
35
  key = get_key(adc_key_in);            // convert into key press
36
  
37
  if (key != oldkey)            // if keypress is detected
38
  {
39
    delay(50);    // wait for debounce time
40
    adc_key_in = analogRead(0);    // read the value from the sensor  
41
    key = get_key(adc_key_in);            // convert into key press
42
    if (key != oldkey)        
43
    {      
44
      oldkey = key;
45
      if (key >=0){
46
      lcd.cursorTo(2, 0);  //line=2, x=0
47
        lcd.printIn(msgs[key]);
48
      }
49
    }
50
  }
51
  
52
  //delay(1000);
53
  digitalWrite(13, LOW);
54
  
55
56
 
57
  
58
  
59
}
60
61
// Convert ADC value to key number
62
int get_key(unsigned int input)
63
{
64
  int k;
65
    
66
  for (k = 0; k < NUM_KEYS; k++)
67
  {
68
    if (input < adc_key_val[k])
69
    {
70
           
71
    return k;
72
        }
73
  }
74
    
75
    if (k >= NUM_KEYS)
76
        k = -1;     // No valid key pressed
77
    
78
    return k;
79
}

Und die Fehlermeldungen:
1
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/standard -I/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod /var/folders/pq/lb6rlzkj7t500lz2kp3jxl740000gn/T/build5921681952130448504.tmp/LCD4Bit_modExample.cpp -o/var/folders/pq/lb6rlzkj7t500lz2kp3jxl740000gn/T/build5921681952130448504.tmp/LCD4Bit_modExample.cpp.o 
2
LCD4Bit_modExample.cpp: In function 'void setup()':
3
LCD4Bit_modExample.cpp:31: warning: deprecated conversion from string constant to 'char*'
4
LCD4Bit_modExample.cpp: In function 'int get_key(unsigned int)':
5
LCD4Bit_modExample.cpp:72: warning: comparison between signed and unsigned integer expressions
6
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/standard -I/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod -I/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/utility /Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp -o/var/folders/pq/lb6rlzkj7t500lz2kp3jxl740000gn/T/build5921681952130448504.tmp/LCD4Bit_mod/LCD4Bit_mod.cpp.o 
7
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:29:57: error: WConstants.h: No such file or directory
8
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::pulseEnablePin()':
9
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:58: error: 'LOW' was not declared in this scope
10
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:58: error: 'digitalWrite' was not declared in this scope
11
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:59: error: 'delayMicroseconds' was not declared in this scope
12
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:61: error: 'HIGH' was not declared in this scope
13
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:64: error: 'delay' was not declared in this scope
14
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::pushNibble(int)':
15
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:73: error: 'digitalWrite' was not declared in this scope
16
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::commandWriteNibble(int)':
17
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:99: error: 'LOW' was not declared in this scope
18
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:99: error: 'digitalWrite' was not declared in this scope
19
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::commandWrite(int)':
20
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:106: error: 'LOW' was not declared in this scope
21
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:106: error: 'digitalWrite' was not declared in this scope
22
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::print(int)':
23
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:118: error: 'HIGH' was not declared in this scope
24
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:118: error: 'digitalWrite' was not declared in this scope
25
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:119: error: 'LOW' was not declared in this scope
26
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::clear()':
27
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:139: error: 'delay' was not declared in this scope
28
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::init()':
29
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:146: error: 'OUTPUT' was not declared in this scope
30
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:146: error: 'pinMode' was not declared in this scope
31
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:154: error: 'delay' was not declared in this scope
32
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:160: error: 'delayMicroseconds' was not declared in this scope
33
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:174: warning: suggest parentheses around + or - inside shift
34
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp: In member function 'void LCD4Bit_mod::leftScroll(int, int)':
35
/Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:225: error: 'delay' was not declared in this scope

von Jens Weidner (Gast)


Lesenswert?

hm keiner einen Tipp für mich ?

von Suchender (Gast)


Lesenswert?

> /Users/Jens/Documents/Arduino/libraries/LCD4Bit_mod/LCD4Bit_mod.cpp:29:5 7
> : error: WConstants.h: No such file or directory

Ich habe von C null Ahnung, aber: Er sucht eine Datei, nämlich 
WConstants.h Die folgenden Fehlermeldungen beziehen sich auf die in der 
fehlenden Datei definierten Konstanten. Mit dieser Datei sollte es 
deutlich besser gehen.

von Jens Weidner (Gast)


Lesenswert?

Ok danke, hatte mir schon so etwas gedacht,  nur da dies ja eine 
vorgefertigte Library ist, ging ich davon aus das die Datei includiert 
sei und ich einfach die Library falsch eingepflegt hätte. Naja habe nun 
die WConstants.h und wiring.h in den Ordner der Library gelegt und nun 
klappst ;)

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.