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
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
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 |
> /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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.