Compré una de esas pantallas OLED de 0.96 "baratas de China, ebay. En la descripción del producto se indica que es una pantalla I2C, Ebay Link . Quiero usarlo con un ATmega8.
Lo conecté en consecuencia a los tutoriales que encontré en línea:
- Pin1, GND: GND
- Pin2, VCC: VCC (3.3V)
- Pin3, D0: Pin28, SCL (Pullup a 5V)
- Pin4, D1: Pin27, SDA (Pullup a 5V)
- Pin5, RST, PORTB.0
- Pin6, DC: PORTB.2
- Pin7, CS: PORTB.1
y este es mi código (99% el mismo que en la página github de la biblioteca):
#define F_CPU 1000000
#include <util/delay.h>
#include <stdint.h>
#include "libs/SSD1306.h"
int main(void){
DDRB=0xFF;
DDRC=0xFF;
PORTB = PORTB & ~(1<<PB0);
PORTB = PORTB & ~(1<<PB1);
PORTB = PORTB | (1 << PB0);
_delay_ms(100);
// This is our buffer
// Each byte = 8 pixels on the screen
uint8_t buffer[1024];
// Only two lines of code to initiate the driver
// and to send our framebuffer
SSD1306 myDisplay;
PORTB = PORTB | (1 << PB2);
myDisplay.sendFramebuffer(buffer);
PORTB = PORTB & ~(1<<PB2);
// Hardware function to reverse the pixels
// (swap black and white pixel)
myDisplay.invert(1);
// Revert back to normal display
myDisplay.invert(0);
return 0;
}
Uso (o quiero usar) esta biblioteca: Github Solo porque lo encontré y pensé que se veía bien, también podría usar otro.
Lo que verifiqué hasta ahora es:
- Las conexiones de los cables están bien y como se describe anteriormente
- El reloj del sistema es 1 MHz
- Probó otra pantalla
En todos los casos, la pantalla permanece oscura y negra, ni siquiera parpadea.
Cuando miré la parte trasera de la pantalla, pensé que la descripción es extraña (vea la imagen adjunta).
Se ha escrito que para la conexión IIC, las resistencias R1, R4, R6, R7 y R8 deberían estar conectadas, mientras que, de hecho, solo R3, R4 están conectadas, lo que correspondería a la conexión SPI. ¿Estoy malinterpretando algo o la descripción de eBay fue incorrecta?
¿Puede alguien ayudarme? Saludos cordiales Yo