Pages: [1]   Go Down
Author Topic: Arduino mega + lcd + timer por i2c  (Read 2252 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas....

Ante todo soy novato en esto, estudie electronica hace lo menos 15 años pero estoy algo pez ya..... y necesito ayuda.

Estoy intentando montar dos dispositivos por I2C (un lcd y un modulo reloj (ds1307))) en un arduino mega 2580, pero solo logro hacer funcionar la pantalla, el timer no funciona. Conecto ambas patillas SCA y SCL a las correspondientes de Arduino con una resistencia de pull-up a 5Vcc, la masa GND a la correspondiente y la vcc igual pero nada.

Ademas de indicarme si estoy conectando algo mal he pensado en comprar otro modulo timer por si el que me mandaron no va, alguien me podria recomendar uno en un sitio en concreto de firar???.

Gracias por todo.
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

el RTC funciona por separado?
dices que has conectado una resistencia? o una en cada patilla?


si no te funciona solo el timer, olvidate de la pantalla por ahora. que timer es? ebay? muestra tu codigo, tu esquema de conexión? una foto...
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

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

Gracias por tu interes, hace tiempo que lo intente y ahora lo quiero retomar....

Este es mi hardware:
ARDUINO...


TIMER...


PANTALLA...




Este es mas o menos el esquema:




En cuanto al código use muchas variantes pero ni con el que venia de ejemplo pero la hora nada 00:00:00 buscare el código pero probe con muchas variantes y nada.

Gracias
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pon el código exacto porque yo tengo el mismo RTC y funciona bien con el codigo que viene con el arduino IDE.
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

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

He vuelto a empezarde cero y he usado el codigo de ejemplo:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DS1307.h>

DS1307 rtc(4, 5);
LiquidCrystal_I2C lcd(0x27,20,4);


int a;
int prueba;
void setup()
{


     //SetUp LCD
     lcd.init();
     lcd.backlight();
     lcd.setCursor(5, 1);
     lcd.print("SISTEMA OK");


        // Set the clock to run-mode
  rtc.halt(false);


  // The following lines can be commented out to use the values already stored in the DS1307
  rtc.setDOW(SUNDAY);        // Set Day-of-Week to SUNDAY
  rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(3, 10, 2010);   // Set the date to October 3th, 2010
 
 
  // Set SQW/Out rate to 1Hz, and enable SQW
  rtc.setSQWRate(SQW_RATE_1);
  rtc.enableSQW(true);


}

void loop()
{
      lcd.setCursor(6, 3);
      lcd.print(rtc.getTimeStr());
      delay(1000);

}

El resultado ha sido el siguiente:


Conectando el rtc sin resistencias PU ya que las lleva:


Llevando el lcd y el rtc a las patillas SDA y SCL del Arduino (Va por I2C aunque se vean patillas DB0, DB1,.......):


Y a la corriente de salida del arduino:



Esta muy mal???????


Gracias
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pon fotos mas claras del cableado, eso es un lio.

has probado con el rtc por separado? con el codigo que viene arduino? bueno no se si viene con arduino, te adjunto la libreria.

Code:
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 RTC;

void setup () {
    Serial.begin(57600);
    Wire.begin();
    RTC.begin();

  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
}

void loop () {
    DateTime now = RTC.now();
   
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
   
    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");
   
    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now.unixtime() + 7 * 86400L + 30);
   
    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();
   
    Serial.println();
    delay(3000);
}

* RTClib (1.0.1).zip (5.92 KB - downloaded 21 times.)
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

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

Gracias de nuevo por tu ayuda.

Conectado el Vcc y GND del RTC a las patillas GND y 5V de Arduino:





y el SDA y el SCL del rtc a los del Arduino



He usado la libreria que me pasas y el codigo y el resultado es el siguiente:



Alguna idea...

Gracias otra vez
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

comprueba la velocidad del puerto de serie en tu sketch, creo que por defecto viene con 57600 y comprueba cuanto tienes seleccionado en la pantalla del serial monitor
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

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

Gracias, gracias, y gracias  smiley-grin

Con la libreria que me pasastes funciona sin problemas....



Lo dicho, muchas gracias.

Un saludo
Logged

Pages: [1]   Go Up
Jump to: