Merci pour ton aide.
Voila pour mon petit programme j'ai rajouté la "easy card" de EASY ROBOTICS pour brancher un joypad sur A0 et A1, le servo sur la broche 3. Sur adaptateur pour écran MI0283QT2 les broches 7,8,9,11,12,13 sont utilisé, les autres sont repliées car elles ne servent pas (sauf erreur).
voici mon code:
/*se programme affiche a l'écran des variables que l'on peut selectionner et modifier leur valeur*/
// /////////////////////////////// 1. Entête déclarative ///////////////////////
// A ce niveau sont déclarées les librairies incluses, les constantes, les variables, les objets utiles...
// --- Déclaration des constantes ---
// --- Inclusion des librairies ---
#include <MI0283QT2.h> // librairie de l'afficheur TFT MI0283QT2
// Avant utilisation, il faut installer manuellement cette librairie
// dans le dossier <Libraries> du dossier Arduino
#include <Servo.h> // librairie pour servomoteur
int modif_variable(int mesure, int variable);// prototype fonction pour la modification de valeur d'une variable par joypad X
// --- Déclaration des constantes utiles ---
// --- Déclaration des constantes des broches E/S numériques ---
const int broche_servo=3; // Constante pour la broche
// --- Déclaration des constantes des broches analogiques ---
const int JoypadY=0; //declaration constante de broche analogique
const int JoypadX=1; //declaration constante de broche analogique
// --- Déclaration des variables globales ---
int mesure_bruteX=0;// Variable pour acquisition résultat brut de conversion analogique numérique
int mesure_bruteY=0;// Variable pour acquisition résultat brut de conversion analogique numérique
int ligne_active=3;
float mesuref=0.0;// Variable pour calcul résultat décimal de conversion analogique numérique
int POS_MINI=700;
int POS_MAX=2300;
int angleServo=1500;
// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
MI0283QT2 lcd; // création d'un objet de type MI0283QT2 appelé lcd
Servo mon_servo; // crée un objet servo pour contrôler le servomoteur
// ////////////////////////// 2. FONCTION SETUP = Code d'initialisation //////////////////////////
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme
void setup() { // debut de la fonction setup()
// --- ici instructions à exécuter 1 seule fois au démarrage du programme ---
// ------- Initialisation fonctionnalités utilisées -------
//initialisation écran MI0283QT2 240x320 pixels
lcd.init(4); //spi-clk = Fcpu/4
lcd.clear(RGB(255,255,255)); // efface ecran en blanc
//configuration écran MI0283QT2 240x320 pixels - après calibrage touchpad
lcd.setOrientation(270); // configure orientation afficheur en degrés : 0,90,180,270
// Par défaut 0 = point 0,0 en regard connecteur USB
lcd.clear(RGB(255,255,255)); // efface ecran en blanc
lcd.led(40); // fixe luminosité
// ------- Broches en sorties numériques -------
pinMode (broche_servo,OUTPUT); // Broche broche_servo configurée en sortie
// ------- Broches en entrées numériques -------
// ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques -------
// ------- Initialisation des variables utilisées -------
} // fin de la fonction setup()
// ********************************************************************************
////////////////////////////////// 3. FONCTION LOOP = Boucle sans fin = coeur du programme //////////////////
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension
void loop(){ // debut de la fonction loop()
mon_servo.attach(broche_servo, POS_MINI, POS_MAX); // attache l'objet servo à la broche de commande du servomoteur avec calibrage auto
// --- ici instructions à exécuter par le programme principal ---
lcd.drawText(0, 0, "menu de configuration", 1, noir, blanc); // affiche message
mesure_bruteY=analogRead(JoypadY);
lcd.drawText(0,10, "valeur brute joypad Y =", 1, bleu, blanc); // affiche message
lcd.drawText(190,10, " ", 1, bleu, blanc); // affiche message
lcd.drawText(190,10,mesure_bruteY , 1, rouge, blanc); // affiche message
mesure_bruteX=analogRead(JoypadX);
lcd.drawText(0,20, "valeur brute joypad X =", 1, bleu, blanc); // affiche message
lcd.drawText(190,20, " ", 1, bleu, blanc); // affiche message
lcd.drawText(190,20,mesure_bruteX , 1, rouge, blanc); // affiche message
if (mesure_bruteY > 600)
{
ligne_active--;
delay(500);
}
else if (mesure_bruteY <400)
{
ligne_active++;
delay(500);
}
if (ligne_active ==4)
{ligne_active = 1;}
else if (ligne_active ==0)
{ligne_active=3;}
lcd.drawText(0,40, "ligne active =", 1, bleu, blanc); // affiche message
lcd.drawText(190,40, " ", 1, bleu, blanc); // affiche message
lcd.drawText(190,40,ligne_active,1,rouge, blanc); // affiche message
lcd.drawText(0,60, "POS MINI (us)=", 1, bleu, blanc); // affiche message
lcd.drawText(190,60, " ", 1, bleu, blanc); // affiche message
lcd.drawText(190,60,POS_MINI,1,rouge, blanc); // affiche message
lcd.drawText(0,70, "POS MAX (us)=", 1, bleu, blanc); // affiche message
lcd.drawText(190,70, " ", 1, bleu, blanc); // affiche message
lcd.drawText(190,70,POS_MAX,1,rouge, blanc); // affiche message
lcd.drawText(0,80, "angle actuel (us)=", 1, bleu, blanc); // affiche message
lcd.drawText(190,80, " ", 1, bleu, blanc); // affiche message
lcd.drawText(190,80,angleServo,1,rouge, blanc); // affiche message
if (ligne_active ==1)
{lcd.drawText(0,60, "POS_MINI=", 1, blanc,bleu); // affiche message
POS_MINI=modif_variable(mesure_bruteX, POS_MINI);
}
else if (ligne_active ==2)
{lcd.drawText(0,70, "POS_MAX =", 1, blanc,bleu); // affiche message
POS_MAX=modif_variable(mesure_bruteX, POS_MAX);
}
else if (ligne_active ==3)
{lcd.drawText(0,80, "angle actuel(us)=", 1, blanc, bleu); // affiche message
angleServo=map(JoypadX,0,1024,POS_MINI,POS_MAX);
//mon_servo.writeMicroseconds(angleServo);
}
} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************
// modification de la valeur d'une variable par joypad X
int modif_variable(int mesure, int variable)
{
if (mesure > 950)
{ delay (00);
variable = variable +100; }
else if (mesure > 700)
{delay (00);
variable = variable +10; }
else if (mesure > 530)
{delay (00);
variable = variable +1; }
else if (mesure < 100)
{delay (00);
variable = variable -100; }
else if (mesure < 300)
{ delay (00);
variable = variable -10; }
else if (mesure< 500)
{ delay (00);
variable = variable -1; }
return variable;
}
donc dès que je supprime la ligne mon_servo.attach(broche_servo, POS_MINI, POS_MAX);
, sous VOID LOOP en mettant // l'écran reste allume sinon l'écran est noir. En appuyant sur reset l'écran initialise, puis les variable s'affiche 1 seconde puis s'éteint.
voila j'ai regardé encore une fois mais je ne vois pas se qui cloche.