Pages: 1 2 [3]   Go Down
Author Topic: Algumas Dúvidas Rápidas  (Read 5623 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

não da certo de jeito nenhum no Proteus smiley-cry

Infelizmente no trabalho eu não posso instalar o Proteus, se você quiser anexar o que tens eu posso tentar abrir e testar a noite, ou no final de semana (mas acho que até lá descobriste o problema).
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

cara tentei usar essa conexão:


p código vem duma library de i2c para lcd...

Code:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(32,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
}

void loop()
{
}

Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fala ai joneco,

Qual a versão dessa lib que você esta usando?

Numa pesquisa rápida vi o caso abaixo:
"Quando retornei para o Arduino 022 o LCD respondeu ao programa Hello Word e agora todo o projeto esta funcionando."
http://labdegaragem.com/profiles/blogs/tutorial-lcd-16x2-com-pcf8574-e-arduino

Existem libs que não funcionam com versões mais recentes da IDE. Veja aqui: http://hmario.home.xs4all.nl/arduino/LiquidCrystal_I2C/
Logged

Portugal
Offline Offline
Edison Member
*
Karma: 27
Posts: 1414
Tomorrow I will know a BIT more than yesterday
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ola.
E claro que isso nunca vai funcionar smiley-mr-green porque motivo tens os pinos A0 A1 e A2 ligados aos pinos de controlo do LCD.Sabes para que servem esses pinos?
Servem para dares o endereço ao Port Expander.
Para lhe construires o endereço ligas esses pinos ao GND ou ao VCC para construires o endereço.Ve no datasheet como
http://www.ti.com/lit/ml/scyb031/scyb031.pdf
Olha para a pagina 2
Code:
LiquidCrystal_I2C lcd(32,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display
Esse endereço entra aqui como primeiro parametro mas tambem aqui colocas 0x32 o que nao é correcto.
Depois tambem te faltam os Pull-ups no BUS I2C.
Quando corregires isto tudo inda resta uma possivel falha que recai sobre a lib.Existe uma versao a rodar que foi alterada pelos chinocas para umas placas que eles vendem no ebaye trocaram as macros dos pinos para lhes facilitar o desenho da placa(fizeram me perder umas horas...)
Apos trocar uns mails com o autor da lib oficial descobri que afinal eu tinha uma dessas libs instalada e ai estavam os meus problemas.O autor original Mario  confirmou me tudo isto e que muitos utilizadores teem este problema.
Para quem quiser confirmar se usa a lib correta aqui fica o mail trocado comigo e com o autor original onde ele explica as diferenças da lib.
Quote
Hi Hugo,

 

The only way your display can work is when you are NOT using my library but
a (copy of my) library that was modified by somebody else to work with your
display.

I know a Chinese company called DFrobot who took my library and modified
(and removed my name!) it so it would work with their PCB. I guess that's
the library you are using.

 

I'll show you some differences between the libraries that explain why it
works with the other connections. There are other differences, but the ones
below are related to the different connections.

 

MY FILES
DFrobot FILES

 

LiquidCrystal_I2C.h
LiquidCrystal_I2C.h

#define LCD_NOBACKLIGHT 0x80
#define LCD_NOBACKLIGHT 0x00

#define En B00010000  // Enable bit
#define En B00000100  // Enable bit

#define Rw B00100000  // Read/Write bit
#define Rw B00000010  // Read/Write bit

#define Rs B01000000  // Register select bit
#define Rs B00000001  // Register select bit

 

LiquidCrystal_I2C.cpp
LiquidCrystal_I2C.cpp

void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) {        void
LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) {

  uint8_t highnib=value>>4;
uint8_t highnib=value&0xf0;

  uint8_t lownib=value & 0x0F;
uint8_t lownib=(value<<4)&0xf0;

  write4bits((highnib)|mode);
write4bits((highnib)|mode);

  write4bits((lownib)|mode);
write4bits((lownib)|mode);

}
}

 

Look at the library you are using. Your content of these files MUST be
different than my files otherwise your display can not work.

 

In fact the pin-out is not really that different, The only difference is
that I used the low nibble for data and the high nibble for control lines.

The Chinese do it the other way around. That's all. I think they choose for
that option to simplify their PCB design.

 

Regards,

 

Mario

« Last Edit: April 19, 2013, 11:39:11 am by HugoPT » Logged

Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B


Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Putz, isso me escapou rs

E olha que olhei os esquemas neste site =S http://ardugonic.blogspot.com.br/

Existe uma versao a rodar que foi alterada pelos chinocas para umas placas que eles vendem no ebaye trocaram as macros dos pinos para lhes facilitar o desenho da placa(fizeram me perder umas horas...)

Valeu HugoPT, assim nos salva umas horas smiley-wink
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hugo,
uma parte fica escrito MY FILES
DFrobot FILES embaixo um código esse código é o original? ou os endereços que são corretos que foram mudados?

Mortis,
eu já usei o esquema desse site no proteus e não foi O_o
Logged

Portugal
Offline Offline
Edison Member
*
Karma: 27
Posts: 1414
Tomorrow I will know a BIT more than yesterday
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A explicaçao e a seguinte:
Code:
MY FILES
DFrobot FILES

 

LiquidCrystal_I2C.h
LiquidCrystal_I2C.h

#define LCD_NOBACKLIGHT 0x80 //Este é o original do autor
#define LCD_NOBACKLIGHT 0x00 //Este é a versao dos chinocas

#define En B00010000  // Enable bit -->Este é o original do autor
#define En B00000100  // Enable bit -->Este é a versao dos chinocas

#define Rw B00100000  // Read/Write bit --> Este é o original do autor
#define Rw B00000010  // Read/Write bit -->Este é a versao dos chinocas

#define Rs B01000000  // Register select bit --> Este é o original do autor
#define Rs B00000001  // Register select bi[/quote] -->Este é a versao dos chinocas


Curiosamente no meu caso eu tropecei numa lib destas com uma board que comprei no ebay.A board funciona só que quando necessitei de usar um PCF em breadboard usei o esquema original nao funcionou devido aos pinos serem trocados.
Ora como a dos chinocas funcionava e na breadboard nao suspeitei de imensas coisas codigo ligaçoes e quando esgotei tudo comparei as linhas de controlo do lcd usando um Logic Analizer e descobri que estavam diferentes.Nunca suspeitei da lib e entao contactei o autor original que me esclareceu sobre eu poder ter uma versao alterada dos chinocas.Defacto tinha ...


« Last Edit: April 19, 2013, 12:58:13 pm by HugoPT » Logged

Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B


Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

eu já usei o esquema desse site no proteus e não foi O_o

Tentarei fazer uns testes no final de semana e te digo o que encontrei

A explicaçao e a seguinte:
(...)

HugoPT,

Eu tenho uns "chinocas" na gaveta, verificarei quais ligações eles tem!

Muito obrigado!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A explicaçao e a seguinte:
Code:
MY FILES
DFrobot FILES

 

LiquidCrystal_I2C.h
LiquidCrystal_I2C.h

#define LCD_NOBACKLIGHT 0x80 //Este é o original do autor
#define LCD_NOBACKLIGHT 0x00 //Este é a versao dos chinocas

#define En B00010000  // Enable bit -->Este é o original do autor
#define En B00000100  // Enable bit -->Este é a versao dos chinocas

#define Rw B00100000  // Read/Write bit --> Este é o original do autor
#define Rw B00000010  // Read/Write bit -->Este é a versao dos chinocas

#define Rs B01000000  // Register select bit --> Este é o original do autor
#define Rs B00000001  // Register select bi[/quote] -->Este é a versao dos chinocas


Curiosamente no meu caso eu tropecei numa lib destas com uma board que comprei no ebay.A board funciona só que quando necessitei de usar um PCF em breadboard usei o esquema original nao funcionou devido aos pinos serem trocados.
Ora como a dos chinocas funcionava e na breadboard nao suspeitei de imensas coisas codigo ligaçoes e quando esgotei tudo comparei as linhas de controlo do lcd usando um Logic Analizer e descobri que estavam diferentes.Nunca suspeitei da lib e entao contactei o autor original que me esclareceu sobre eu poder ter uma versao alterada dos chinocas.Defacto tinha ...



a sim, o meu é original então ^^, ta tenso não arranjei um jeito de funcionar esse maldito lcd smiley-cry. mas coisas que só precisa de high tipo led ou motor dc, vai tenho até uma lib bem maneiro chamada ShiftOutMega
Logged

Portugal
Offline Offline
Edison Member
*
Karma: 27
Posts: 1414
Tomorrow I will know a BIT more than yesterday
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
ta tenso não arranjei um jeito de funcionar esse maldito lcd smiley-cry
Ja corregiste o esquema?
Se nao fizeres isso isso nunca irá funcionar.Monta de acordo com este esquema que ira funcionar.


* image006.png (75.74 KB, 699x377 - viewed 24 times.)
Logged

Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B


Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fala ai HupoPT,

No proteus não tem os pinos 15 e 16 ^^, mas tuas informações foram muito valiosas!

Então Joneco,

Anexo o esquema do proteus e a lib, mas eu usei o ATMega, no lugar do componente UnoR3.

Abaixo o código:
Code:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x38 for a 16 chars and 2 line display

void setup()
{
  Serial.begin(9600);
  lcd.init();
  lcd.print("Hello, world!");
}
int i=0;
void loop()
{
  lcd.setCursor(0,1);
  lcd.print(i);
  lcd.noBacklight();
  delay(100);
  lcd.backlight();
  i++;
}

Meu ponto de partida foi  link abaixo:
http://skyduino.wordpress.com/2011/06/07/librairie-arduino-i2c-pour-le-pcf8574/
Então, parte dos créditos é dele smiley-wink


edit: Não reparem o ammeter, o transistor e a lampada, eu estava fazendo outro teste e esqueci de apagar rs

* I2C-Lcd.zip (60.11 KB - downloaded 11 times.)
* LiquidCrystal_I2C.zip (1221.72 KB - downloaded 9 times.)
« Last Edit: April 20, 2013, 08:36:21 am by Mortis » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fala ai HupoPT,

No proteus não tem os pinos 15 e 16 ^^, mas tuas informações foram muito valiosas!

Então Joneco,

Anexo o esquema do proteus e a lib, mas eu usei o ATMega, no lugar do componente UnoR3.

Abaixo o código:
Code:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x38 for a 16 chars and 2 line display

void setup()
{
  Serial.begin(9600);
  lcd.init();
  lcd.print("Hello, world!");
}
int i=0;
void loop()
{
  lcd.setCursor(0,1);
  lcd.print(i);
  lcd.noBacklight();
  delay(100);
  lcd.backlight();
  i++;
}

Meu ponto de partida foi  link abaixo:
http://skyduino.wordpress.com/2011/06/07/librairie-arduino-i2c-pour-le-pcf8574/
Então, parte dos créditos é dele smiley-wink


edit: Não reparem o ammeter, o transistor e a lampada, eu estava fazendo outro teste e esqueci de apagar rs
Quote
ta tenso não arranjei um jeito de funcionar esse maldito lcd smiley-cry
Ja corregiste o esquema?
Se nao fizeres isso isso nunca irá funcionar.Monta de acordo com este esquema que ira funcionar.


ALELUIA!! hahaha =), gente muito obrigado!!! os 2 deram certo =), mas que beleza ^^
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 508
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Que bom! smiley-wink
Logged

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