Funktion LCD- Display

Liebe Forumgemeinde!

ich bin mir nicht sicher, ob mein Code funktioniert, könnte das bitte einer überprüfen!? ;D Ich habe ein 16x2 Display auf die Arduino Uno Pins A0- A5 und Pin 2 gelegt. Nun meine Frage, muss ich dafür die Analogpins noch extre konfigurieren, oder als Ausgänge festlegen?`oder funktioniert mein Code so? Vielen Dank schon im Vorraus!!! :sunglasses:

#include <LiquidCrystal.h>             

LiquidCrystal lcd(14,15,16,17,18,19,2);        

const int signalgeber = 1;

const int motor_eins_richtung   = 12;  
const int motor_eins_geschw     = 3;    

const int motor_zwei_richtung   = 13;  
const int motor_zwei_geschw     = 11; 

const int trig                  = 10;   

const int echo_sensor_eins      = 7;  
const int echo_sensor_zwei      = 6;  

const int taster_vorwaerts      = 5;   
const int taster_rueckwaerts    = 4;  

unsigned int wert_taster_vorwaerts    = LOW;   
unsigned int wert_taster_rueckwaerts  = LOW;   
unsigned int vorwaerts                     = LOW;  
unsigned int rueckwaerts                   = LOW;   

unsigned int laenge1                   = LOW;   
unsigned int laenge2                   = LOW;

unsigned int val_motor_eins           = LOW;   
unsigned int val_motor_zwei           = LOW;   

void setup ()          
{
pinMode (motor_eins_richtung, OUTPUT);     
pinMode (motor_eins_geschw, OUTPUT);       

pinMode (motor_zwei_richtung, OUTPUT);    
pinMode (motor_zwei_geschw, OUTPUT);      

pinMode (trig, OUTPUT);        
pinMode (echo_sensor_eins, INPUT);         

pinMode (taster_vorwaerts, INPUT);
pinMode (taster_rueckwaerts, INPUT);

pinMode (signalgeber, OUTPUT);

pinMode (echo_sensor_zwei, INPUT);         

lcd.begin(16,2);            
lcd.clear();                 
lcd.setCursor(0,0);           
lcd.print("   Arduino Uno  ");   
lcd.setCursor(0,1);          
lcd.print(" Modellfahrzeug ");
}

Bitte Code-Tags verwenden. Direkt sehe ich da nur einen Fehler. Die loop() fehlt. Arduino düfte dann auch entsprechend meckern.

Lade mal den Beispiel Sketch der Library. Ändere die Pin Definitionen. Dann siehst du ob deine Verkabelung passt. Zwischen Analog und Digital-Pins sollte es da aber keinen Unterschied geben.

Ja natürlich habe ich einen loop Teil, ist aber sehr groß, daher habe ich ihn weggelassen :grin: , die grundsätzliche Frage war nur, ob die Funktion des Display gewährleistet ist, da ich die Analogpins verwende und diese nicht deklariert habe z.b. als OUTPUT. :slight_smile: das Problem ist nur, dass ich es nur im Geschäft testen kann, und wenn ich dann die Verkabelung nochmals ändern muss, geht mir extrem viel Zeit verloren :smiley:

Die Pins werden in der Libary als Ausgänge gesetzt

Verwendest Du das Motorshield von Arduino? das verwendet 2 analoge Pins.
Grüße Uwe

ja Uwe ich verwende das Motorshield den Arduino Uno und das Prototype Shield und ein Display. Das Display steuere ich aber nicht über ein Shield an sondern über extra Leitungen, die nur auf ein 16x2 Display gehen. Ich bin davon ausgegangen, dass das Motorshield nur die Pins 13,12,11,3 und als Bremse die Pins 8 und 9 verwenden. Welche Analogpins werden vom Motorshield verwendet? :confused: Dachte eigentlich mein Code funktioniert so !?

http://arduino.cc/en/Main/ArduinoMotorShieldR3

und
http://shieldlist.com/ (ist leider aber nicht gelistet).

Siehe http://arduino.cc/en/uploads/Main/MotorShield_R3_Back.jpg
Die 2 Ausgänge A0 und A1 geben eine Soannung proportional dem Motorstrom aus. Die Pin können mittels Durchtrennen der Lötbrücken (schnale Verbindung zwischen den Lötaugen) von SNS0 und SNS1 freigegeben werden. Du kannst die Verbindung mit einem Messer durchschneiden und falls Du später mal verwenden willst mittels Lötzinn wieder verbinden.
Gleich kannst Du Pin D8 und D9 durch Durchtrennen der Lötbrücken BREAK DISABLE A und BREAK DISABLE B freigeben.
Die Pins D5, D6, A2, A3, A4 und A5 gehen auf die Stecker IN2, IN3, OUT5, OUT6, TWI-IN und TWI-OUT und können verwendet werden wenn sie unbeschaltet bleiben.

Wenn Du alle Lötbrücken durchtrennst und nichts an den weißen und orangen Steckern anschließt dann hast Du die Pins D2, D4, D5, D6, D7, D10, A0, A1,A2, A3, A4 und A5 frei. D0 und D1 sind für die Serielle Schnittstelle zuständing und können Verwendet werden wenn Du keine Daten zur USB schickst/empfängst und die Schaltung das Upload nicht stört (zB taster oder durch Steckbrücken unterbrochen werden kann).

Ein Standart LCD auf HD44780 Basis kann mit 6 Pins angesteuert werden.
LiquidCrystal(rs, enable, d4, d5, d6, d7) das RW pin des Displays wird dabei auf Masse geschaltet.
Das Display kann auch mittels eines 595-Schieberegisters, eines I2C Expanders oder einer Adapterplatine für I2C (mit eigenem Controller) angeschlossen werden. Dann braucht es 3 bzw 2 Pins.

Grüße Uwe