LusoRobótica - Robótica em Português

Robótica => Tutoriais => Tópico iniciado por: joaoamaral em 31 de Maio de 2009, 14:11

Título: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 31 de Maio de 2009, 14:11
Olá a todos, estou de volta após ter estado uns meses bastante ocupado... :\

Arranjei 2 LCDs que vi aqui (http://cgi.ebay.de/LCD-Display-HD44780-2x16-Black-chr-16x2-White-Backlight_W0QQitemZ170335912085QQcmdZViewItemQQptZBauteile?hash=item27a8cfc095&_trksid=p3286.c0.m14&_trkparms=72%3A1229|66%3A2|65%3A12|39%3A1|240%3A1318|301%3A1|293%3A1|294%3A50)

Mandei vir directamente 2 (para compensar os portes) através do skype/paypal e a sra. do outro lado foi impecável! :) Ficou-me praticamente a 6€ cada um já com os portes , mas só preciso de 1 por isso se alguém quiser comprar um a este preço com backlight laranja diga-me :)

Mas como ia a dizer estou a fazer um tutorial para a Lusorobótica mas deparei com alguns problemas....

Consegui ligar o LCD (ver photo (http://www.flickr.com/photos/luxifer/3580866695/))...

Depois tentei usar a biblioteca default lcd do arduino a 4 e 8 bits mas não funcionou.
Fui então buscar a biblioteca de 4bits (http://www.arduino.cc/playground/Code/LCD4BitLibrary) e usei o código default (após modificar os pinos no source da biblioteca).

O LCD é um YM-1602C (controler the same as HD44780) e até está listado como um compatível no link acima da arduino.cc

PDF: http://www.zyscom.pl/katalog/ym1602c.pdf (http://www.zyscom.pl/katalog/ym1602c.pdf)

Os cabos estão bem ligados... podem é não ter bons contactos porque não estão soldados... não sei soldar... nem tenho ferro de soldar (boa compra em conjunto?)

Ele até imprime algumas coisas (parece kanji... na volta até é!! :O )

Será que alguém tem experiência com isto ou que tenha alguma ideia para por aquilo a funcionar?
O meu próximo passo será talvez escrever uma biblioteca para a arduino de raiz...

Não acho que tenha nada a ver mas... estou a usar o IDE 015 no Ubuntu 9.04

Já agora aproveito para dizer que vem aí em breve um novo tutorial (estou só a dar umas afinações finais): Ikea Fado Lamp Hack ;) básicamente é uma combinação de mood lamp quando apenas ligada ao power e Gmail Notifier quando ligado por USB com o uso de 3 Leds de Alto Brilho (R, G, B) ou 1 RGB (o tutorial mostra das duas formas) é tudo muito básico mas diverti-me imenso a fazer aquilo. Tirando o candeeiro do ikea o resto do material veio da SparkFun que é espetacular, adoro mandar vir coisas de lá! :)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg136.imageshack.us%2Fimg136%2F9153%2Fesquemalcd.png&hash=cdfcc9d266aa59e035e5d13516ef59c91d419f68)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 31 de Maio de 2009, 14:15
bom post :)

podes reservar o lcd pra mim? :P ando ha procura de 1, mas tem de ter uma certa medida e ainda nao vi se esse tem :P

Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 31 de Maio de 2009, 15:01
obrigado. ainda nao esta a funcionar... espero conseguir em breve... provavelmente com a vossa ajuda.

tens as dimensoes no pdf em cima se quiseres alguma foto mais pormenorizada diz

alguem tem alguma ideia do que estou a fazer mal? eu devia ter soldado o lcd aos pinos nao é?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 31 de Maio de 2009, 17:40
Oh fifas.. ve la se ficas com isso, senao eu  sou o proximo cliente..

Um abraço
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 01 de Junho de 2009, 22:11
Quanto ao ligar o lcd, uma vez tambem tentei ligar um "compativel" com o HD44780 e simplesmente nao aparecia nada....depois desisti e pensei que o lcd estivesse estragado....

noutro dia liguei-o a uma pic e ele funcionou....agora estou a ligar outra vez ao arduino mas sem sucesso tambem :P

ps: quanto ao teu proximo tutorial...penso que sei o que vais fazer...eu fiz parecido, mas em vez da lampada do ikea utilizei uma bola de ping-pong (ténis de mesa)...lol ;D

EDIT: nao percebi o que faz aquela resistencia na linha dos 5V  ???
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Njay em 01 de Junho de 2009, 22:31
João, eu não perdia mais tempo sem antes soldar uns fios ao LCD. Sem serem soldados (do lado do LCD, que é o lado que é difícil fazer contacto pois não está preparado para isso) não me parece que vás conseguir obter bons resultados (a não ser com uns fios que há com umas pinças pequenas nas pontas).
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 01 de Junho de 2009, 23:30
oi! :D obrigado pelas respostas... sim estou mesmo  a precisar de ajuda lol por isso quem ficar com o lcd já sabe que (se não se importar) vai investigar esta matéria comigo :)

os LCDs são bons e baratos é mesmo só pô-los a funcionar com o arduino e já estive mais longe. se não escrevesse nada mas até escreve qq coisa e ate ja cheguei a ver letras latinas mas só com LCD4Bit library.

@fifas eu coloquei a resistencia porque diz para usarem no maximo 3.0mA de corrente e nestas coisas prefiro a menos do que a mais (e era a resistencia q tinha à mão maior que 1.667Kohms)

http://www16.wolframalpha.com/input/?i=5volts+3mA (http://www16.wolframalpha.com/input/?i=5volts+3mA)

quer dizer isto se estou a fazer bem as contas... nao percebo muito de electronica para ser sincero
nao tenho PIC se calhar devia... como entrei neste mundo pela arduino quero fazer tudo por lá, lol mas estou a ver que nem sempre é a melhor opção

boa idea lool a bola de ping pong muito mais barata (escusa de ter estrago o candeeiro do ikea) e difunde bem a luz tambem, mas sim é isso mesmo é um mood lamp e gmail notifier é giro :D juntei varias coisas que saquei da net

@Njay boa ideia a das pinças... tipo cabos de crocodilo não é? se não forem muito caros acho que alinho nisso porque acho que tem muito a ver com o mau contacto. mas tenho q começar a soldar alguma vez... ainda tenho ali a protoshield da sparkfun à espera do mesmo...

vou ver com mais calma a thread onde aconselham sobre ferro de soldar...
a minha ideia é pegar numa regua de 16 pinos destes  (http://www.sparkfun.com/commerce/product_info.php?products_id=116)e soldar com a parte mais comprida para baixo para poder por numa breadboard

muito obrigado por me ajudarem. adoro a lusorobotica, que me atenua bastante a frustração de nao conseguir por o lcd a escrever...

a ver se depois destas duas coisas dou um jeito ao cabeçalho com o logo e ao avatar do TigPT.
estava aqui com uma ideias para as tshirts e para um botao para o blogs/sites dos nossos membros depois envio tambem
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Njay em 01 de Junho de 2009, 23:39
Ainda não consegui perceber onde é que vêm a resistência nos 5V...

Não são bem as "garras crocodilo" (ou garra jacaré como é chamado no Brasil). Há umas mais pequenas e mais "fracas", são umas pinçazinhas piriris. Vou ver se arranjo uma foto e já ponho aqui.

Se não arranjares os pinos aí localmente contacta-me que eu arranjo-tos baratinhos ;)

Actualização: Vê nesta foto do meu DC-DC boost, há 2 pinças dessas no canto inferior esquerdo, uma amarela e uma verde (e por acaso também estão 2 garras crocodilo na foto, pretas, uma ao lado das pequenas e outra no canto superior direito):

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg228.imageshack.us%2Fimg228%2F6321%2Fboostprototype.jpg&hash=6359f2cdd38d56bb22b2899e4b257cd7b636c78e)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 01 de Junho de 2009, 23:54
Está aqui na foto (http://www.flickr.com/photos/luxifer/3580866695/) mas para ser sincero não sei se estou a fazer bem.

Os pinos felizmente tenho, também aparecem na foto mas sem os soldar não obtenho bom contacto.

Agora estou a ver se descubro onde compro o ferro JBC que o Fifas disse na thread dos ferros de soldar e se aprendo a soldar com uns videos da net lol

Realmente essas pinças são bem mais pequenas que os crocodilos mas acho que vou mesmo para a aventura de soldar :D a nao ser que achem que faço mal
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 02 de Junho de 2009, 00:02
o que estava a dizer da resistencia é que da maneira que tens ligada estas a "shuntar" os dois pinos da resistencia.....ou seja, ela nao esta la a fazer nada :P

o ferro lembro-me de um colega meu ter comprado um na aquario (www.aquarionet.com (http://www.aquarionet.com))
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 02 de Junho de 2009, 00:13
Boa! Sou mesmo nabo  :-\ nem a porcaria de uma resistência sei ligar... entao devia estar com uma perna nos 5V e outra no Gnd?

Era este  (http://www.aquarionet.com/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=14765&category_id=201&option=com_virtuemart&Itemid=71)a que te referias Fifas?

É para comprar com ponta R-10 D?

Acho que a Dimofel  (http://www.catalogo.dimofel.pt/catalogue/index.php?action=detailFo&id=9155&backLink=%2Fcatalogue%2Findex.php%3Faction%3DlistFo%26catId%3D96) tb tem... não sei é a que preço... e o que me mandaste é mais giro com o cabo preto e tal lol

30€ ainda é um pouco com os portes achas que um mais barato servia ou... este vale mesmo a pena? :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Njay em 02 de Junho de 2009, 00:16
Está aqui na foto (http://www.flickr.com/photos/luxifer/3580866695/) mas para ser sincero não sei se estou a fazer bem.

Ah, já vi :). Sim, como diz o Fifas, essa resistência não está lá a fazer nada, tem as patas curto-circuitadas ( = shuntadas, ligadas). Mas é mesmo assim que deve ser, o LCD tem que ser alimentado por uma tensão sem resistências a limitar a corrente; o próprio LCD é que "decide" quanta corrente puxa da fonte de alimentação. Os 3mA que viste devem ser o consumo (o que o LCD puxa, em média, da fonte de alimentação), e não um valor a que deves limitar.

Os pinos felizmente tenho, também aparecem na foto mas sem os soldar não obtenho bom contacto.

Agora estou a ver se descubro onde compro o ferro JBC que o Fifas disse na thread dos ferros de soldar e se aprendo a soldar com uns videos da net lol

Realmente essas pinças são bem mais pequenas que os crocodilos mas acho que vou mesmo para a aventura de soldar :D a nao ser que achem que faço mal

Acho que fazes bem aprender a soldar. Primeiro treinas um bocado num pedaço qualquer de PCB e pronto. Compra um ferro baratucho que tenha uma ponta pequena e cerca de 25W, no máximo 30W. Tenho um que me custou 3€ na Dimofel e usei-o muito tempo. É suficiente para começar. Os JBC costumam ser carotes. Agora tenho este (http://www.aquarionet.com/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=7681&category_id=111&option=com_virtuemart&Itemid=71) e é porreiro, de ponta "fina".
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 02 de Junho de 2009, 00:20
o ferro é mesmo esse....a ponta nao sei mas penso que seja essa tambem :)

o meu ainda é dos vermelhos :P o preto e bem mais bonito....

já tive alguns mais baratos...só 2 que tive se assemelhavam ao jbc a soldar...mas duraram muito pouco.....com o calor avariavam (lol). Mesmo agora, que tenho a estaçao de soldar, muitas vezes prefiro soldar com o jbc :P

Cumprimentos
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 02 de Junho de 2009, 00:29
Mais uma vez obrigado pela ajuda!! :D Valeu mesmo já estou outra vez entusiasmado para pegar nisto!

Então para já vou experimentar encontrar o mais barato na Dimofel com 25W e ponta fina para soldar a 3€ era fantástico, só quero mesmo começar e mais tarde arranjarei um jbc de certeza (que é bem bonito para um ferro de soldar) :)

Então compro o ferro e que tipo de solda? ou só há um tipo?

Ainda bem que não é preciso resistencia no lcd porque se fosse visto isto já tinha queimado tudo...
Aqui diz (no PDF que também está em cima) Supply Current: Typ. 2.0 Max. 3.0 mA



Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: TigPT em 02 de Junho de 2009, 00:32
Costumo utilizar solda 40-60. São as percentagens de resina e estanho se não estou em erro.
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 02 de Junho de 2009, 00:41
Então amanhã ou quarta dou um salto à dimofel para arranjar
- ferro de soldar 25W ponta fina (3€ se tiverem)
- solda 40-60

Obrigado, dou notícias em breve desta aventuga :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 02 de Junho de 2009, 08:45
O que acham deste kit (http://www.mauser.pt/catalog/product_info.php?cPath=115_318_476&products_id=47121) a 9,95€?

Estive a ver no site da JBC e encontrei um outro ferro de soldar ainda mais pequeno e com ponta mais fina o 14s mas só tem 11W

http://www.jbctools.com/index.php?option=com_content&view=article&id=217&Itemid=253 (http://www.jbctools.com/index.php?option=com_content&view=article&id=217&Itemid=253)

Como só me vou dedicar a microelectrónica acham que é mais adequado? ou o outro é melhor em termos de qualidade preço?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: TigPT em 02 de Junho de 2009, 12:16
O que acham deste kit (http://www.mauser.pt/catalog/product_info.php?cPath=115_318_476&products_id=47121) a 9,95€?

Estive a ver no site da JBC e encontrei um outro ferro de soldar ainda mais pequeno e com ponta mais fina o 14s mas só tem 11W

http://www.jbctools.com/index.php?option=com_content&view=article&id=217&Itemid=253 (http://www.jbctools.com/index.php?option=com_content&view=article&id=217&Itemid=253)

Como só me vou dedicar a microelectrónica acham que é mais adequado? ou o outro é melhor em termos de qualidade preço?
Não estou muito por dentro dos ferros para te aconselhar, espera pela dica de outros, contudo digo-te já que não consigo abrir o primeiro link, vê se está mesmo correcto ;)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 02 de Junho de 2009, 12:57
eu consigo abrir :)

Parece-me bom para alguém que se esta a iniciar....já trás quase tudo o que precisas, o que é bom. No entanto nao te sei dizer se o ferro é bom ou não :P

Quanto ao JBC 14S, já estive com um na mão e é muito bom (pequeno e fino), mas nunca soldei com nenhum por isso nao te poderei dizer s é melhor ou não....mas se te vais dedicar a microeletronica, deve ser bem melhor ;)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 02 de Junho de 2009, 13:06
Fui um bocado impaciente... acabei mesmo por comprar aquele do link (a mim esta a funcionar bem)... como era barato e tinha tudo... atirei-me de cabeça... espero ter feito uma boa opção...

Bastou-me utilizar a biblioteca padrão do Arduino, a LiquidCrystal.h

Os resultados foram muito mas mesmo muito positivos! :D Funcionou à primeira!!!

Pelos vistos bastava soldar... aqui têm uma foto.


(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm4.static.flickr.com%2F3305%2F3589035232_aea5dfeb55.jpg&hash=2a503895ce0721d6ec838c5900324246f043c4a9)
 (http://www.flickr.com/photos/luxifer/3589035232/)

Foi a primeira coisa que soldei, não sei se ponta é pequena o suficiente ou se sou eu que sou nabo... acho que é as duas coisas.

O código utilizado:

Código: [Seleccione]
#include <LiquidCrystal.h>

// LiquidCrystal display with:
// rs on pin 12
// rw on pin 11
// enable on pin 10
// d4, d5, d6, d7 on pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
void setup()
{
  // limpa o ecra
  lcd.clear();
  // setCursor(coluna [0-15], linha [0-1])
  lcd.setCursor(0,0);
  lcd.print("hello, world!");  
  lcd.setCursor(0,1);
  lcd.print("lusorobotica.com");  
  delay(2000);
}

void loop()
{
}

Como já disse tenho um igual mas com backlight laranja/ambar ficou-me a 6€ cada LCD (já com portes).
Tenho em conta o preço, a qualidade do LCD e o resultado aconselho vivamente!

Abraço a todos e obrigado pela ajuda!
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 02 de Junho de 2009, 13:28
parabens :)


quanto ao outro lcd, fala com o jorge_rc :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 02 de Junho de 2009, 15:19
Muito bem entao..

Vou mandar pm para acertarmos as coisas...


Um abraço
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 02 de Junho de 2009, 15:28
tás a vender lcds desses, é? :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 02 de Junho de 2009, 16:10
nao, lol  ;D  mas se quiserem consigo arranjar mais

como estou satisfeito com o meu :) é compativel com HD44780 e nao encontrei nenhuma loja que os tivesse (a preco acessivel pelo menos) estou so a partilhar ;)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 02 de Junho de 2009, 16:12
é k por esse preço era capaz de ficar com um ou dois.. :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 02 de Junho de 2009, 16:22
infelizmente so tenho mesmo mais 1, (quer dizer tinha, q em principio o jorge_rc ficou com ele)
mas se mais gente quiser pode-se fazer um compra em conjunto
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Ricardo_91 em 02 de Junho de 2009, 17:07
força nisso
se pedirem eu também fico com um
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 02 de Junho de 2009, 17:27
se calhar o melhor é criar uma nova thread nas compras em conjunto: vejam este topico (http://lusorobotica.com/index.php/topic,925.msg8413.html)

prototipo relogio para o LCD :)

Código: [Seleccione]
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);


// LiquidCrystal display with:
// rs on pin 12
// rw on pin 11
// enable on pin 10
// d4, d5, d6, d7 on pins 5, 4, 3, 2
  
  int testchar=0;
  int second;
  int minute;
  int hour;
  
  int day;
  int dayofweek; // Sunday is day 0
  int month;     // Jan is month 0
  int year;      // the Year minus 1900  
  //char* dayofweekStrings[]={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday","Saturday"};
  //char* monthStrings[]={"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
  
  char* dayofweekStrings[]={"Dom", "Seg", "Ter", "Qua", "Qui","Sex","Sab"};
  char* monthStrings[]={"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"};
  

void setup()
{
  second=0;
  minute=30;
  hour=17;
  
  day=2;
  dayofweek=2; // Sunday is day 0
  month=5;     // Jan is month 0
  year=2009;      // the Year minus 1900  
  
}

void loop()
{
  // limpa o ecra
  lcd.clear();
  // setCursor(coluna [0-15], linha [0-1])
  lcd.setCursor(0,0);
  if(hour<10){lcd.print("0");lcd.print(hour);}else{lcd.print(hour);}
  lcd.print(":");
  if(minute<10){lcd.print("0");lcd.print(minute);}else{lcd.print(minute);}
  lcd.print(":");
  if(second<10){lcd.print("0");lcd.print(second);}else{lcd.print(second);}
  lcd.print("  ");
  lcd.print(testchar);
  lcd.print(" ");
  lcd.print(byte(testchar));
  if(testchar<256){testchar++;}else{testchar=0;}
 
  lcd.setCursor(0,1);
  lcd.print(dayofweekStrings[dayofweek]);
  lcd.print(", ");
  lcd.print(day);
  lcd.print(" ");
  lcd.print(monthStrings[month]);
  lcd.print(" ");
  lcd.print(year);

  delay(500);

  
  
  static unsigned long lastTick = 0; // set up a local variable to hold the last time we moved forward one second
// (static variables are initialized once and keep their values between function calls)
// move forward one second every 1000 milliseconds

if (millis() - lastTick >= 1000) {
lastTick = millis();
second++;

}

// move forward one minute every 60 seconds
if (second >= 60) {
minute++;
second = 0; // reset seconds to zero
}

// move forward one hour every 60 minutes
if (minute >=60) {
hour++;
minute = 0; // reset minutes to zero
}

if (hour >=24) {
hour=0;
minute = 0; // reset minutes to zero
day++;
dayofweek++;
}

if (dayofweek >= 7){
dayofweek=0;
}


}
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: metRo_ em 02 de Junho de 2009, 20:32
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm4.static.flickr.com%2F3308%2F3580866695_069c61cba0.jpg%3Fv%3D0&hash=bb63e93fa7f620a793ed239016d32fdc032b4274)

Aquela resistência está ali porque?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 02 de Junho de 2009, 20:36
foi ver a bola.. mas enganou-se no caminho.. :)

(oh joaoamaral, mete aí o esquema de montagem.. se n tiveres programa pa isso usa o fritzing..)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 02 de Junho de 2009, 21:04
@metRo_
lol é isso que o Ricardo disse. lol nao como já havia dito nos posts anteriores esta lá porque sou nabo (a pensar que estava a ser muito cauteloso).  :D

@ricardo-reis
epá ainda não tive tempo para acabar o tutorial :)
a ideia era isto ser um tutorial mas por nunca ter soldado tive que parar, so hoje é que consegui alguma coisa...
como ate ao final da semana nao devo avançar nada com o tutorial deixo aqui um resumo, mas tambem podem ver pelo pdf.

1)
LCD       ARDUINO
1 VSS    GND
2 VDD   +5V
3 V0      Usar Saida de Potenciometro de 10K (regula o contraste)
4 RS      12
5 R/W   11 ou GND porque em princípio só queremos escrever para o ecrã (LOW como diz no pdf)
6 EN     10
7 DB0   ---- NC (versão 4bits por isso só usamos DB4~DB7)
8 DB1   ---- NC (versão 4bits por isso só usamos DB4~DB7)
9 DB2   ---- NC (versão 4bits por isso só usamos DB4~DB7)
10 DB3   ---- NC (versão 4bits por isso só usamos DB4~DB7)
11 DB4  ----  5
12 DB5  ----  4
13 DB6  ----  3
14 DB7  ----  2
15 BL LED   +5V
16 BL LED   GND

O software não conhecia, é uma pérola! Obrigado por partilhares. Deu uma olhadela vi a Arduino mas não vi LCDs experimenta fazeres tu se tiveres à vontade com o software apartir dos dados acima.

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

Pelo código podem ver a equivalencia dos pinos do lcd com os do arduino. usei no esquema acima o default do codigo da biblioteca LiquidCrystal do arduino.
Bem depois disto acho que já não é preciso tutorial loool.
Se tiverem dúvidas digam.
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 03 de Junho de 2009, 22:51
alguem conhece ou já usou o LCD Smartie? alguem sabe criar custom characters para o lcd?

http://lcdsmartie.sourceforge.net/ (http://lcdsmartie.sourceforge.net/)

http://www.nuelectronics.com/estore/index.php?main_page=project_lcdsmartie (http://www.nuelectronics.com/estore/index.php?main_page=project_lcdsmartie)

LCD Visualisation - Smartie on HD44780 (http://www.youtube.com/watch?v=ItfF6kViZng#lq-lq2-hq)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 03 de Junho de 2009, 22:53
lol.. nós aqui gostamos mt de fazer tudo À pata..
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 03 de Junho de 2009, 23:04
::) tens razao. é mais giro fazer tudo de raiz mas as vezes tambem é giro experimentar coisas feitas ;)
assim da para ver o maximo das potencialidades que as coisas dao para fazer :D
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 03 de Junho de 2009, 23:04
joaoamaral, o lcd smartie comunica com o arduino? sempre tive essa duvida....lol

tive agora a tentar ligar o meu lcd mais uma vez.....experimentei o teu codigo e como o costume nao deu nada....só quadradinhos :P ja perdi as esperanças neste bixo....deve ter morrido mesmo :(
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 03 de Junho de 2009, 23:46
amanha experimento o lcd smartie
deve dar aquilo tem opcao para serie :)

e vais ver que o teu lcd esta bom ;)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 14 de Junho de 2009, 23:44
Boas...

novidades do lcd?

o meu arduino chega na terça feira, por isso, deve ser das primeiras coisas que vou começar.... a chatear o pessoal..


Um abraço
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 15 de Junho de 2009, 08:19
O LCD é muito simples de ligar. Ligar cada cabo como coloquei em cima.

a) Ligar todos os cabos para o LCD ligar

1 VSS    GND
2 VDD   +5V

15 BL LED   +5V
16 BL LED   GND

Vai aparecer isto:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm4.static.flickr.com%2F3308%2F3580866695_069c61cba0.jpg%3Fv%3D0&hash=bb63e93fa7f620a793ed239016d32fdc032b4274)

b) Ligar potenciometro 10k para regular o contraste ao pino 3 do
3 V0      Usar Saida de Potenciometro de 10K (regula o contraste)
basta ligar ao ground e saida
em alternativa pode-se ligar uma resistencia com um bom valor de resistencia ate 10k que de o contraste que se queira

c) Ligar os cabos de dados

4 RS      12
5 R/W   11 ou GND porque em princípio só queremos escrever para o ecrã (LOW como diz no pdf)
6 EN     10
7 DB0   ---- NC (versão 4bits por isso só usamos DB4~DB7)
8 DB1   ---- NC (versão 4bits por isso só usamos DB4~DB7)
9 DB2   ---- NC (versão 4bits por isso só usamos DB4~DB7)
10 DB3   ---- NC (versão 4bits por isso só usamos DB4~DB7)
11 DB4  ----  5
12 DB5  ----  4
13 DB6  ----  3
14 DB7  ----  2

do 7 ao 10 nao se liga nada, vamos usar o lcd a 4bits

d) por volta desta altura ja devem ter o cabo usb ligado ao arduino que usaram para testar os passos anteriores
correr o IDE e vao a

File > Sketchbook > Examples > Library-LiquidCrystal > HelloWorld

fazem upload para o arduino do sketch e já está :)
deve aparecer isto

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm4.static.flickr.com%2F3305%2F3589035232_aea5dfeb55.jpg&hash=2a503895ce0721d6ec838c5900324246f043c4a9)

para escrever na segunda linha devem usar
lcd.setCursor(0,1);

verifiquem se os pinos estao bem ligados, foi a minha unica dificuldade
para tudo funcionar tive que soldar os pinos ao lcd (porque queria colocar numa breadboard).
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: TigPT em 15 de Junho de 2009, 11:19
Muito bom!

Já agora qual a diferença que sentes ao usar 4bits para 8bits no lcd? é o tipo de caracteres que podes fazer? velocidade de refresh?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 15 de Junho de 2009, 12:03
Muito bom!

Já agora qual a diferença que sentes ao usar 4bits para 8bits no lcd? é o tipo de caracteres que podes fazer? velocidade de refresh?

tirando o facto de usar mais cabos não notei diferença nenhuma mas ainda não fiz testes intensivos
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: delphi em 20 de Junho de 2009, 11:07
joaoamaral, o lcd smartie comunica com o arduino? sempre tive essa duvida....lol

Como o Lcd Smartie  (http://lcdsmartie.sourceforge.net/ (http://lcdsmartie.sourceforge.net/)) dá para configurar para enviar os dados para a porta série, logo, o arduino recebe esses dados.

Para que o LCD Smartie envie os dados para serem utilizados neste tipo de LCDs  (16x2 Paralelo 4 Bits/8Bits) é necessário entrar em Setup, em Display Settings seleccionar como plugin "matrix.dll", e em startup parameters escolher a porta  do arduino e velocidade de comunicação. Na tab de baixo (Screen) escolher 2x16.

Da parte do LCD Smartie é só isto para comunicar. Da parte do arduino temos de fazer o upload do seguinte código, para ele saber o que fazer com o que recebe:

Código: [Seleccione]
#include <LiquidCrystal.h>

// LiquidCrystal display with:
// rs on pin 12
// rw on pin 11 --------connected to GND (not used)
// enable on pin 10
// d4, d5, d6, d7 on pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup() {
  
  lcd.clear();
  lcd.print("**LCD  SMARTIE**");
  delay(4000);
  Serial.begin(19200);
}

byte serial_getch(){
  
  int incoming;  
  while (Serial.available()==0){}
  // read the incoming byte:
  incoming = Serial.read();
  return (byte) (incoming &0xff);
}

void loop(){
  
  byte rxbyte;
  byte temp;
  
  rxbyte = serial_getch();

  if (rxbyte == 254) //Matrix Orbital uses 254 prefix for commands
        {
                switch (serial_getch())
                {
                        case 66: //backlight on (at previously set brightness)
                                // not implemented                              

                                break;
                        case 70: //backlight off
                                // not implemented                              
                                break;
                        case 71:  //set cursor position
                                temp = (serial_getch() - 1);  //get column byte
                                switch (serial_getch())  //get row byte
                                {
                                        //line 1 is already set up
                                        case 2:
                                                temp += 0x40;
                                                break;
                                        case 3:
                                                temp += 0x14;
                                                break;
                                        case 4:
                                                temp += 0x54;
                                                break;
                                        default:
                                                break;
                                }
                                lcd.command(0b10000000 + temp);
                                break;
                        case 72:  //cursor home (reset display position)
                                lcd.command(2);
                                break;
                        case 74:  //show underline cursor
                                lcd.command(0b00001110);
                                break;
                        case 75:  //underline cursor off
                        case 84:  //block cursor off
                                lcd.command(0b00001100);
                                break;
                        case 76:  //move cursor left
                                lcd.command(16);
                                break;
                        case 77:  //move cursor right
                                lcd.command(20);
                                break;
                        case 78:  //define custom char
                                lcd.command(64 + (serial_getch() * 8));  //get+set char address
                                for (temp = 7; temp != 0; temp--)
                                {
                                        lcd.print(serial_getch()); //get each pattern byte
                                }
                                break;
                        case 83:  //show blinking block cursor
                                lcd.command(0b00001111);
                                break;
                        case 86:  //GPO OFF
                                //implement later
                                break;
                        case 87:  //GPO ON
                                /*temp = serial_getch();
                                if (temp == 1)
                                {
                                        GPO1 = GPO_ON;
                                }*/
                                break;
                        case 88:  //clear display, cursor home
                                lcd.command(1);
                                break;
                        case 152: //set and remember (doesn't save value, though)
                        case 153: //set backlight brightness
                                //not implemented
                                break;

                        //these commands ignored (no parameters)
                        case 35: //read serial number
                        case 36: //read version number
                        case 55: //read module type
                        case 59: //exit flow-control mode
                        case 65: //auto transmit keypresses
                        case 96: //auto-repeat mode off (keypad)
                        case 67: //auto line-wrap on
                        case 68: //auto line-wrap off
                        case 81: //auto scroll on
                        case 82: //auto scroll off
                        case 104: //init horiz bar graph
                        case 109: //init med size digits
                        case 115: //init narrow vert bar graph
                        case 118: //init wide vert bar graph
                                break;
                        default:
                                //all other commands ignored and parameter byte discarded
                                temp = serial_getch();  //dump the command code
                                break;
                }
                return;
        } //END OF COMMAND HANDLER

        //change accented char to plain, detect and change descenders
        //NB descenders only work on 5x10 displays. This lookup table works
        //  with my DEM-20845 (Display Elektronik GmbH) LCD using KS0066 chip.
        switch (rxbyte)
        {
                //chars that have direct equivalent in LCD charmap
/*                case 0x67: //g
                        rxbyte = 0xE7;
                        break;
                case 0x6A: //j
                        rxbyte = 0xEA;
                        break;
                case 0x70: //p
                        rxbyte = 0xF0;
                        break;
                case 0x71: //q
                        rxbyte = 0xF1;
                        break;
                case 0x79: //y
                        rxbyte = 0xF9;
                        break;
*/                case 0xE4: //ASCII "a" umlaut
                        rxbyte = 0xE1;
                        break;
                case 0xF1: //ASCII "n" tilde
                        rxbyte = 0xEE;
                        break;
                case 0xF6: //ASCII "o" umlaut
                        rxbyte = 0xEF; //was wrong in v0.86
                        break;
                case 0xFC: //ASCII "u" umlaut
                        rxbyte = 0xF5;
                        break;

                //accented -> plain equivalent
                //and misc symbol translation
                case 0xA3: //sterling (pounds)
                        rxbyte = 0xED;
                        break;
/*                case 0xB0: //degrees symbol
                        rxbyte = 0xDF;
                        break;
*/                case 0xB5: //mu
                        rxbyte = 0xE4;
                        break;
                case 0xC0: //"A" variants
                case 0xC1:
                case 0xC2:
                case 0xC3:
                case 0xC4:
                case 0xC5:
                        rxbyte = 0x41;
                        break;
                case 0xC8: //"E" variants
                case 0xC9:
                case 0xCA:
                case 0xCB:
                        rxbyte = 0x45;
                        break;
                case 0xCC: //"I" variants
                case 0xCD:
                case 0xCE:
                case 0xCF:
                        rxbyte = 0x49;
                        break;
                case 0xD1: //"N" tilde -> plain "N"
                        rxbyte = 0x43;
                        break;
                case 0xD2: //"O" variants
                case 0xD3:
                case 0xD4:
                case 0xD5:
                case 0xD6:
                case 0xD8:
                        rxbyte = 0x4F;
                        break;
                case 0xD9: //"U" variants
                case 0xDA:
                case 0xDB:
                case 0xDC:
                        rxbyte = 0x55;
                        break;
                case 0xDD: //"Y" acute -> "Y"
                        rxbyte = 0x59;
                        break;
/*                case 0xDF: //beta  //mucks up LCDSmartie's degree symbol??
                        rxbyte = 0xE2;
                        break;
*/                case 0xE0: //"a" variants except umlaut
                case 0xE1:
                case 0xE2:
                case 0xE3:
                case 0xE5:
                        rxbyte = 0x61;
                        break;
                case 0xE7: //"c" cedilla -> "c"
                        rxbyte = 0x63;
                        break;
                case 0xE8: //"e" variants
                case 0xE9:
                case 0xEA:
                case 0xEB:
                        rxbyte = 0x65;
                        break;
                case 0xEC: //"i" variants
                case 0xED:
                case 0xEE:
                case 0xEF:
                        rxbyte = 0x69;
                        break;
                case 0xF2: //"o" variants except umlaut
                case 0xF3:
                case 0xF4:
                case 0xF5:
                case 0xF8:
                        rxbyte = 0x6F;
                        break;
                case 0xF7: //division symbol
                        rxbyte = 0xFD;
                        break;
                case 0xF9: //"u" variants except umlaut
                case 0xFA:
                case 0xFB:
                        rxbyte = 0x75;
                        break;
                default:
                        break;
        }

        lcd.print(rxbyte);  //otherwise a plain char so we print it to lcd
        return;

}


Encontrei estas configurações no link http://www.nuelectronics.com/estore/index.php?main_page=project_lcdsmartie (http://www.nuelectronics.com/estore/index.php?main_page=project_lcdsmartie).

Como não estava a conseguir colocar a funcionar com a biblioteca que eles sugerem ( LCD4Bit_mod ) mudei para utilizar a LiquidCrystal, (umas das diferenças é que esta última permite configurar os pins à vontade do "freguês").



Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 20 de Junho de 2009, 12:46
Ena pá!! Obrigado! Quando puder experimento já! :D

abraço e obrigado por partilhares
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 21 de Junho de 2009, 15:04
Boas pessoal.. Hoje resolvi começar a tentar por isto a trabalhar...

Liguei apenas os pinos 1, 2, 15 e 16. Sendo que o 2 e o 15 liguei aos 5v e o 1 e o 16 liguei ao Gnd. Mas tentei utilizar utilizar a energia do arduino ligado ao USB, tenho o duemilanove com atmega 168, mas simplesmente nao aconteceu nada... o que pode ter sido?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Ricardo_91 em 21 de Junho de 2009, 15:16
A Luz de fundo também não acendeu?
se esta tiver acendido, o único problema é não teres ligado o pino 3 ao GND que serve para definir o contraste para o máximo.

cumpz ;)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 21 de Junho de 2009, 15:37
nao acendeu nada...

supostamente o arduino é o suficiente para alimentar o lcd, nao é?

o pino 3 nao o liguei a lado nenhum-
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Ricardo_91 em 21 de Junho de 2009, 16:12
mostra uma foto com as ligações
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 21 de Junho de 2009, 17:37
A foto segue em anexo. :-\


Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Ricardo_91 em 21 de Junho de 2009, 18:28
no arduino troca o fio preto com o vermelho parece-me que estão trocados e liga o pino 3 ao GND
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 21 de Junho de 2009, 18:51
Sim, de facto estavam trocados...

mas ja liguei bem, e o pino 3 ao GND, e mesmo assin nao da nada...


será que queimou? ???
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Ricardo_91 em 21 de Junho de 2009, 19:04
Roda o LCD e verifica se o pino 16 está ligado ao gnd e o 15 aos 5v axo que estão os dois um buraco mais á direita mas na foto n dá para ver bem
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 21 de Junho de 2009, 19:09
Começa por ligar o 15 e o 16 a Luz do Led tem que acender foi por ai que comecei também.
Segue os passos e a orientaçao do tutorial em cima.
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 21 de Junho de 2009, 19:19
Roda o LCD e verifica se o pino 16 está ligado ao gnd e o 15 aos 5v axo que estão os dois um buraco mais á direita mas na foto n dá para ver bem

Estavam trocados quando tirei a foto, mas para testar ja foi bem ligado...

Supostamente basta ligar aos 5v e GND do arduino, certo?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Ricardo_91 em 21 de Junho de 2009, 19:24
sim para ligar a luz de fundo basta  ::)

vai experimentando só com o pin 15 e 16 ligados e se n der troca os fiox
liga directamente ao arduino!!!
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 21 de Junho de 2009, 21:32
Mas so para confirmar..

ligo na "zona" do Power, nos 5v e no GND, certo?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Ricardo_91 em 21 de Junho de 2009, 21:34
sim e ligas o arduino ao pc
já agora a luz de power do arduino acende??
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 21 de Junho de 2009, 21:55
Acende.. e quando envio o codigo, a luz tx e rx tambem acende...

Ainda vou confirmar que o ardiono tem os 5v na saida..

Obrigado
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 21 de Junho de 2009, 22:17
Bem pessoal... problema resolvido...

Era um problema na breadboard, a "regua" de alimentaçao,é interrompida a meio, e nao chegava energia ao lcd.

Mas, mesmo depois de ligar os pinos, nao apareceu nenhuma pelavra apenas a linha toda a preto... é por causa da falta do potenciometro? liguei o pino 3 directamente, o potenciometro é mesmo necessario?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 21 de Junho de 2009, 22:38
vai usando varias resistencias ate teres um valor parecido com o do potenciometro o que usei era de 10k por isso entre os 5K a 9K deves ter o contraste ideal. agora é seguires o tutorial com calma :)

tb podes fazer um se quiseres uma resistencia variavel com lapis e papel assim tipo à paperduino :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 21 de Junho de 2009, 22:59
OK. é que potencimetros so tenho de 1K e de 100K...


mas amanha vou testar melhor...

é por causa da falta de potenciometro (liguei directo ao gnd) que nao consigo ver as letras, nao é?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: joaoamaral em 22 de Junho de 2009, 00:14
se tiveres tudo bem ligado e só vires quadrados a preto como na imagem em cima, sim :) falta uma resistencia correcta ou um potenciometro
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: delphi em 22 de Junho de 2009, 00:31
Uma dúvida que tenho andado para testar: ...será que com um dos pins pwm dá para controlar o contraste? :) é certo que é mais um pin "gasto", mas para o caso de querermos apenas testar e do potenciometro não estar à mão...
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: jorge_rc em 22 de Junho de 2009, 11:33
Entao hoje ja vou testar com resistencias ou potenciometros, para ver quando atinjo um bom contraste... Ja estou contente que por momentos pensei que tivesses queimado antes de conseguir fazer alguma coisa...

Obrigado pela ajuda.
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 22 de Junho de 2009, 12:34
Uma dúvida que tenho andado para testar: ...será que com um dos pins pwm dá para controlar o contraste? :) é certo que é mais um pin "gasto", mas para o caso de querermos apenas testar e do potenciometro não estar à mão...

Penso que sim....pelo menos ja tentei fazer isso com pic.....:D (nao funcionou pq nao tenho programador de pic :P)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: amando96 em 22 de Junho de 2009, 21:35
dá para escrever numeros?

ex: lcd.print(1234); ?

Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 09 de Julho de 2009, 15:13
oh pessoal dos lcds, qual é a forma de usar o mínimo de pinos possíveis do arduino e ter o lcd a bombar?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: TigPT em 09 de Julho de 2009, 16:28
Esta:
http://www.embedds.com/arduino-controls-lcd-via-3-wires/ (http://www.embedds.com/arduino-controls-lcd-via-3-wires/)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: tcustodio em 09 de Julho de 2009, 17:01
pessoal, deixo aqui anexado um esquema de como ligar o lcd ao arduino, para que não haja dúvidas e para que todos percebam rapidamente ;)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: TigPT em 09 de Julho de 2009, 17:05
Obrigado tcustodio
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Tyran em 09 de Julho de 2009, 18:34
Por I2C ainda usas menos :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 09 de Julho de 2009, 18:35
isso.. xuta um esquema.. :D
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 09 de Julho de 2009, 18:41
estes lcds nao dao por I2C.....Ou dao? :P

lembra-me de ter uns I2C na escola :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: TigPT em 09 de Julho de 2009, 19:26
Estes são paralelos, contudo deve de haver alguns conversores de i2c para este tipo de lcd pois são muito utilizados. Quem os descobrir que poste se não se importar ;)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Fifas em 09 de Julho de 2009, 19:29
paralelo e série se nao me engano. Acho que da para escolher :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: tcustodio em 09 de Julho de 2009, 19:46
Estes são paralelos, contudo deve de haver alguns conversores de i2c para este tipo de lcd pois são muito utilizados. Quem os descobrir que poste se não se importar ;)
uh, acho que encontrei...
http://letsmakerobots.com/node/4240 (http://letsmakerobots.com/node/4240)

nesse tutorial usam um PCF8574 que é um I/O expander, que trabalha por i2c,
encontrei na sparkfun um semelhante:
http://www.sparkfun.com/commerce/product_info.php?products_id=8130 (http://www.sparkfun.com/commerce/product_info.php?products_id=8130)
mas aí com breakout board ronda os 8.5€...

vou procurar outros
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Ricardo_91 em 09 de Julho de 2009, 20:03
acho que postamos ao mesmo tempo

mas já apaguei

desculpa
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Tyran em 09 de Julho de 2009, 20:08
É mesmo com um PCF que eu tenho o meu ligado lol
Ainda é caro, paguei cerca de 4€ por ele na alfa :S

Um pouco off-topic mas relacionado, como escolher o valor da resistência do NTC a 25ºC?? Até fico maluco de tantos números aí: http://www.e-merchan.com/pub/ntc10.pdf (http://www.e-merchan.com/pub/ntc10.pdf) lol

A ideia é ler no jardim enviar por rf, e receber dentro de casa e passar pa um display lol
Estou agora a tentar programar SPI com o módulo USI do meu attiny, e depois falta o atmega8 ou 8051. Antes de me aventurar nos rf12 sem saber sequer se SPI tá a funcar meto é os dois micros a comunicar um com o outro para testar de certo...
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: tcustodio em 09 de Julho de 2009, 20:10
Tens que começar a ler o post anterior ao teu ;)

Não percebi, eu li o que o Fifas escreveu  :-[


da nossa amiga Maxim, por i2c, e com DIPs disponíveis apenas encontrei o MAX7300 e o MAX6956, que são port expanders de 28 I/O
por SPI há lá bastantes, mas não pesco nada disso  :-X

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3376 (http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3376) <- MAX7300

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3503/t/al (http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3503/t/al) <- MAX6956, igual ao MAX7300, mas com mais 24mA por cada pino
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: metRo_ em 09 de Julho de 2009, 20:20
E um printscreen daquele esquema em fritzing?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: tcustodio em 09 de Julho de 2009, 20:27
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg136.imageshack.us%2Fimg136%2F9153%2Fesquemalcd.png&hash=cdfcc9d266aa59e035e5d13516ef59c91d419f68)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: metRo_ em 09 de Julho de 2009, 20:32
Já agora para que serve esse pino?
Porque se não por que não se liga simplesmente a GND?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Ricardo_91 em 09 de Julho de 2009, 20:39
o pino  5 do LCD serve para indicar se queremos ler ou escrever algo no LCD como em principio só queremos escrever ligamos ao GND
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Sérgio_Sena em 10 de Julho de 2009, 13:35
da nossa amiga Maxim, por i2c, e com DIPs disponíveis apenas encontrei o MAX7300 e o MAX6956, que são port expanders de 28 I/O
por SPI há lá bastantes, mas não pesco nada disso  :-X


Há também os MCP23017 (http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en023499), da Microchip, com 16 canais, bidireccionais, e com 25mA por canal.
Podem emparelhar-se 8 chips destes, num barramento: 16bit * 8 = 128 canais.

Muito mais barato e rápido que os anteriores.

Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: tcustodio em 10 de Julho de 2009, 17:31
Há também os MCP23017 (http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en023499), da Microchip, com 16 canais, bidireccionais, e com 25mA por canal.
Podem emparelhar-se 8 chips destes, num barramento: 16bit * 8 = 128 canais.

Muito mais barato e rápido que os anteriores.

hmm, emparelham-se, mas faz-se a leitura de todos fazendo o pedido apenas ao primeiro? ou seja, ficam todos co mesmo endereço? (se calhar não me estou a fazer entender da melhor maneira  :-X)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Sérgio_Sena em 10 de Julho de 2009, 18:55
Estás :)

Quando digo emparelham-se, quero dizer que ficam todos em paralelo no barramento.
Mas, como todos têem um endereço de 3-bits, podemos ter 8 aparelhos pendurados no mesmo barramento.

Eu prefiro usar a versão que se liga por SPI.
Simplesmente porque posso Multiplexar as linhas de clock, e posso ter carradas de Expansores com a mesma porta SPI.

Com I2C já não corre bem, porque é um barramento bidireccional na linha de dados.

Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: antonio_jose em 10 de Julho de 2009, 20:37
pessoal, deixo aqui anexado um esquema de como ligar o lcd ao arduino, para que não haja dúvidas e para que todos percebam rapidamente ;)

tcustodio podias converter o esquema para um formato de imagem?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: tcustodio em 10 de Julho de 2009, 20:50
tcustodio podias converter o esquema para um formato de imagem?

já aí meti um printscreen, mas eu meto aqui mesmo numa imagem anexa ;)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: TigPT em 24 de Julho de 2009, 13:45
O meu lcd já esteve com texto mas agora insiste que não dá nada.. alguém teve problemas deste género?
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 24 de Julho de 2009, 14:28
desliga durante um tempo, liga de novo e faz vários resets consecutivos..
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: rafhit em 06 de Setembro de 2009, 20:27
boas!
comprei um lcd da earthshine (http://www.earthshinedesign.co.uk/index.php?route=product/product&product_id=53)
mas ao usar os sketchs que vem com o arduino ele nada faz! depois expreimentei o cod que o joaoamaral postou e ja consigo ver o "hello world" mas a linha de baixo continua em branco...
e so depois de ter usado este codigo, ao usar os que vem com o arduino ja aparecem, mas o que era suposto! aparece antes uma estupida "animaçao" em ambas as linhas com setas, pontos de interrogaçao e....
alguem pode-me ajudar? ou isto ja aconteceu com alguem?
obg
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 06 de Setembro de 2009, 21:00
eu já tenho o meu lcd desmontado, mas mete aí o código k dizes ter testado dps pra ver se eu ou algum membro com o lcd te diz o pk disso n dar o suposto.. :)
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: rafhit em 06 de Setembro de 2009, 21:09
por exemplo este
Citar
/*
  LiquidCrystal Library - Blink
 
 Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the 
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.
 
 This sketch prints "Hello World!" to the LCD and makes the 
 cursor block blink.
 
 The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * 10K resistor:
   * ends to +5V and ground
   * wiper to LCD VO pin (pin 3)
 
 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried (http://www.ladyada.net)
 example added 9 Jul 2009
 by Tom Igoe 
 modified 25 July 2009
 by David A. Mellis
 
 http://www.arduino.cc/en/Tutorial/LiquidCrystal
 
 */

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

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

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

void loop() {
  // Turn off the blinking cursor:
  lcd.noBlink();
  delay(3000);
   // Turn on the blinking cursor:
  lcd.blink();
  delay(3000);
}




so vejo os pontos de interrogaçao...
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 06 de Setembro de 2009, 21:13
admitindo que a tua configuração de pinos está correcta, o teu problema está na função setup..

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

tu mandas escrever na 16ª posição da 3ª linha.. que n existem..

lcd.begin(x,y);

nesta função, os valores de x variam entre 0 e 15 e os valores de y variam entre 0 e 1.. muda os valores d'acordo com esta explicação e com as posições onde queres que apareça o 'hello world' e dps conta como correu..
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: rafhit em 06 de Setembro de 2009, 21:40
eu tive a ver e falta o pino 10 do arduino no sketch
(LiquidCrystal lcd(12, 11, 5, 4, 3, 2);)

acrescentei o 10 e ja funciona, mesmo estando la o
lcd.begin(16, 2);

Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: ricardo-reis em 06 de Setembro de 2009, 21:45
e fica nas posições onde tu querias o texto?

realmente eu confundi a função que eu usava pra definir as posições de escrita, que era a lcd.setCursor(x,y);

a lcd.begin(x,y) n tou a ver o que faz ao certo, pk nunca a usei (se n tou em erro), só indo ao código da biblioteca liquidCrystal ver..
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: rafhit em 06 de Setembro de 2009, 21:52
ja ta bom!
exprimentei o codigo que o joaoamaral pôs ai e a 2ª linha nao estava a dar..
entao acrescentei ao codigo o lcd.begin(16,2) e ja da xD
Título: Re:Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Rebel em 07 de Setembro de 2009, 09:41
O "lcd.begin(16,2)" faz a inicializalão do LCD com 16 colunas e 2 linhas.
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Raul em 03 de Outubro de 2009, 20:58
Desculpem de reabrir este tópico mas como o tópico de compra colectiva http://lusorobotica.com/index.php/topic,925.0.html não é possível de lá postar.
Queria saber onde compraram os lcd´s e se estão à espera de mandar vir mais?

Obrigado e cumprimentos.
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: metRo_ em 03 de Outubro de 2009, 21:46
Foi aqui: http://stores.shop.ebay.de/zyscom__W0QQ_sidZ567459840?_nkw=lcd&submit=Finden

Não sei se há alguém interessado em comprar mais mas há quem tenha para vender se calhar.
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Raul em 03 de Outubro de 2009, 23:14
Pois mas eu não quero estar a abrir um tópico só por quero comprar um lcd.


Cumprimentos
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: AcidDagger em 30 de Abril de 2010, 18:31


(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg136.imageshack.us%2Fimg136%2F9153%2Fesquemalcd.png&hash=cdfcc9d266aa59e035e5d13516ef59c91d419f68)

Não percebi bem a ligação do pin 3 do lcd :S alguem me podia explicar?  ;D
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: amando96 em 30 de Abril de 2010, 19:00
Um potenciometro tem três pinos, o do meio ligas ao terceiro pino do lcd, um dos pinos do lado vai para 5v, e o outro do lado para GND, tanto faz qual dos lados vai para 5v, ou gnd, desde que o do meio vá para o lcd.
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: AcidDagger em 30 de Abril de 2010, 21:21
ok, obrigado. serve um potenciomentro qualquer?  :)
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: AcidDagger em 01 de Maio de 2010, 00:53
ja agora, existe alguma alternativa ao portenciometro?

é que agora aqui nao tenho nenhum...
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: amando96 em 01 de Maio de 2010, 02:33
Acho que podes usar duas resistencias, mas não tenho acerteza, outro membro poderá esclarecer :)
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: Skilgannon em 01 de Maio de 2010, 23:17
podes usar duas resistências, mas nesse caso o valor não é variável, e depende apenas das duas resistências que la puseste. Tens que fazer as contas bem feitas para saber que voltagem queres.
As resistências ligam-se em serie, com um fio entre elas que vai corresponder ao fio do meio do potenciómetro. E como é claro, uma está ligada ao GND e outra ao VCC.
Título: Re: Tutorial LCD caracteres 16x2 Paralelo 4 Bits/8Bits (work in progress)
Enviado por: almamater em 14 de Junho de 2010, 12:51
Aproveito este tópico para esclarecer um ponto  :D

Eu fiz o circuito disponível em http://www.nuelectronics.com/estore/index.php?main_page=project_lcdsmartie (http://www.nuelectronics.com/estore/index.php?main_page=project_lcdsmartie) e já referido aqui.

A minha questão é apenas saber como posso cancelar a escrita de "6" no LCD sempre que inicio o Arduino e quando não abro o programa LCDSmartie.
Ou seja, do Pc para o arduino supostamente não se está a enviar nada pela porta série, mas mesmo assim ele escreve no Lcd "6" indefinidamente.

Do original apenas removi o código associado aos botões:
Código: [Seleccione]
//LCD
#include <avr/interrupt.h>
#include <avr/io.h>
#include "LCD4Bit_mod.h"

LCD4Bit_mod lcd = LCD4Bit_mod(2);


 void setup() {
 pinMode(latchPin, OUTPUT);
       
 lcd.init();
 lcd.clear();
 lcd.printIn("HELLO");
 lcd.cursorTo(2,2);
 lcd.printIn("*lINE 2*");
 
 Serial.begin(19200); //Alterei valor para o do LCD
       }
 
 //LCD
 byte serial_getch(){
 
  int incoming; 
  while (Serial.available()==0){}
// read the incoming byte:
  incoming = Serial.read();
  return (byte) (incoming &0xff);
 }

 

void loop() {
   
byte rxbyte;
byte temp;
rxbyte = serial_getch();

  if (rxbyte == 254) //Matrix Orbital uses 254 prefix for commands
{
switch (serial_getch())
{
case 66: //backlight on (at previously set brightness)
                                // not implemented

break;
case 70: //backlight off
// not implemented
                                break;
case 71:  //set cursor position
temp = (serial_getch() - 1);  //get column byte
switch (serial_getch())  //get row byte
{
//line 1 is already set up
case 2:
temp += 0x40;
break;
case 3:
temp += 0x14;
break;
case 4:
temp += 0x54;
break;
default:
break;
}
lcd.commandWrite(0b10000000 + temp);
break;
case 72:  //cursor home (reset display position)
lcd.commandWrite(2);
break;
case 74:  //show underline cursor
lcd.commandWrite(0b00001110);
break;
case 75:  //underline cursor off
case 84:  //block cursor off
lcd.commandWrite(0b00001100);
break;
case 76:  //move cursor left
lcd.commandWrite(16);
break;
case 77:  //move cursor right
lcd.commandWrite(20);
break;
case 78:  //define custom char
lcd.commandWrite(64 + (serial_getch() * 8));  //get+set char address
for (temp = 7; temp != 0; temp--)
{
lcd.print(serial_getch()); //get each pattern byte
}
break;
case 83:  //show blinking block cursor
lcd.commandWrite(0b00001111);
break;
case 86:  //GPO OFF
//implement later
break;
case 87:  //GPO ON
/*temp = serial_getch();
if (temp == 1)
{
GPO1 = GPO_ON;
}*/
break;
case 88:  //clear display, cursor home
lcd.commandWrite(1);
break;
case 152: //set and remember (doesn't save value, though)
case 153: //set backlight brightness
//not implemented
break;

//these commands ignored (no parameters)
case 35: //read serial number
case 36: //read version number
case 55: //read module type
case 59: //exit flow-control mode
case 65: //auto transmit keypresses
case 96: //auto-repeat mode off (keypad)
case 67: //auto line-wrap on
case 68: //auto line-wrap off
case 81: //auto scroll on
case 82: //auto scroll off
case 104: //init horiz bar graph
case 109: //init med size digits
case 115: //init narrow vert bar graph
case 118: //init wide vert bar graph
break;
default:
//all other commands ignored and parameter byte discarded
temp = serial_getch();  //dump the command code
break;
}
return;
} //END OF COMMAND HANDLER

//change accented char to plain, detect and change descenders
//NB descenders only work on 5x10 displays. This lookup table works
//  with my DEM-20845 (Display Elektronik GmbH) LCD using KS0066 chip.
switch (rxbyte)
{
//chars that have direct equivalent in LCD charmap
/* case 0x67: //g
rxbyte = 0xE7;
break;
case 0x6A: //j
rxbyte = 0xEA;
break;
case 0x70: //p
rxbyte = 0xF0;
break;
case 0x71: //q
rxbyte = 0xF1;
break;
case 0x79: //y
rxbyte = 0xF9;
break;
*/ case 0xE4: //ASCII "a" umlaut
rxbyte = 0xE1;
break;
case 0xF1: //ASCII "n" tilde
rxbyte = 0xEE;
break;
case 0xF6: //ASCII "o" umlaut
rxbyte = 0xEF; //was wrong in v0.86
break;
case 0xFC: //ASCII "u" umlaut
rxbyte = 0xF5;
break;

//accented -> plain equivalent
//and misc symbol translation
case 0xA3: //sterling (pounds)
rxbyte = 0xED;
break;
/* case 0xB0: //degrees symbol
rxbyte = 0xDF;
break;
*/ case 0xB5: //mu
rxbyte = 0xE4;
break;
case 0xC0: //"A" variants
case 0xC1:
case 0xC2:
case 0xC3:
case 0xC4:
case 0xC5:
rxbyte = 0x41;
break;
case 0xC8: //"E" variants
case 0xC9:
case 0xCA:
case 0xCB:
rxbyte = 0x45;
break;
case 0xCC: //"I" variants
case 0xCD:
case 0xCE:
case 0xCF:
rxbyte = 0x49;
break;
case 0xD1: //"N" tilde -> plain "N"
rxbyte = 0x43;
break;
case 0xD2: //"O" variants
case 0xD3:
case 0xD4:
case 0xD5:
case 0xD6:
case 0xD8:
rxbyte = 0x4F;
break;
case 0xD9: //"U" variants
case 0xDA:
case 0xDB:
case 0xDC:
rxbyte = 0x55;
break;
case 0xDD: //"Y" acute -> "Y"
rxbyte = 0x59;
break;
/* case 0xDF: //beta  //mucks up LCDSmartie's degree symbol??
rxbyte = 0xE2;
break;
*/ case 0xE0: //"a" variants except umlaut
case 0xE1:
case 0xE2:
case 0xE3:
case 0xE5:
rxbyte = 0x61;
break;
case 0xE7: //"c" cedilla -> "c"
rxbyte = 0x63;
break;
case 0xE8: //"e" variants
case 0xE9:
case 0xEA:
case 0xEB:
rxbyte = 0x65;
break;
case 0xEC: //"i" variants
case 0xED:
case 0xEE:
case 0xEF:
rxbyte = 0x69;
break;
case 0xF2: //"o" variants except umlaut
case 0xF3:
case 0xF4:
case 0xF5:
case 0xF8:
rxbyte = 0x6F;
break;
case 0xF7: //division symbol
rxbyte = 0xFD;
break;
case 0xF9: //"u" variants except umlaut
case 0xFA:
case 0xFB:
rxbyte = 0x75;
break;
default:
break;
}
lcd.print(rxbyte);  //otherwise a plain char so we print it to lcd
            }