Pages: [1] 2 3   Go Down
Author Topic: Problema com LCD 20 x 4  (Read 2688 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pessoal estou a implementar um LXD 20x4 no meu projeto fiz as ligações conforme está no no exemplo do arduino
Utilizei um código já feito para um LCD 20x4 verifico e não tem problema depois quando faço upload aparece o erro abaixo descrito:
Binary sketch size: 2.630 bytes (of a 32.256 byte maximum) - 8% used

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): programmer is out of sync
processing.app.debug.RunnerException: Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
   at processing.app.debug.BasicUploader.uploadUsingPreferences(BasicUploader.java:126)
   at processing.app.Sketch.upload(Sketch.java:1649)
   at processing.app.Sketch.exportApplet(Sketch.java:1608)
   at processing.app.Sketch.exportApplet(Sketch.java:1580)
   at processing.app.Editor$DefaultExportHandler.run(Editor.java:2408)
   at java.lang.Thread.run(Thread.java:619)

O que será isto??
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

O erro deixou de dar e agora não dá erro nenhum, mas não consigo mostrar nada no lcd e não consigo perceber porquê!!!
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3216
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Onde estás a ligar o LCD?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Já resolvi eu não tinha um potenciometro e não estava a ligar o Vo a nada agora já liguei ao grnd e está tudo bem.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

De qualquer forma obrigado bubulindo:
Em relação ao sensor de corrente é para receber correntes negativas e tenho de trabalhar com 8 volts estou a pensar fazer uma regra 3 simples para chegar ao valor correcto.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pessoal estou com novos problemas em passar os valores para o LCD
1-Tenho por exemplo o sensor a medir 23A a seguir corto a corrente ficando a 0 mas no lcd fica 03 ou seja o 3 não desaparece como faço para limpar o aqueles 3 carateres do lcd sempre que muda de valores ou simplesmente outro processo qualquer.

2-Quis fazer uma espécie de tabela no LCD como mostra na imagem e quis fazer traços verticais para separar as colunas umas das outras ficou assim como a imagem demonstra

3-Linha 3 coluna 0 upostamente deveria aparecer um P porque não aparece aquele (Quadrado) estragou-se??


* C360_2013-07-18-12-15-32-284.jpg (426.08 KB, 2048x1536 - viewed 42 times.)
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3216
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tens o código?

Isso é simples de resolver.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

O código que fiz no primeiro tópico foi;
  //-----------------------Sensor de corrente 235A(BAT)-----------------------------------------------------------
  lcd.setCursor(3,1);
  lcd.print(12);                                                   //Valor de tensão na bateria

  valor235 = analogRead(A5);                                       //Valor do pino Analógico 5
  //Sinal entre 1V e 3V
  //5V=1024 1.47mV = (0.8085*1024)/5 = 165.5808                    //1.96-(0.235*4.9)=0.8085   
  //5V=1024 2.45mV = (3.115*1024)/5 = 638,952 ~639                 //1.96+(0.235*4.9)=3.115
 minimo235=((1.86-(0.1*9.4))*1024/5);
 maximo235=((1.86+(0.1*9.4))*1024/5);
 corrente235 = map(valor235, minimo235, maximo235, -235, 235);     //Calculo
  Serial.print("BAT:");
  Serial.print(corrente235);                                       //Apresentação dos resultados da corrente no serial monitor
  Serial.print("A");
  lcd.setCursor(3, 2);
  lcd.print(corrente235);                                          //Apresentação do resultado/temperatura no LCD
  delay(2000);                                                     //Actualização dos dados a cada 2 segundo

  PBAT=TBAT*corrente235;                                           //Potência da bateria
  Serial.print(PBAT);
  lcd.setCursor(3,3);
  lcd.print(PBAT);
  //--------------------------------------------------------------------------------------------------------------------

O código que fiz para o segundo tópico foi:
lcd.setCursor(18,0);
   lcd.println("|");
   lcd.setCursor(18,1);
   lcd.println("|");
   lcd.setCursor(18,2);
   lcd.println("|");
   lcd.setCursor(18,3);
   lcd.println("|");
   
   lcd.setCursor(13,0);
   lcd.println("|");
   lcd.setCursor(13,1);
   lcd.println("|");
   lcd.setCursor(13,2);
   lcd.println("|");
   lcd.setCursor(13,3);
   lcd.println("|");
   
E o código que fiz para o terceiro tópico foi apenas:
 //-----------------------1ªColuna------------------------------------------------------------
  lcd.setCursor(0,1);//Coluna 0,1  Linha 0 (V)
  lcd.print("V= ");
  lcd.setCursor(0,2);//Coluna 0,1  Linha 1 (I)
  lcd.print("I=");
  lcd.setCursor(0,3);//Coluna 0.1  Linha 2 (P)
  lcd.print("P=");

Abraço
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3216
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E o problema está em que código?

Antes de escreveres para o LCD, faz lcd.clear. Isto acontece porque o LCD faz um buffering dos dados que escreveste. Então se escreves algo com dois caracteres, XX... e depois com 1 caractere Y, o resultado fica YX. É este o problema que estás a ver.

Se fizeres clear e voltares a escrever tudo, evitas isso.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Todos os tópicos tem problemas como decrevi acima e como se vê na imagem a questão é em que parte do código é que insiro o lcd.clear()??
E dá para limpar os (quadradinhos) do lcd que quiser??? Como se faz? É que nos tópicos 1 e 2 que descrevi acima vou ter de usar de certeza não sei é como?
Cumprimentos
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3216
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Fazes clear antes de escreveres no lcd.

não tens função de apagar, mas podes escrever ' '.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Já está tudo resolvido
Obrigado
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pessoal o meu lcd 20x4 está a tornar-se pequeno para a quantidade de informação que lá quero inserir então decidi pôr um switch e cada vez que carrego no seu botão ele muda de imagem por enquanto só vou ter duas imagens mas depois hei-de ter mais.
Gostava que alguém me dissesse como se faz a programação disto se possivel.

Cumprimentos
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3216
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Engraçado teres referido a palavra switch... já que é com isso que implementas menus.

Code:

#define NUM_MENUS   4 //exemplo, 4 menus...

unsigned char var_menus = 0;

if (botao_pressionado == TRUE) // pseudocodigo...
   var_menus++;

switch(var_menus%NUM_MENUS) {

case 0:
    lcd.print("menu 0");
    break;
case 1:
    lcd.print("menu 1");
    break;
case 2:
    lcd.print("menu 2");
    break;
case 3:
    lcd.print("menu 3");
    break;
}

algo assim será o que pretendes.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sim é mesmo isso que pretendo depois ponho o que quero em cada menu e cada vez que pressiono o botão ele muda de menu.
Não estou a conseguir compilar não sei bem porquê está-me a dar este erro:

sketch_jul29b:9: error: expected unqualified-id before 'if'
sketch_jul29b:12: error: expected unqualified-id before 'switch'
Logged

Pages: [1] 2 3   Go Up
Jump to: