Sparkfun RETRAS - LCD Grafic 128x64 Serial

175,00 Lei
Momentan indisponibil

Durata de livrare: 1 zi

Cod Produs: LCD-16 Ai nevoie de ajutor? 0731 007 832
  • Descriere
  • Review-uri (4)

 

Ecranul LCD Grafic Serial permite :

  • afisarea de text
  • desenare de linii, cercuri si dreptunghiuri
  • control asupra fiecarui pixel(set/reset)

 

Dispozitivul se cupleaza la Arduino prin trei fire : VCC si GND, cuplate respectiv la portul de 5 V si GND al Arduino, si un al treilea fir pentru semnalul util, fir care se cupleaza pe portul TX al Arduino.

 

 

Specificatii:

Rezolutie: 128x64

Tensiune : 6V-7V 

Curent: 220mA

Input: 0-5V 115200 bps(ajustabil), 8 data bits, 1stop bits, no parity

Dimensiuni : 7,62 X 5,08 X 1.52 cm

 

 

 

Program:

 

 

// Graphic Serial LCD 128x64
 
// Arduino Pin 8 (RX) to LCD Pin TX (NOT USED, NOT NECESSARY)
 
// Arduino Pin 9 (TX) to LCD Pin RX
 
// Arduino Pin Vin to LCD Vin (Assuming you're powering Arduino externally with 9 VDC)
 
// Arduino Pin Gnd to LCD Pin Gnd
 
 
 
 
 
void setup() {
 
  Serial1.begin(115200);
 
 
 
  clearScreen();
 
 
 
  // Set a dim display
 
  setBackgroundBrightness(1);
 
 
 
  // Note how by default it prints at upper left
 
  print("hello");
 
 
 
  // Note that 0,0 is at lower left side of display
 
  setX(5);
 
  setY(10);
 
  print("world");
 
 
 
  // Draw a big X
 
  drawLine(0, 0, 127, 63, 1);
 
  drawLine(127, 0, 0, 63, 1);
 
 
 
  // Draw a centered circle
 
  drawCircle(63, 31, 31, 1);
 
 
 
  // Draw a box in the center
 
  drawBox(31, 15, 95, 47, 1);
 
 
 
 
void loop()
 
{
 
}
 
 
 
void print(char *data){
 
  Serial1.print(data);
 
}
 
 
 
void clearScreen(){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x00));
 
}
 
 
 
void demo(){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x04)); 
 
}
 
 
 
void toggleSplashScreen(){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x13)); 
 
}
 
 
 
void setBackgroundBrightness(byte value){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x02));
 
  Serial1.write(byte(value));
 
}
 
 
 
void setBaudRate(long value){
 
  // Get the internal reference for this baud rate
 
  char *ref = " ";
 
  if(value == 4800) 
 
    ref = "1";
 
  else if(value == 9600)
 
    ref = "2";
 
  else if(value == 19200)
 
    ref = "3";
 
  else if(value == 38400)
 
    ref = "4";
 
  else if(value == 57600)
 
    ref = "5";
 
  else if(value == 115200)
 
    ref = "6";
 
  else
 
    return;
 
 
 
  // Since it often rolls back to 115200, try setting it via 115200 first
 
  Serial1.begin(115200);
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x07));
 
  Serial1.print(ref);
 
 
 
  // Now change the serial port to the desired rate, and set it again.
 
  Serial1.begin(value);
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x07));
 
  Serial1.print(ref);
 
}
 
 
 
void setX(byte value){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x18C));
 
  Serial1.write(byte(value));
 
}
 
 
 
void setY(byte value){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x19));
 
  Serial1.write(byte(value));
 
}
 
 
 
void setPixel(byte state){
 
  Serial1.write(byte(0x50));
 
  Serial1.write(byte(0x40));
 
  Serial1.write(byte(state));
 
}
 
 
 
void drawLine(byte startX, byte startY, byte endX, byte endY, byte state){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x0C));
 
  Serial1.write(byte(startX));
 
  Serial1.write(byte(startY));
 
  Serial1.write(byte(endX));
 
  Serial1.write(byte(endY));
 
  Serial1.write(byte(state));
 
}
 
 
 
void drawCircle(byte startX, byte startY, byte radius, byte state){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x03));
 
  Serial1.write(byte(startX));
 
  Serial1.write(byte(startY));
 
  Serial1.write(byte(radius));
 
  Serial1.write(byte(state));
 
}
 
 
 
void drawBox(byte topLeftX, byte topLeftY, byte bottomRightX, byte bottomRightY, byte state){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x0F));
 
  Serial1.write(byte(topLeftX));
 
  Serial1.write(byte(topLeftY));
 
  Serial1.write(byte(bottomRightX));
 
  Serial1.write(byte(bottomRightY));
 
  Serial1.write(byte(state));
 
}
 
 
 
void eraseBox(byte topLeftX, byte topLeftY, byte bottomRightX, byte bottomRightY, byte state){
 
  Serial1.write(byte(0x7C));
 
  Serial1.write(byte(0x05));
 
  Serial1.write(byte(topLeftX));
 
  Serial1.write(byte(topLeftY));
 
  Serial1.write(byte(bottomRightX));
 
  Serial1.write(byte(bottomRightY));
 
  Serial1.write(byte(state));
 
}
 

 

 

 

Linkuri:

Datasheet (Descrie protocolul de comunicatie dintre Arduino si LCD)

Codul sursa pentru controllerul lcd

Proiect Ceas USB

Tutorial : update firmware

bogdan,

se poate cumpara de la dumneavoastra si shieldul respectiv ,fara ecran?

A fost util acest review?

bogdan,

se poate folosi cu raspberry pi?

A fost util acest review?

Pif,

Am facut si eu upgrade, este destul de incurcat pentru un incepator ca mine, poate foloseste si altora, am ales solutia de la http://www.sparkfun.com/products/9351#comment-4eaad851757b7fd351008a9f cu cateva observatii: - connectorului LPT i-am unit pinii 18-25, altfel nu a vrut sa comunice - in Makefile a trebuit sa scot commentul si pentru AVRUDE_NO_VERIFY = Y, altfel primeam verification error in continuu. Acum pare intr-adevar mult mai rapid. Fiind un update asa de popular si util, chiar si neoficial, poate robofun ar putea lua in considerare posibilitatea oferirii acestui display cu noul firmware.

A fost util acest review?

Laurentiu,

Firmware-ul original este lent si plin de erori (daca ar fi sa mentionez numai imposibilitatea de a folosi CR/LF pentru a scrie pe randul urmator). Solutia pentru a avea un display complet functional este upgrade-ul de firmware si utilizarea unei biblioteci corespunzatoare. Am reusit operatiunea si acum posed un LCD excelent si complet functional, plus cateva facilitati suplimentare datorate noului firmware. Succes!

A fost util acest review?

Scrie un review


Suport clienti Magazinul este deschis luni - vineri, intre orele 11:00 si 18:00.

0731 007 832 contact@robofun.ro
close

Comparare

Trebuie sa mai adaugi cel putin un produs pentru a compara produse.

close

A fost adaugat in wishlist!