Logo Mon Club Elec

Arc-en-ciel sur afficheur couleur TFT 320×240

L’arc-en-ciel est un phénomène naturel qui fascine depuis des siècles. Il est maintenant possible de le voir sur un afficheur couleur TFT 320×240. Grâce à cette technologie, vous pouvez admirer les couleurs vives et les nuances subtiles de l’arc-en-ciel, sans avoir à sortir de chez vous. Dans cet article, nous allons vous expliquer comment profiter de cette technologie pour voir un arc-en-ciel sur un afficheur couleur TFT 320×240.

Arc-en-ciel sur afficheur couleur TFT 320×240

Arc-en-ciel sur afficheur couleur TFT 320×240

(cliquer sur l’image pour agrandir)

1.  Présentation

Affiche un dégradé de couleurs sur un afficheur TFT 240 x320

Ce programme utilise les fonctionnalités suivantes :

2.  Matériel Nécessaire

2.1  L’espace de développement Arduino

  • … pour éditer, compiler le programme et programmer la carte Arduino.
Arc-en-ciel sur afficheur couleur TFT 320×240

2.2  Le matériel suivant pour réaliser le montage associé

Arc-en-ciel sur afficheur couleur TFT 320×240
  • Watterrott propose également un circuit imprimé de compatibilité pour la carte Arduino à coupler avec cet adaptateur d’écran , le mSD-shield (15 Euros) : http://www.watterott.com/de/Arduino-mSD-Shield L’utilisation est alors très simple puisqu’il suffit d’enficher le module sur la carte Arduino.
Arc-en-ciel sur afficheur couleur TFT 320×240

3.  Instructions de montage

  • Connexions à réaliser pour adaptateur écran MI0283QT2 240×320 pixels – 262 K couleurs

Note : ces connexions sont réalisées automatiquement si utilisation du circuit imprimé mSD-shield

  • Broches utilisées pour le contrôle de l’afficheur graphique
    • broche CS de l’adaptateur sur la broche 7
    • broche RST de l’adaptateur sur la broche 8
    • broche LED de l’adaptateur sur la broche 9
  • broches utilisées pour la communication SPI de l’adaptateur MI0283QT2
    • broche SDI de l’adaptateur sur la broche 11
    • broche SDO de l’adaptateur sur la broche 12
    • broche SCL de l’adaptateur sur la broche 13

4.  Le circuit du montage

Arc-en-ciel sur afficheur couleur TFT 320×240

5.  Fonctionnement du programme

5.1  Structure globale du programme

Ce programme simple comprend :

  • une entête déclarative
  • une partie « configuration » qui ne sera exécutée qu’une fois (fonction setup( ) )
  • une partie constituée d’une boucle sans fin que le programme répètera à l’infini ( fonction loop( ) ) : c’est le coeur du programme.

5.2  Déroulement du programme

Le programme se déroule de la façon suivante :

  • Après avoir pris en compte les instructions de la partie déclarative,
  • puis après avoir exécuté la partie configuration ( fonction setup( ) ),
  • le programme bouclera sans fin ( fonction loop ( ) ), exécutant de façon répétée le code compris dans la boucle sans fin.
Arc-en-ciel sur afficheur couleur TFT 320×240
Le déroulement du programme

6.  Explication du programme

  • Voir les commentaires du programme pour les détails

7.  Mise en oeuvre du programme

7.1  Préparation du montage et programmation de la carte Arduino :

  • Commencer par réaliser le montage indiqué sur plaque d’expérimentation
  • Ensuite, programmer la carte Arduino avec ce programme (en bas de page) selon la procédure habituelle

7.2  Fonctionnement

8.  Le programme complet en langage Arduino

A copier/coller directement dans l’éditeur Arduino

// — Programme Arduino —
// Trame de code générée par le générateur de code Arduino
// du site www.mon-club-elec.fr

// Auteur du Programme : X. HINAULT – Tous droits réservés
// Programme écrit le : 27/10/2010.

// ——- Licence du code de ce programme —–
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License,
//  or any later version.
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.

// ////////////////////  PRESENTATION DU PROGRAMME ////////////////////

// ——– Que fait ce programme ? ———
 /* Affiche un dégradé de couleurs sur un afficheur TFT 240 x320  */

// — Fonctionnalités utilisées —

// Utilise adaptateur pour écran MI0283QT2 240×320 pixels – 262 K couleurs

// ——– Circuit à réaliser ———

// Connexions à réaliser pour adaptateur écran MI0283QT2 240×320 pixels – 262 K couleurs
// ces connexions sont réalisées automatiquement si utilisation du circuit imprimé mSD-shield

// —– broches utilisées pour le contrôle de l’afficheur graphique
// broche CS de l’adaptateur sur la broche 7
// broche RST de l’adaptateur sur la broche 8
// broche LED de l’adaptateur sur la broche 9

// —– broches utilisées pour la communication SPI de l’adaptateur MI0283QT2
// broche SDI de l’adaptateur sur la broche 11
// broche SDO de l’adaptateur sur la broche 12
// broche SCL de l’adaptateur sur la broche 13

// /////////////////////////////// 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

// — Déclaration des constantes utiles —

// — Déclaration des constantes des broches E/S numériques —

// — Déclaration des constantes des broches analogiques —

// — Déclaration des variables globales —

int couleur=0; // variable utilisée pour la couleur
int section1=0,section2=0,section3=0; // variable pour partage écran

// — Déclaration des objets utiles pour les fonctionnalités utilisées —

MI0283QT2 lcd; // création d’un objet de type MI0283QT2 appelé lcd

// ////////////////////////// 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  240×320 pixels
lcd.init(4); //spi-clk = Fcpu/4
lcd.clear(RGB(255,255,255)); // efface ecran en blanc

//configuration écran MI0283QT2  240×320 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(50); // fixe luminosité

// ——- Broches en sorties numériques ——-  

// ——- 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()

// — ici instructions à exécuter par le programme principal —

//—– pixel central —–
int xo=lcd.getWidth()/2;
int yo=lcd.getHeight()/2;
lcd.drawPixel(xo, yo, RGB(0,0,255));

//—— 1er dégradé —-
section1=(lcd.getHeight()/3);

for (int y=0; y<=section1; y++) { // défilement des y de haut en bas

  couleur=map(y,0,section1,0,255); // rééchelonne y sur échelle de couleur 0-255
  lcd.drawLine (0,y,lcd.getWidth()1,y,RGB(couleur,0,0));

}

section2=2*(lcd.getHeight()/3);

for (int y=section1; y<=section2; y++) { // défilement des y de haut en bas

  couleur=map(y,section1,section2,0,255); // rééchelonne y sur échelle de couleur 0-255
  lcd.drawLine (0,y,lcd.getWidth()1,y,RGB(0,couleur,0));

}

section3=3*(lcd.getHeight()/3);

for (int y=section2; y<=section3+1; y++) { // défilement des y de haut en bas

  couleur=map(y,section2,section3,0,255); // rééchelonne y sur échelle de couleur 0-255
  lcd.drawLine (0,y,lcd.getWidth()1,y,RGB(0,0,couleur));

}

delay (2000);

//—— 2ème dégradé —-
section1=(lcd.getHeight()/3);

for (int y=0; y<=section1; y++) { // défilement des y de haut en bas

  couleur=map(y,0,section1,0,255); // rééchelonne y sur échelle de couleur 0-255
  lcd.drawLine (0,y,lcd.getWidth()1,y,RGB(couleur,255couleur,0));

}

section2=2*(lcd.getHeight()/3);

for (int y=section1; y<=section2; y++) { // défilement des y de haut en bas

  couleur=map(y,section1,section2,0,255); // rééchelonne y sur échelle de couleur 0-255
  lcd.drawLine (0,y,lcd.getWidth()1,y,RGB(255couleur,0,couleur));

}

section3=3*(lcd.getHeight()/3)+1;

for (int y=section2; y<=section3; y++) { // défilement des y de haut en bas

  couleur=map(y,section2,section3,0,255); // rééchelonne y sur échelle de couleur 0-255
  lcd.drawLine (0,y,lcd.getWidth()1,y,RGB(0,couleur,255couleur));

}

delay(2000);

//—— 3ème dégradé —-
section1=(lcd.getHeight()/3);

for (int y=0; y<=section1; y++) { // défilement des y de haut en bas

  couleur=map(y,0,section1,0,255); // rééchelonne y sur échelle de couleur 0-255
  lcd.drawLine (0,y,lcd.getWidth()1,y,RGB(0,couleur,couleur));

}

section2=2*(lcd.getHeight()/3);

for (int y=section1; y<=section2; y++) { // défilement des y de haut en bas

  couleur=map(y,section1,section2,0,255); // rééchelonne y sur échelle de couleur 0-255
  lcd.drawLine (0,y,lcd.getWidth()1,y,RGB(couleur,255,255couleur));

}

section3=3*(lcd.getHeight()/3)+1;

for (int y=section2; y<=section3; y++) { // défilement des y de haut en bas

  couleur=map(y,section2,section3,0,255); // rééchelonne y sur échelle de couleur 0-255
  lcd.drawLine (0,y,lcd.getWidth()1,y,RGB(255couleur,255couleur,0));

}

delay(2000);

// while(1); // stop loop

} // fin de la fonction loop() – le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

 

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.