Paso 3: Establecer canales de comunicación - continuó
Lo primero que necesitamos es la dirección de esclavo. Este número siete bits identifica un dispositivo en particular para que el maestro sepa qué esclavo necesita comunicarse con.
De la hoja de datos de SSD1306 , la dirección de esclavo de este controlador puede ser "0111100" o "0111101" según SA0 (ya sea alta o baja). Su valor por defecto es alto, pero si desea cambiar la dirección de esclavo, puede alambre SA0 a cualquier pin digital de Arduino y establézcalo en cero. En este tutorial, hemos decidido no cambiar SA0, así, la dirección de nuestro esclavo 0x3D. Puesto que la OLED siempre estará en modo de escritura, la R / W # bit (bits de lectura y escritura) se establece en "0".
Lo siguiente que necesitamos es el byte de control. Esto se define por Co (bit de continuación) y D / C# (bit de selección de comando de datos), seguido por seis "0s". Co determina si el byte siguiente va a ser un solo byte, o una secuencia de bytes, mientras que D / C# determina si el octeto va a ser tratado como datos o un comando. Así, terminamos por tener cuatro bytes de control posibles:
- 0 x 40: flujo de datos
- 0xC0: solo octeto de datos
- 0 x 80: byte de comando único
- 0 x 00: secuencia de comandos
Encontrará una lista de comandos en la tabla 9-1 en la hoja de datos de SSD1306.