• Welcome to LusoRobótica - Robótica em Português.
 

[Ajuda] programar picaxe para LCD 4X20 I2C / Serial LCD03

Started by andre_f_carvalho, 27 de February de 2010, 00:24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

andre_f_carvalho

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
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


senso

#2
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
Avr fanboy


amando96

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

andre_f_carvalho

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

senso

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
Avr fanboy

andre_f_carvalho

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? 

senso

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/
Avr fanboy

andre_f_carvalho

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?

senso

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
Avr fanboy

andre_f_carvalho


andre_f_carvalho

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?
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


XicoMBD

Quote from: andre_f_carvalho on 19 de April de 2010, 12:46
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?

fre_deri_co

Boas XicoMBD... a tua duvida basea-se tambem na programação do display por serial?!
que sempre se partilhe o conhecimento para que sempre se evolua!!!
Frederico Pereira