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

LCD 16x1 + Arduino

Started by LoneWolf, 09 de July de 2010, 13:27

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

LoneWolf

Ol, pois esta parte esta difícil de perceber, foi isto que quis dizer?

void loop () {

" e aqui dentro introduzo o código outra vez?"
}

obrigado pela ajuda que me tem dado mas não perca mais tempo com o meu problema, mais umas horas de leitura talvez resolva isto.

Abraços e boa continuação  ;)
Blog: A Visão do Lobo

Nick antigo: kilobyte

fred gomes

sim, ao introduzires o codigo o setup so é corrido uma vez , como referi anteiormente, e ao colocares lá o codigo é natural que so escreva uma vez, pois o programa nao volta a correr no setup (so no inicio) já o loop está sempre a ser corrido.
cumprimentos,
Fred

LoneWolf

Bem, obrigado mais uma vez, eu já tinha tentado isso mas incluía tudo e dava erro e depois pensei, se vou incluir tudo se fosse algo muito grande ia ocupar a memoria toda e assim ia ter "problemas", e pensava que tinha de ser de outra maneira, introduzindo um simples código tipo: return, while, etc e assim ocuparia menos espaço.

Abraços e boa continuação e mais uma vez obrigado por tudo, e já agora posso usar por ex. o ecrã de telemóvel ao invés deste tipo de lcd ? é que tenho alguns nokia 5110 e outros modelos e marcas também.
Blog: A Visão do Lobo

Nick antigo: kilobyte

fred gomes

deves poder..
mas eu nunca usei e nao sei como se programa..

Ps: digo que deves poder pq ah aí tutoriais com display´s desses.
cumprimentos,
Fred

LoneWolf

Boas, sim por isso é que perguntei já tinha visto o do tutorial do 3310, e estava a interrogar-me se poderia usar o de outro modelo (5110 por ex.). Outra ideia que tinha era ver se dava para ligar uma pen bluetooth ao arduino entre outras coisas mas isto é só ideias e talvez disparatadas lol.
Blog: A Visão do Lobo

Nick antigo: kilobyte

senso

Usar outros lcd's procura na internet antes para saber se existe datasheet do controlador do lcd na rua para poderes criar software e saber o que cada pino é, se não é muito dificil fazer alguma coisa.
Que tipo de erros estavas a ter?
É que até encheres o arduino precisas de muito muito código mesmo.
Ligar uma pen bluetooth é dificil pois o arduino não é capaz de se fazer de host de usb, existe um shield que faz isso mas é muito limitado.
Avr fanboy

FET_Destroyer

Podes sempre fazer o teu arduino bluetooth shield, algo deste genero http://www.flickr.com/photos/21847757@N08/2958709025/in/pool-make

LoneWolf

Boas noites,

...senso, eu quando falei dos erros não os estava a ter( fiz-me intender mal, desculpa) o que eu queria dizer era que pensava a que havia outra forma de fazer repetir o texto sem ter de escrever o código outra vez no loop, por exemplo, imaginando que o código já era enorme ( que não era o caso ) mas supondo que era, ter que voltar a escrever o código todo podia não caber no arduino ou que fica-se a a justa podia vir a ter erros de funcionamento e devido a isso pensei que pode-se haver um comando que realizasse isso tipo " repetir função x" e assim poupando espaço na memoria, ver se agora me fiz intender. Quanto ao Bluetooth sei que há esse shield bluetooth que faz isso, mas como já vi coisas incríveis na net feitas com o arduino e dai a ideia de se usar um pen bluetooth para o efeito mas pelos vistos é difícil fazer tal coisa, a não ser que o link que o  FET_Destroyer postou  seja isso, mas não deve de ser pois ao que me pareceu aquele bluetooth tem muitos pin's ao contrario das pen's que só tem 4. Agora o caso dos LCD's de telemovel ao que vejo so mesmo o 3310, pois este tem pin's que se veja para soldar os fios de ligação, porque os LCD's de tele que tenho aqui comigo são os da nokia 5110, 6150, 8210, 6610 ou 3100 ( não porque so tenho mesmo o lcd do tele ao contrario dos outros ) da SamSung tenho SGH-R210S, SGH-600 (x2), Sony Ericsson o T610 hei-de ter mais alguns so não sei onde infelizmente, estes modelos pelos vistos são aqueles do tipo 2 como explica o post aqui no forum do LCD 3310, que tem uma fita de borracha, ou la o que é aqui, que difícil ou impossível de soldar seja o que for.

... e já me alonguei demais outra vez  :-[
obrigado  FET_Destroyer pelo link que da sempre jeito.

Abraços e boa continuação  ;)     
Blog: A Visão do Lobo

Nick antigo: kilobyte

senso

Mas o setup não foi de todo feito para colocar lá código, o setup como o nome diz foi criado com a intenção de fazeres lá a inicialização do teu programa/sistema e depois no loop é que colocas o teu código todo, se quiseres que só corra uma vez usa um if e uma variavel, depois de correr uma vez metes a variavel a false e deixa de satisfazer o if e já não corre mais essa parte do código.
E se queres repetir algo fazes uma função, não metes pedaços gigantes de código iguais no teu programa.
Avr fanboy

LoneWolf

Boas, não sei leu os post's  anteriores mas o código que fiz para o lcd 16x1 estar a passar continuamente foi assim:
Quote#include <LiquidCrystal.h>

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

void setup() {
  lcd.begin(8, 2);
  lcd.setCursor(0, 0);
  lcd.print("Ola, Mun");
  lcd.setCursor(0, 1);
  lcd.print("do Nasci");
  delay(3000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("LusoRobo");
  lcd.setCursor(0, 1);
  lcd.print("tica.com");
  delay(3000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Obrigado");
  lcd.setCursor(0, 1);
  lcd.print(" a todos");
  delay(3000);
  lcd.clear();

}
void loop () {
  lcd.setCursor(0, 0);
  lcd.print("Ola, Mun");
  lcd.setCursor(0, 1);
  lcd.print("do Nasci");
  delay(3000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("LusoRobo");
  lcd.setCursor(0, 1);
  lcd.print("tica.com");
  delay(3000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Obrigado");
  lcd.setCursor(0, 1);
  lcd.print(" a todos");
  delay(3000);
  lcd.clear();
}

...foi assim que fiz ai com as dicas os membros, não sei é o mais certo mas deu para fazer a experiência. Se acha que não devia ser assim se poder dizer como é que devia ter feito agradecia para não ficar na ignorância.

Obrigado, abraços e boa continuação  ;)   
Blog: A Visão do Lobo

Nick antigo: kilobyte

FET_Destroyer

Boas kilobyte
O facto de ter 4 pinos e o shield ter mais não quer dizer que não sirvam para a mesma coisa. Os da pen só tem 4pinos pois usam USB, mas se comprares módulos bluetooth serial (não sei se existem), provavelmente só terias 3pinos de interface. Se os módulos bluetooth forem por SPI, tens 4pinos + alimentação. Ambos devem fazer a mesma coisa, utilizam é protocolos diferentes para transferir os dados.

Cumps

LoneWolf

Boas  FET_Destroyer,

...obrigado pela explicação já começo a intender um pouco mais de bluetooth, então é como o senso disse :

Quote"Ligar uma pen bluetooth é dificil pois o arduino não é capaz de se fazer de host de usb"
..mas é pena lol, foi como eu disse num post anterior, ideia disparatada.

Abraços e boa continuação  ;)

Blog: A Visão do Lobo

Nick antigo: kilobyte

FET_Destroyer

Boas
Quanto ao arduino não sei, mas o PIC24 já tem USB host e as bibliotecas da microchip tem exemplos disso, mas nunca mexi neles.
Cumps

senso

Tecnicamente e segundo o que li, o bluetooth não é mais que uma ligação serial sem fios, supostamente não é muito dificil de o meter a funcionar, mas o atmega não tem qualquer capacidade usb em hardware, só em software é que se pode fazer algumas coisas, mas host não, existem chips da atmel com algumas capacidades em hardware para usb, mas nenhum deles está disponivel em PDIP.
Quando ao código, podes fazer assim:
include <LiquidCrystal.h>

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

void setup() {
  lcd.begin(8, 2);
}
void loop () {
  lcd.setCursor(0, 0);
  lcd.print("Ola, Mun");
  lcd.setCursor(0, 1);
  lcd.print("do Nasci");
  delay(3000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("LusoRobo");
  lcd.setCursor(0, 1);
  lcd.print("tica.com");
  delay(3000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Obrigado");
  lcd.setCursor(0, 1);
  lcd.print(" a todos");
  delay(3000);
  lcd.clear();
}

Que vai fazer exactamente o mesmo.
Avr fanboy

FET_Destroyer

O bluetooth é mais que uma ligação serial sem fios, é considerado uma WPAN. O bluetooth é parecido com o Zigbee e permite-te fazer redes até 8 nós ou algo do género. O que muitas vezes acontece é os PC interpretarem isso como uma porta serie virtual.
Agora como os dados são interpretados pela porta serie isso também não sei, nunca usei bluetooth.