Les 16 (grafisch LCD)

Alleen lezen

Moderator: pe1br

Post Reply
pe1br
Posts: 66
Joined: Thu Apr 14, 2016 3:37 am

Les 16 (grafisch LCD)

Post by pe1br »

Het grafisch display dat we gaan gebruiken is gemonteerd op een custom printje.
Dit printje sluiten we aan op de Arduino zodat we deze via USB kunnen programmeren.
Haal de processor uit je arduino bordje en stop deze in het custom printje.

De gebruikte schermen zijn van het type ILI9341 2.4 inch, alle aansluitingen op dit display zijn 3.3 volt.
link: Link naar display

Les16-1:

Zorg er voor dat je alle voedingsspanningen los koppelt (usb niet aangesloten op de pc en geen power adapter aangesloten op de voedingsplug).
sluit de Arduino aan volgens onderstaand schema:


Voor we de software gaan laden hebben we eerst een aantal bibliotheken nodig.
Beide bibliotheken zijn in dit geval van Adafruit en heb ik toegevoegd als bijlage op deze pagina:
Adafruit-GFX-Library-master
Adafruit_ILI9341-master
Deze beide bestanden zijn in zip formaat.
Download deze bestanden en copieer de mappen in de zip file "Adafruit-GFX-Library-master" en "Adafruit_ILI9341-master" naar de map mijn documenten/Arduino/libraries/ op je computer


Start het Arduino programma en sluit de USB kabel aan.
Typ de volgende code over of kopieer deze naar de arduino ide:

Code: Select all

#include <SPI.h>                    //voeg de SPI bibliotheek toe
#include "Adafruit_GFX.h"        //voeg de Adafruit grafische bibliotheek toe
#include "Adafruit_ILI9341.h"    //voeg de Adafruit ILI bibliotheek toe

// ILI9341:
#define _cs 10                      //definieer de pinnen voor het display
#define _dc 9
#define _rst 7
Adafruit_ILI9341 tft = Adafruit_ILI9341(_cs, _dc, _rst);  ////koppel de pinnen aan het display
int black = ILI9341_BLACK;  //definieer de kleuren voor het scherm
int white = ILI9341_WHITE;
int blue = ILI9341_BLUE;
int green = ILI9341_GREEN;
int red = ILI9341_RED;
int yellow = ILI9341_YELLOW;

void setup() {
  tft.begin();                                      //Start het lcd scherm
  tft.fillScreen(black);                          //vul het scherm op in de kleur zwart
  tft.setRotation(3); //0-3                    //Stel het scherm in op horizontaal met de text boven de buttons
  tft.drawLine(10, 10, 310, 230, blue);    //teken een lijn in blauw van x10 y 10 naar x 310 y 230 in de kleur blauw
} 


void loop() {     //de loop doet in dit geval niets.
}
Als de bibliotheken goed toegevoegd zijn en de software goed geladen is zien we een blauwe lijn van coördinaten x=10 y=10 naar coordinaten x=310 y=230 over het scherm lopen.

Les16-2:

Start het Arduino programma en sluit de USB kabel aan.
Typ de volgende code over of kopieer deze naar de arduino ide:

Code: Select all

#include <SPI.h>                    //voeg de SPI bibliotheek toe
#include "Adafruit_GFX.h"        //voeg de Adafruit grafische bibliotheek toe
#include "Adafruit_ILI9341.h"    //voeg de Adafruit ILI bibliotheek toe

// ILI9341:
#define _cs 10                      //definieer de pinnen voor het display
#define _dc 9
#define _rst 7
Adafruit_ILI9341 tft = Adafruit_ILI9341(_cs, _dc, _rst);  ////koppel de pinnen aan het display
int black = ILI9341_BLACK;  //definieer de kleuren voor het scherm
int white = ILI9341_WHITE;
int blue = ILI9341_BLUE;
int green = ILI9341_GREEN;
int red = ILI9341_RED;
int yellow = ILI9341_YELLOW;

void setup() {
  tft.begin();                                      //Start het lcd scherm
  tft.fillScreen(black);                          //vul het scherm op in de kleur zwart
  tft.setRotation(3); //0-3                    //Stel het scherm in op horizontaal met de text boven de buttons
  tft.fillCircle(100, 100, 80, blue);          //vul een cirkel midden punt x 100 y 100 radius 80 in de kleur blauw
  tft.drawCircle(100, 100, 80, white);     //teken een cirkel midden punt x 100 y 100 radius 80 in de kleur wit
} 

void loop() {
 
}
Vergelijkbare code alleen dit keer tekenen we een witte cirkel en vullen deze op met een groen vlak. de coordinaten van het midden van de circel zijn x = 100 y = 100 radius = 80

Les16-3:

Start het Arduino programma en sluit de USB kabel aan.
Typ de volgende code over of kopieer deze naar de arduino ide:

Code: Select all

#include <SPI.h>                    //voeg de SPI bibliotheek toe
#include "Adafruit_GFX.h"        //voeg de Adafruit grafische bibliotheek toe
#include "Adafruit_ILI9341.h"    //voeg de Adafruit ILI bibliotheek toe

// ILI9341:
#define _cs 10                      //definieer de pinnen voor het display
#define _dc 9
#define _rst 7
Adafruit_ILI9341 tft = Adafruit_ILI9341(_cs, _dc, _rst);  ////koppel de pinnen aan het display
int black = ILI9341_BLACK;  //definieer de kleuren voor het scherm
int white = ILI9341_WHITE;
int blue = ILI9341_BLUE;
int green = ILI9341_GREEN;
int red = ILI9341_RED;
int yellow = ILI9341_YELLOW;

void setup() {
  tft.begin();                                      //Start het lcd scherm
  tft.fillScreen(black);                          //vul het scherm op in de kleur zwart
  tft.setRotation(3); //0-3                    //Stel het scherm in op horizontaal met de text boven de buttons
  tft.fillCircle(100, 100, 80, blue);          //vul een cirkel midden punt x 100 y 100 radius 80 in de kleur blauw
  tft.drawCircle(100, 100, 80, white);     //teken een cirkel midden punt x 100 y 100 radius 80 in de kleur wit
  tft.fillTriangle(240, 20, 200, 80, 280, 80, green);          //Teken een driehoek top x 240 y 20, links onder x 200 y 80, recht onder x 280 y 80 in de kleur groen
  tft.fillTriangle(240, 160, 200, 100, 280, 100, red);         //Teken een driehoek top x 240 y 160, links boven  x 100 y 280, rechts boven x 280 y 100 in de kleur rood   
  tft.setCursor(40, 200);                                            //bepaal de positie van de text (x 40 y 200)
  tft.setTextColor(white);                                          //bepaal de kleur van de text (wit)
  tft.setTextSize(2);                                                 //bepaal de grote van de text
  tft.println("Marco PE1BR");                                      //de text zelf
  
} 

void loop() { //de loop doet in dit geval niets
 
}
Dezelfde circel als in les 16-2 maar nu met tekst er onder, de tekst kleur is wit en de tekst grootte is 2, ook hebben we 2 driehoeken getekend in de kleuren groen en rood.
Probeer de x en y waardes de kleuren en de tekst grootte te wijzigen zodat je bekend raakt met deze manier van tekenen op een lcd scherm.

Op deze link http://wiki.microduinoinc.com/TFT_ST7735_Syntax_Manual vind je alle mogelijke figuren en de bijbehorende software om deze te tekenen (Deze software is voor een ander type scherm maar de tft. commando's kloppen wel).
Probeer een aantal van deze figuren in je eigen code te verwerken.

In de volgende les gaan we nog verder in op de mogelijkheden van het schrijven naar het grafisch LCD scherm.
Attachments
Adafruit_ILI9341-master.zip
(38.25 KiB) Downloaded 1255 times
Adafruit-GFX-Library-master.zip
(296.23 KiB) Downloaded 1203 times
les16-1.jpg
(141.63 KiB) Not downloaded yet
Post Reply