Forskel mellem versioner af "Prog Shield Display"

Fra Holstebro HTX Wiki
Skift til: navigering, søgning
(Referencer)
(Yderligere muligheder i softwaren)
 
Linje 42: Linje 42:
  
 
===Yderligere muligheder i softwaren===
 
===Yderligere muligheder i softwaren===
Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende tastaturet på:
+
Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende displayet på:
 
<source lang="C">
 
<source lang="C">
 
   LiquidCrystal(uint8_t rs, uint8_t enable,
 
   LiquidCrystal(uint8_t rs, uint8_t enable,

Nuværende version fra 15. aug 2019, 14:11

Et løst display til Prog-shieldet

Displayet der kan tilsluttes har vi i 2 linjers version med 16 karakterer i hver linje. Det kan fås i større versioner fx 4x20, men det er ikke noget vi har mange af.

Software

Sotwaren ligger som en standard del af Arduino PC-software i biblioteket LiquidCrystal, og er beskrevet på Arduinos hjemmeside[1].

Anvendelsen af softwaren

I starten skal biblioteket indlæses og der skal oprettes et objekt af klassen LiquidCrystal, der definerer hvordan benene er tilsluttet displayet. som vist her:

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(13, 12, 7, 6, 5, 4);

Inde i setup() skal der sættes gang i objektet ved hjælp af begin-metoden som vist her, der definerest at det er 2 linjer med 16 karakterer:

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
  delay(2000);
}

For sjov udskrives en hello world besked.

Inde i loop() kan man printe forskelligt til LCD-displayet

void loop() {
  lcd.setCursor(0, 0);
  lcd.print(”text”);
  lcd.setCursor(0, 1);
  lcd.print(tal);
  tal++;
  delay(300);
}

Det er her vigtigt at displayet får tid til at reagere, derfor opdateres kun ca. 3 gange i sekundet.

Yderligere muligheder i softwaren

Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende displayet på:

  LiquidCrystal(uint8_t rs, uint8_t enable,
		uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
		uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
		uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
		uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
		uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
  LiquidCrystal(uint8_t rs, uint8_t enable,
		uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);

  void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
	    uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
	    uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
    
  void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);

  void clear();
  void home();

  void noDisplay();
  void display();
  void noBlink();
  void blink();
  void noCursor();
  void cursor();
  void scrollDisplayLeft();
  void scrollDisplayRight();
  void leftToRight();
  void rightToLeft();
  void autoscroll();
  void noAutoscroll();

  void setRowOffsets(int row1, int row2, int row3, int row4);
  void createChar(uint8_t, uint8_t[]);
  void setCursor(uint8_t, uint8_t); 
  virtual size_t write(uint8_t);
  void command(uint8_t);
  
  using Print::write;

Hardware

Displayet er tilslutte et 16 polet hun-stik, og hvis der ikke er loddet et 16 pins han-stik på displayet, så skal det gøres.

Displayet SKAL selvfølgelig sættes rigtigt i stikket, og lad være med at tilslutte det mens der er strøm på - displayet kan brænde af ved det.

Der kommunikeres med displayet via 6 ben. Der er 4 databen, RS og EN - biblioteket sørger for at pakke data sammen, så det kommer rigtigt ind til displayet.

Ved siden af displayet sidder et potentiometer R2, hvor man kan justere kontrasten på displayet, så det viste bliver læseligt.

Layout

Displayets placering på programmerings-shieldet kan ses her:
Layout-display.png
2x16 karakters display placeret på Shieldet

Referencer