LusoRobótica - Robótica em Português

Sistemas específicos => Picaxe => Tópico iniciado por: andre_f_carvalho em 27 de Fevereiro de 2010, 00:24

Título: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 27 de Fevereiro de 2010, 00:24
Boas pessoal,

Eu ando a trabalhar num projecto para o final do meu curso, eu estou a programar um alarme (programa ja feito), e quero aplicar-lhe um lcd para ver todos os passos ao mexer no mesmo, mas o problema é que eu n sei trabalhar com a programação do lcd

estou a usar o picaxe para o controlo de tudo e tenho um LCD 4X20 I2C/Serial LCD03 onde quero verificar os processos todos que executo

http://www.robot-electronics.co.uk/htm/Lcd03tech.htm (http://www.robot-electronics.co.uk/htm/Lcd03tech.htm)
este link a cima mostra mais características sobre o lcd

agora a minha grande duvida é como programo o picaxe para aparecer as ditas instruções no lcd

agradecia imenso a quem me pode-se ajudar, estou a ficar sem tempo para acabar este projecto

obs.: a linguagem e Basic para picaxe

cump
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: durza em 27 de Fevereiro de 2010, 03:34
boas,

tenta ver por aqui: http://lusorobotica.com/index.php/topic,1785.0.html (ftp://lusorobotica.com/index.php/topic,1785.0.html)

alguma dúvida apita!  ;)

cumprimentos
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: senso em 27 de Fevereiro de 2010, 13:21
Tens de procurar uma libraria biblioteca para lcd's e depois é só usares os comandos dessa mesma libraria biblioteca, fazeres tudo de raiz á mão e para mais em basic é muito dificil e complicado
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 27 de Fevereiro de 2010, 20:26
boas,

tenta ver por aqui: http://lusorobotica.com/index.php/topic,1785.0.html (ftp://lusorobotica.com/index.php/topic,1785.0.html)

alguma dúvida apita!  ;)

cumprimentos


o link não dá para abrir


cump
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: amando96 em 27 de Fevereiro de 2010, 21:05
Ele pos ftp, em vez de http, no inicio do link, acho ser este topico que ele te estava a direcionar:

http://lusorobotica.com/index.php/topic,1785.0.html (http://lusorobotica.com/index.php/topic,1785.0.html)
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 27 de Fevereiro de 2010, 21:36
Código: [Seleccione]
symbol trig = 3                                    ;output
   symbol echo = 2                                  ;input
   symbol range = w2                             ;memoria
   
init: pause 500
     i2cslave $C6,i2cslow,i2cbyte
   writei2c 0,(254,128,255,19,12,4)
main:
   pulsout trig,2
   pulsin echo,1,range
   pause 10
   let range = range * 10 / 58                ;calculo para centimetros
   debug range


main1:
   writei2c 0,(254,128,255,19,12,4)       ;codigo para o lcd
   pause 10
   writei2c 0,("        iBOT        ")
   
   BINTOASCII range, b1,b2,b3
   hi2cout("  olhos=",b1,b2,b3,"cm")      ;leitura da memoria para aparecer no lcd

   goto main

estas a falar deste código, sendo este tens aqui partes para os teus ultra sons, agora sendo  a parte para mostrar no lcd, como é que se mostra mesmo só uma menssagem, e já agora para que serve os numeros a seguir ao writei2c?


cump
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: senso em 27 de Fevereiro de 2010, 22:27
Vê a tabela do link que postas-te, é explicito, são numeros para configurar o lcd:
decimal     

command
   description
0    null (ignored)    Ignored as a no operation
1    Cursor Home     Sets the cursor to the home position (top left)
2    Set cursor (1-80)    Cursor to a position specified by the next byte, where 1 is the top left and 80 is the bottom right
3    set cursor (line, column)    Sets cursor using two bytes, where first byte is the line and the second byte is the column
4    Hide cursor    stops the position cursor from appearing on the display
5    Show underline cursor    Changes the cursor to the underline type
6    Show blinking cursor    Changes the cursor to the blinking type
8    Backspace    deletes the preceding character from the current position on the display
9    Horizontal tab (by tab set)    Moves the current position across by the tab space set by command 18 (default tab space 4)
10    Smart line feed    Moves the cursor down one line to the position beneath in the same column
11    Vertical tab    Moves the cursor up one line to the position above in the same column
12    Clear screen    Clears the screen and sets cursor to the home position
13    Carriage Return    Moves the cursor to the start of the next line
17    Clear Column    Clears the contents of the current column and moves cursor right by one column
18    Tab set    Sets the required tab size, the following byte can be a size of between 1 and 10
19    Backlight on     Turns the backlight of the LCD03 on
20    Backlight off (default)    Turns the backlight of the LCD03 off
27    Custom char generator    allows 8 custom chars to be built. See custom char generator below
32-255    ASCII chars    Writes ASCII chars straight to the display

esta mesma tabela está no site que postas-te
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 28 de Fevereiro de 2010, 00:42
supostamente posso meter vários números a frente do write i2c, então os números do ASCII chars serve para definir a posição da palavra ou frase no ecrã certo? 
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: senso em 28 de Fevereiro de 2010, 01:13
Ascii é uma maneira de codificar caracteres, ou seja, a letra A é codificada em hexa-decimal 41, e em decimal 65, ou seja ascii é basicamente uma tabela para definir letras e numeros e que todos os computadores reconhecem pois é um sistema muito antigo, todos os outros caracteres e simbolos são actualmente extensões da tabela ascii inicial, como o utf-8 ou o unicode e por ai adiante, eis aqui uma tabela ascii:
http://www.asciitable.com/ (http://www.asciitable.com/)
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 28 de Fevereiro de 2010, 16:36
então existe alguma ordem para meter os números, o durza tem estes números seguidos no seu código 254,128,255... tem a haver com os caracteres ou é outra coisa?
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: senso em 28 de Fevereiro de 2010, 22:09
Lendo a página do lcd ele está a escrever letras/símbolos para o lcd e a fazer a sua inicialização senão me engano, mas ele deve saber melhor que ninguém o que faz aquela linha de código
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 01 de Março de 2010, 09:44
então tenho de esperar que ele responda.. ::)
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 19 de Abril de 2010, 12:46
boas,

eu tenho este código, só que ele está sempre a apagar e a escrever e assim n se consegue ver nada, e como faço para que as memorias b1 e b2 com um certo valor sejam mostradas no lcd com o valor definido delas?
Código: [Seleccione]
init:
pause 500
i2cslave $C6,i2cslow,i2cbyte
writei2c 0,(254,128,255,19,12)
b1 =12
b2 =15

main1:
writei2c 0,(254,128,255,19,12)       ;codigo para o lcd
pause 10
writei2c 0,("linha um")


main2:
    writei2c 0,(254,128,255,19,12,10)
    pause 10
    writei2c 0,("  Codigo -",b1,b2,"")
   
    goto main1
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: XicoMBD em 25 de Maio de 2010, 14:58
e como faço para que as memorias b1 e b2 com um certo valor sejam mostradas no lcd com o valor definido delas?

Também tenho essa dúvida.

 Já descobriste como?
Será que há alguém que me possa explicar?
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: fre_deri_co em 26 de Maio de 2010, 09:33
Boas XicoMBD... a tua duvida basea-se tambem na programação do display por serial?!
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: XicoMBD em 26 de Maio de 2010, 13:54

Não, Tenho usado i2c...
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: fre_deri_co em 26 de Maio de 2010, 21:47
pior ainda para mim... por paralelo (penso que seja assim que se designe) sei programar display (o mais comum 16x2) em 4 ou 8-Bit.... agora i2c ou serial nunca experimentei  :-\
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: XicoMBD em 26 de Maio de 2010, 21:58
Ok, Obrigado.  :)
Hoje experimentei fazer copy/paste do código do andre_f_carvalho, alterando só as localizações e funcionou.
Estava era a tentar perceber o que fazem certas partes do código como:
Código: [Seleccione]
i2cslave $C6,i2cslow,i2cbyte
writei2c 0,(254,128,255,19,12,4)

--------------------------------------------------

   writei2c 0,(254,128,255,19,12,4)       ;codigo para o lcd
 
-------------------------------------------------
 
   BINTOASCII range, b1,b2,b3
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: fre_deri_co em 26 de Maio de 2010, 22:36
o primeiro comando é a "dizer" e o endereço $C6 (que em binario corresponde ao byte %11000110) que neste caso corresponde ao display assim como ja´vem destipulado de fabrica vai funcionar a i2cslow ou seja a 100kHz ( no caso de i2cfast trata-se de 400kHz, velocidade esta ja destipulada pelo fabricante havendo componentes que permitam funcionar a escolha) por fim i2cbyte refere-se com quantos bytes funcione (i2cbyte = 8 bit, i2cword = 16 bit)
o segundo e terceiro envia informação para o display, sinceramente nao sei de que se trata...
quanto a ultima linha de codigo bintoascii serve para repartir um valor por varias variaveis, por exemplo pretende-se enviar o numero 125 para o display, so se pode enviar caracter a caracter, ou seja tem de se enviar o 1, depois o 2 por fim o 5... para isso assunindo que 125 esta memorizado na variavel b0 faz-se bintoascii b0, b1, b2, b3, assim o valor fica repartido por b1(=1), b2(=2), b3(=5), por im entao envia-se b1, b2 e por fim b3.
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 13 de Junho de 2010, 16:41
 writei2c 0,(254,128,255,19,12,4)

esta parte tem a haver com a tabela aciss (acho que é assim), se fores ver ao site da aliatron no lcd 4x20 serie esta la nas informações alguns destes numeros, serve para dizer se queremos a luz do lcd ligada ou n, o cursor a piscar ou n, saltar uma linha, coisas assim
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 13 de Junho de 2010, 22:54
pessoal encontrei isto xD
http://letsmakerobots.com/node/18875 (http://letsmakerobots.com/node/18875)
olhem para onde vai dar o link da lusorobotica XD
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: XicoMBD em 13 de Junho de 2010, 23:46
Sim, foi a partir dai que conheci este fórum  :)
Título: Re: [Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03
Enviado por: andre_f_carvalho em 14 de Junho de 2010, 20:06
lol :D