Re !
alors concernant le câblage (je possède une arduino mega 2560):
Vss = masse
vdd = +5V
V0 = signal du potentiomètre
RS = pin digital 22
RW = masse)
E = pin pwm 4
D0->D3 non branchés
D4 = pin pwm 7
D5 = pin digital 24
D6 = pin digital 23
D7 = pin pwm 6
A = +5V
k = masse
Concernant le code utilisé le voici :
Le code correspondant au LCD est le suivant :
#include <Servo.h>// librairie servo
#include<LiquidCrystal.h> //librairie de l'écran LCD
LiquidCrystal lcd(4,5,6,7,22,23,24);//pin utilisés par l'écran LCD
int switchState=0;//intégral état bouton démarrage
int switchState2=0;//intégral état bouton de marche arrière
const int servo1 = 3; // pin pwm 3 servo pan tilt
const int servo2 = 2;// pin pwm 2 servo pan tilt
const int joyH = A14;// pin ana 14 joystick pan tilt
const int joyV = A15;// pin ana 15 joystick pan tilt
int servoVal; // integral valeur servo pan tilt
Servo myservo1; // nom servo pan tilt
Servo myservo2; // nom servo pan tilt
const int servo3 = 4;// pin pwm 4 servo gps
Servo myservo3;// nom du servo du gps
void setup() {
pinMode(50,INPUT);// pin digi 50 entrée bouton démarrage carte voiture
pinMode(52,OUTPUT);// pin digi 52 commande relai démarrage carte voiture
pinMode (51, INPUT);//pin digi 51 entrée bouton marche arrière levier de vitesse
myservo1.attach(servo1); // attache servo pan tilt
myservo2.attach(servo2); // attache servo pan tilt
myservo3.attach(servo3); //attach servo gps
}
void loop() {
switchState=digitalRead(50); //lecture bouton démarrage
if
(switchState==LOW){//pas d'appui sur le bouton
// code du relai de la cartede la voiture à l'arret
digitalWrite(52,HIGH); // relai non enclanché
// code pour la position rentrée du gps
myservo3.write(0); // gps rentré
}
else{//appui sur le bouton
// code pour le relai de la carte de la voiture en marche
digitalWrite(52,LOW);// relai enclenché
// code pour l'écran lcd
lcd.begin(20,4);
lcd.setCursor(4,1);
lcd.print("d'Emilio");
lcd.setCursor(4,0);
lcd.print("AUDI R18");
// code pour la sortie du gps
myservo3.write(110); //gps sorti
}
{
switchState2=digitalRead(51); //lecture bouton marche arrière levier de vitesse
if
(switchState2==LOW){//pas de marche arrière enclenchée
}
else{ // marche arrière enclenchée
// code pour l'utilisation du pan tilt
servoVal = analogRead(joyH); // lire valeur horizontale joystick pan tilt (valeur entre 0 et 1023)
servoVal = map(servoVal, 0, 1023, 0, 180); // transformation valeur entre 0 et 180°
myservo2.write(servoVal);
servoVal = analogRead(joyV); // lire la valeur vertical du joystick
servoVal = map(servoVal,0 , 1023,100 , 180); //transformation valeur entre 0 et 180°
myservo1.write(servoVal);
delay(15); // délai de 15 milli secondes
}
}}
et le problème rencontré est que le LCD s'éteint des que l'arduino s'allume ( il s'éteint environ 1 sec après la mise sous tension de l'arduino).
Lorsqu'il est allumé (sur la seconde de démarrage il n'y a que la ligne 1 et 3 ou les carré blancs apparaissent).