lcd nokia 5110 + moduloSD + rtc 3231 problema SPI

hola que tal, si me pudieran ayudar en la programacion para hacer funcionar el lcd nokia 5110 junto con el modulo sd, por separado funcionan bien pero juntos no… leí que es un problema en la comunicacion SPI pero no se como solucionarlo.aca les dejo la programacion que arme, lo que necesito es que almacene en la SD los datos del sensor y tambien que se lo visualise en el lcd, por eso puse un millis de medio segundo como refresh en el lcd, y cada 10 segundos que almacene los datos en la SD…

#include <SD.h>
#include “DHT.h”
#define DHTPIN 2
#define DHTTYPE DHT22
long DATO = 0;
long REFRESH = 0;
DHT dht(DHTPIN, DHTTYPE);
RTC_DS3231 rtc;
File dataFile;
const int chipSelect = 10; // es de la SD. usa los pine spi 11,12,13

LCD5110 myGLCD(3,4,5,6,7);
// SCK - Pin 3
// MOSI - Pin 4
// DC - Pin 5
// RST - Pin 6
// CS - Pin 7

extern unsigned char SmallFont;
int contrast = 70;

void setup () {

dht.begin();
rtc.begin();
SD.begin(chipSelect);
myGLCD.InitLCD(contrast);
}

void loop () {
float h = dht.readHumidity();
float t = dht.readTemperature();
DateTime now = rtc.now();
dataFile = SD.open(“datalog.txt”, FILE_WRITE);

if (millis()-DATO>10000) {
dataFile.print(now.year(), DEC);
dataFile.print(’/’);
dataFile.print(now.month(), DEC);
dataFile.print(’/’);
dataFile.print(now.day(), DEC);
dataFile.print("—");
dataFile.print(now.hour(), DEC);
dataFile.print(’:’);
dataFile.print(now.minute(), DEC);
dataFile.print(’:’);
dataFile.print(now.second(), DEC);
dataFile.print("—");
dataFile.print(t);
dataFile.print(“C”);
dataFile.print("—");
dataFile.print(h);
dataFile.print(“X100”);
dataFile.println();
dataFile.close();
DATO = millis();
}

if (millis()-REFRESH>500){
myGLCD.setFont(SmallFont);
myGLCD.print(“BIOFABRICA”,CENTER,0);
myGLCD.print(“CAMARA DE CRIA”,CENTER,10);
myGLCD.print(String(now.month(), DEC), 0, 20);
myGLCD.print("-",12,20);
myGLCD.print(String(now.day(), DEC), 14, 20);
myGLCD.print(String(now.hour(), DEC), 40, 20);
myGLCD.print(":",52,20);
myGLCD.print(String(now.minute(), DEC), 56, 20);
myGLCD.print(":",68,20);
myGLCD.print(String(now.second(), DEC), 72, 20);
myGLCD.print("H: ",0,30);
myGLCD.print( String(h),CENTER,30);
myGLCD.print(“x100”,60,30);
myGLCD.print("T: ",0,40);
myGLCD.print(String(t),CENTER,40);
myGLCD.print(“C”,60,40);
myGLCD.update();
REFRESH = millis();
}
}

No das información de los módulos que estas usando, posiblemente tu problema este en el modulo SD coincide con este.


Hay otra versión de este módulo, verificar antes de modificar

Tienes una modificación de esta placa por mal diseño de fabricación.

Con el fin de hacer que funcione bien con otros dispositivos SPI ..........

Conectar el Pin nº 13 de la LVC125A , que controla la salida MISO (soldados a GND por alguna razón), y conectarlo a la clavija no. 8 (señal CS). Como resultado: ahora este módulo funciona a la perfección con otros dispositivos SPI

Separar la patilla del circuito integrado de la placa.

Fuente de las modificaciones

informarse bien antes de realizar cambios, si no estas seguro NO LOS REALICES, yo no me responsabilizo de posibles fallos o roturas.