Olá pessoal.

Alguém ai já passou por esse problema? Se incluo a biblioteca Wire.c no meu sketch, meu arduino fica instável passando a escrever caracteres estranhos no LCD e/ou na Serial, e/ou reiniciando sozinho.

É algo estranho de compreender. Se desabilito a Wire.c, funciona que uma beleza. Se habilito, fica tudo uma tremenda m3lec@.

Para mim isso é péssimo, pois preciso interagir com eeprom i2c, RTC e LCD_i2c. Sem descartar o Wiznet5100. E pelo que captei por cima, em algumas pesquisas, resumi que não é só comigo que isso ocorre.

Mais alguém ai tem ou teve esse problema? =/

#include <SPI.h>
#include <Ethernet.h>
#include <SoftwareSerial.h>
// #include <Wire.h>
// #include <PS2Keyboard.h>
// #include <LiquidCrystal_I2C.h>

Exibições: 1948

Responder esta

Respostas a este tópico

Andei fazendo testes "está rodando a mais de 2 meses", eu queria saber qual seria a distância que poderia colocar os componentes I2C, estão a 4 metros entre eles, e o sinal chega tranquilo, mas há um problema intermitente de "perder" a comunicação.

Meu esquema é um ATMEGA8 (SLAVE) controlando um LCD, e um outro ATMEGA328 (MASTER) fazendo amostragem de PRESSÃO em um equipamento, eles se comunicam por I2C, com um cabo de 4 pares, a mais ou menos 4 metros, e pelo menos umas 10 vezes por dia tenho que reiniciar o SLAVE e muitas vezes reiniciar o MASTER.
As rotinas eu mudei para comunicar por RS232 TTL (5V), e não travou nenhuma vez, acho que algo de errado ocorre na LIB i2C implementada no Arduino.

Fiz uma pesquisa, e aparentemente um cara encontrou alguns dos motivos do problema com a comunicação i2C,

eu não tenho como modificar meu projeto no momento, para testar, mas se você quiser tentar...

http://arduino.cc/forum/index.php/topic,19624.0.html

vi que o poste eh bem antigo, e a biblioteca nova do Wire.c já foi modificada recentemente. Mesmo assim fiz testes e o programa nem sobe. To Nessa perenga. Agora meu arduino tá funcionando. Daqui um pouco ele enlouquece.

onde eu baixo a biblioteca nova para testar?

Mas se você substituiu a twi.c/h no utility/ do library Wire?

Pois na descrição diz apenas que modificaram para implementar o multiplo "Start"

Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts

meu problema é sempre que o arduino reinicia, ele liga ou desliga aleatoriamente alguns pinos ..

Não sei se é conflito com wire, ou softareserial, alguem pode da uma olhada no codigo?

http://pastebin.com/c01s4ZEx

Estou estudando e fazendo uma série de experimentos. A conclusao até agora é problema com o biblioteca Wire ou no Bootloader do UNO.

no mega tb, pois esse teste que fiz é com o mega.

eu uso um expansor de portas, que quando eu reinicio o mega, ele ativa aleatoriamente o expansor de porta..

tenho que bloquear isso, pois fica ligado 16 reles com lampadas.. ligando as 16 de uma vez.. caso tenha queda de energia..

acabei de fazer um teste:

Desativei a SoftwareSerial.h, e mantive a Wire.c

Tudo funcionou perfeitamente. Minha conhclusão até então é algum conflito entre as referidas bibliotecas. Alguma dica de outro SoftwareSerial para testarmos?

vou fazer testes agora.

Hora estava lendo no site oficial e encontrei isto:

Limitations

The library(SoftwareSerial) has the following known limitations:

  • If using multiple software serial ports, only one can receive data at a time.
  • Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
  • Not all pins on the Leonardo support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

No caso imagino que devo fazer um interrupt ao enviar e receber dados de um determinado dispositivo.

Nao compila. Diz que deve usar a biblioteca oficial da arduino :/

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço