Hola a tod@s!!
Llevo semanas trabajando duro con arduino para hacer un proyecto doméstico que consiste en controlar una atmosfera controlada, básicamente Temp y Hum con relés y un DHT11. Uso un arduino Uno.
Hasta ahora he ido superando todos los obstáculos estudiando, viendo proyectos, tutoriales, enlaces web, en este foro...ya tengo un código que funciona ok para el sistema controlando con DHT y varios relés con sus periféricos.
Pero me he estancado con la OLED IC SSD1306. No me quedo corto si habré echado ya unas 20 horas consultando temas OLED...y por cierto hay pocos temas en foros, ni googleando...Estoy por comprarme un LCD
He llegado a poder comunicarme con la pantalla y enviarle un dibujo que representa bien. No pongo el link del código porque viene del blog de un proveedor.
Os pego el código con el que estoy trabajando, copiado linea por linea de youtube:
A él le funciona, a mi me compila, pero no carga datos en OLED.
código:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <Adafruit_GFX.h> //Nucleo de la librería gráfica.
#include <Adafruit_SSD1306.h> //Librería para pantallas OLED monocromas de 128x64 y 128x32
#define DHTPIN 2
#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET);
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16
static unsigned char PROGMEM const logo16_glcd_bmp[] =
{ B00000000, B11000000,
B00000001, B11000000,
B00000001, B11000000,
B00000011, B11100000,
B11110011, B11100000,
B11111110, B11111000,
B01111110, B11111111,
B00110011, B10011111,
B00011111, B11111100,
B00001101, B01110000,
B00011011, B10100000,
B00111111, B11100000,
B00111111, B11110000,
B01111100, B11110000,
B01110000, B01110000,
B00000000, B00110000 };
#define DHTTYPE DHT11
DHT_Unified dht(DHTPIN, DHTTYPE, 30);
void setup() {
dht.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(2000);
display.clearDisplay();
}
void loop() {
// Wait a few seconds between measurements.
delay(1000);
sensors_event_t event;
dht.temperature().getEvent(&event);
if (isnan(event.temperature)){
display.println("error reading temperature!");
} else {
int inF = (event.temperature);
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(10,0);
display.clearDisplay();
display.print(inF);
display.print("");
display.println("C");
display.display();
}
dht.humidity().getEvent(&event);
if (isnan(event.relative_humidity)){
display.println("error reading humidity!");
} else {
int humid = event.relative_humidity;
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(10,40);
display.clearDisplay();
display.print(humid);
display.print("");
display.println(" %H");
display.display();
delay(1000);
}
}
Por favor, si alguién puede echarme un cable...Muchas gracias a tod@s!!