Modelosdisplay

Display LCD serial I2C 2004 com interface destacável

Teste básico de funcionamento:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <Wire.h>;
#include <LiquidCrystal_I2C.h>;
//Aqui definimos endereço, número de colunas e linhas
LiquidCrystal_I2C lcd(0x27,20,4);
void setup()
{
  lcd.init();  
  
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Linha zero 123456789");
    lcd.setCursor(0, 1);
  lcd.print("Linha um   123456789");
    lcd.setCursor(0, 2);
  lcd.print("Linha dois 123456789");
    lcd.setCursor(0, 3);
  lcd.print("Linha tres 123456789");
}
void loop()
{
}
Postado em Sem categoria | Tags:  | Deixe um comentário (responderei para o seu e-mail)

Display LCD serial I2C 1602 com interface destacável

Precisando de pinos livres extras no seu projeto ou passar um cabo com uma dúzia de fios até o LCD está te incomodando?
  • Display serial completo. Só requer alimentação de 5V e dois fios para o bus I2C. Responde no endereço 0x27 (interface vermelha) e 0x20 (interface preta);
  • Como se trata de I2C, que é um bus (compartilhado por natureza), podemos até dizer que não ocupa pino nenhum;
  • Controle de contraste via trimpot integrado;
  • Backlight pode ser desligado/ligado com comandos de software;
  • Compatível com qualquer microcontrolador que possa se comunicar por I2C, mas somente dou suporte ao Arduino;
  • Compatível com a biblioteca LiquidCrystal_I2C do Arduino;
  • Interface destacável. Você pode usá-la em qualquer display que tenha o mesmo pinout (veja pinout na foto abaixo);
  • Posso fornecer o produto na forma de kit, sem headers soldados.
Instruções de uso
O display funcionará igualmente com o Arduino Uno/Duemilanove ou Mega sem modificações nos sketches, mas atente para o fato de que o bus i2c fica em pinos diferentes em cada modelo:
  • No Uno/Duemilanove: Pinos analógicos A4 e A5
  • No Mega: Pinos 20 e 21
O display é compatível com o modelo da DFROBOT. Baixe esta biblioteca (supostamente compatível com IDE 1.0 e 0.2x,mas só testei com 0.22), descompacte no diretório libraries (certifique-se de que os arquivos fiquem em libraries/LiquidCrystal_I2C) e rode o exemplo LiquidCrystal_I2C -> Custom Chars.
Todos os displays são testados por mim e saem com o contraste ajustado, mas se por acaso você mexer no trimpot e a imagem não estiver mais aparecendo, gire o trimpot nos dois sentidos até que apareça. Um ajuste incorreto não danificará o display, por isso pode mexer à vontade.
Cópia local da biblioteca:
LiquidCrystal_I2C
LiquidCrystal_I2C
LiquidCrystal_I2Cv1-1.rar
Version: 1.1
15.5 KiB
107 Downloads
Detalhes...
Postado em Sem categoria | Tags:  | 1 Comment

LCD Gráfico 128×64 (12864) compatível com ST7920

Fundo azul e letras cinzentas.
Compatível com o modelo FIT0021 da DFrobot
A visibilidade deste display não é muito boa. A escolha da cor de fundo e cor das letras não oferece um constraste muito bom.
Este display pode ser operado em dois modos: paralelo e serial. O Arduino tem velocidade suficiente para a operação serial, que economiza muitas conexões: apenas três saídas digitas são necessárias.
Compatível com a biblioteca u8glib. Para operação no modo serial, abra o exemplo GraphicsTest  e “descomente” a linha:
//U8GLIB_ST7920_128X64 u8g(18, 16, 17, U8G_PIN_NONE);
O exemplo acima requer um Arduino Mega, mas se quiser usar um Arduino UNO:
U8GLIB_ST7920_128X64 u8g(3, 9, 8, U8G_PIN_NONE);                  // E: D3, RS: D8 e R/W:D9
É só um exemplo. Você é livre para escolher que pinos usar
Os exemplos Chess , “F” (sequer compilou) e menu não funcionaram comigo, nem no Duemilanove, nem no Mega.
Exemplos retirados do demo GraphicsTest:
Você também pode usar o demo da DfRobot. Imagem retirada dele:
Ao usar o demo GraphicsTest a imagem parecerá estar “de cabeça para baixo”. É normal.
Abaixo, cópias locais de alguns arquivos (links gerados automaticamente).
Postado em Sem categoria | Tags:  | Deixe um comentário (responderei para o seu e-mail)

Módulo display LCD 1602 serial I2C / TWI e SPI

Baseado em chip MCP23008. Endereço I2C default: 0×0, mas configurável com jumpers de solda. Este é o modelo fabricado pela Elecfreaks, que é uma variação do modelo da Adafruit
É necessário remover a biblioteca liquidcrystal e instalar a fornecida.
Backlight
O backlight pode ser controlado pelo software. Procedure setBacklight () da biblioteca.
Postado em Sem categoria | Tags:  | Deixe um comentário (responderei para o seu e-mail)

Módulo display LCD 1602 serial I2C / TWI

Baseado em chip Philips PCF8574.
Endereço I2C: 0x27
Compatível com o modelo da DFROBOT. Biblioteca e exemplos:
http://www.robotshop.com/ProductInfo.aspx?pc=RB-Dfr-69
Backlight
O backlight pode ser controlado pelo software. Procedures backlight() e   noBackligth() da biblioteca.
O jumper serve para o controle externo do backlight. Com o jumper no lugar o backlight fica permanentemente ativo. Retirando o jumper, você pode conectar uma saída do microcontrolador para o controle do backlight.

Sensor de distância ultra-sônico (ultra-som) HC-SR04

sensor_ultra-som_HC-SR04_IMG_1849_640_automalabs.com.br
sensor_ultra-som_HC-SR04_IMG_1864_640_automalabs.com.br
Este sensor não funciona se o shield Wiznet estiver plugado, mesmo que nenhuma biblioteca seja ativada.
sketch de teste
Requer Shield com keypad e display 1602
Exemplo testado com Arduino 1.05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Jefferson Ryan - Automalabs.com.br
// Baseado em script de: luckylarry.co.uk
// Este sketech também demonstra o uso de Running Average.
#include <LiquidCrystal.h>
//Esta linha é específica para o display do shield com keypad
//se seu display for diferente você pode precisar mudar
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
// variables to take x number of readings and then average them
// to remove the jitter/noise from the SRF05 sonar readings
const int qtdeLeituras = 10;                   // number of readings to take/ items in the array
int leituras[qtdeLeituras];                    // stores the distance readings in an array
int indice = 0;                             // arrayIndex of the current item in the array
int total = 0;                                  // stores the cumlative total
int distanciaMedia = 0;                        // stores the average value
// setup pins and variables for SRF05 sonar device
int echoPin = 2;                                // SRF05 echo pin (digital 2)
int triggerPin = 3;                                // SRF05 trigger pin (digital 3)
unsigned long tempoPulso = 0;                    // stores the pulse in Micro Seconds
unsigned long distancia = 0;                     // variable for storing the distance (cm)
void setup() {
lcd.begin(16, 2);
lcd.clear();
pinMode(triggerPin, OUTPUT);                     // set init pin 3 as output
pinMode(echoPin, INPUT);                      // set echo pin 2 as input
// create array loop to iterate over every item in the array
for (int estaLeitura = 0; estaLeitura < qtdeLeituras; estaLeitura++) {
leituras[estaLeitura] = 0;
}
}
void loop() {
digitalWrite(triggerPin, HIGH);                    // send 10 microsecond pulse
delayMicroseconds(10);                  // wait 10 microseconds before turning off
digitalWrite(triggerPin, LOW);                     // stop sending the pulse
tempoPulso = pulseIn(echoPin, HIGH);             // Look for a return pulse, it should be high as the pulse goes low-high-low
distancia = tempoPulso/58;                        // Distance = pulse time / 58 to convert to cm.
total= total - leituras[indice];           // subtract the last distance
leituras[indice] = distancia;                // add distance reading to array
total= total + leituras[indice];            // add the reading to the total
indice = indice + 1;                    // go to the next item in the array
// Ao chegar ao fim da matriz, voltamos a preencher do inicio
if (indice >= qtdeLeituras)  {
indice = 0;
}
distanciaMedia = total / qtdeLeituras;      // calculate the average distance
String myString = String(distanciaMedia, DEC);
myString +=" cm";
char charBuf[10];
//apago o conteúdo do array. Sem isso as leituras ficam completamente malucas,
//porque "toCharArray" não faz isso.
memset(charBuf, 0, sizeof(charBuf));
myString.toCharArray(charBuf, 10);
lcd.clear();
lcd.setCursor(1, 0);
lcd.print(charBuf);
// Serial.println(averageDistance, DEC);
/*Se o delay for muito baixo (10, por exemplo), alguns exemplares
sensores irão apresentar alta instabilidade a curtas distâncias
*/
delay(50);
}

Módulo TFT
Shield adaptador
Conjunto montado
Aparência do módulo ligado, rodando o demo. Na foto abaixo eu mostro um modelo azul, mas o modelo ofertado neste anúncio é vermelho.
O kit vermelho está no fim. Novos compradores deverão receber o kit azul. Funcionalmente é a mesma coisa.
Shield_Adaptador_TFT_IMG_1182_640_automalabs.com.br
É importante ter em mente que o display, a touchscreen e o leitor de cartões são independentes. Você pode testar cada um separadamente.
O que se segue está desatualizado e vou manter aqui porque pode ser útil caso você precise adaptar um programa antigo
Bibliotecas necessárias:
Com estas bibliotecas instaladas, seus exemplos funcionam com este kit sem maiores modificações, exceto talvez a calibração do touchscreen. Mas atente para o fato de que os demos vem ajustados para o Arduino UNO e se você estiver usando um Mega precisará comentar uma linha e “descomentar” outra. Cada sketch de demo mostra qual é.
Se a calibração da touchscreen não funcionar, leia as instruções (desatualizadas) a seguir, pois eu explico como resolver isso.
O que se segue está desatualizado e vou manter aqui porque pode ser útil caso você precise adaptar um programa antigo
Bibliotecas necessárias:
UTFT
http://www.henningkarlsen.com/electronics/library.php?id=51
ITDB02_Touch
http://www.henningkarlsen.com/electronics/library.php?id=55
Nota: ITDB02_Touch mudou recentemente para outra biblioteca. Talvez você tenha que fazer adaptações. Por isso estou mandando em anexo as versões que eu uso.

Para testar o display
 (sem o touchscreen)
Abra o exemplo UTFT->Arduino->UTFT_Demo_320x240
Substitua essas quatro linhas (inclui comentários):
// Uncomment the next line for Arduino 2009/Uno
UTFT myGLCD(ITDB32S,19,18,17,16);   // Remember to change the model parameter to suit your display module!
// Uncomment the next line for Arduino Mega
//UTFT myGLCD(ITDB32S,38,39,40,41);   // Remember to change the model parameter to suit your display module!
por:
UTFT myGLCD(ITDB32S,38,39,40,41);
Execute o teste
TouchscreenO sketch exemplo de calibração da biblioteca não funciona.
Eu já testei com várias telas e nunca funcionou. É preciso editar ITDB02_Touch.cpp para fazer a calibração.Você precisa editar o arquivo:
libraries\ITDB02_Touch\ITDB02_Touch.cppSubstitua os quatro primeiros parâmetros por isto:
#define PixSizeX    -16
#define PixOffsX    206
#define PixSizeY    11
#define PixOffsY    380
Feche o IDE se estiver aberto e abra de novo, para validar a modificação.Abra o exemplo ITDB02_Touch->ITDB02_Touch_ButtonTestSubstitua
#include <ITDB02_Graph.h>
por
#include <UTFT.h>
Substitua:
// Uncomment the next two lines for the ITDB02 Shield
ITDB02        myGLCD(19,18,17,16);
ITDB02_Touch  myTouch(15,10,14,9,8);
// Uncomment the next two lines for the ITDB02 Mega Shield
//ITDB02        myGLCD(38,39,40,41);   // Remember to add ASPECT_16x9 if you are using an ITDB02-3.2WC!
//ITDB02_Touch  myTouch(6,5,4,3,2);
por:
UTFT myGLCD(ITDB32S,38,39,40,41);  // Remember to add ASPECT_16x9 if you are using an ITDB02-3.2WC!
ITDB02_Touch  myTouch(6,5,4,3,2);
Compile e teste.
Coordenadas da touchscreen invertidas
Se rodando o exemplo Button Test, ao aperter um botão for acionado outro na outra extremidade, é porque o digitalizador apresenta coordenada X invertida
Troque (no sketch exemplo):
x=myTouch.getX();
por:
x=320-myTouch.getX();