/* Petit programme pour tester l'afficheur miniature OLED 128 x 64.
   Exemples d'affichages de figures géométriques.
   Les tracés sont réalisés en noir sur fond blanc.
   Dans cet exemple A0 et A1 sont utilisées en sorties.     */

#include <Adafruit_ssd1306syp.h>

// Définition des broches pour la ligne I2C.
#define broche_SDA 14 // A0 utilisée en sortie.
#define broche_SCL 15 // A1 utilisée en sortie.

// Initialisation des broches en sorties et affectations.
Adafruit_ssd1306syp display(broche_SDA, broche_SCL);

// variables du programme;
byte X,Y;

void setup() {
  display.initialize(); }
  
void loop() {
  display.clear();
  display.update();
  Blanking(); // Blanchit tout l'écran.
  // Trace deux rectangles.
  display.drawRect(5, 5, 118, 54, BLACK); // Coordonnées et taille.
  display.drawRect(112, 53, -96, -42, BLACK); // Tracé "inversé".
  // Trace les diagonales.
  display.drawLine(122, 58, 5, 5,BLACK); // Coordonnées début, coordonnées fin.
  display.drawLine(5, 58, 122, 5,BLACK); // Coordonnées début, coordonnées fin.
  for (byte I=0; I < 60; I= I+5)
       {display.drawCircle(64, 31, I, BLACK);} // Centre, rayon.
  display.update();
  INFINI: goto INFINI;  
  }
  
void Blanking() {// Blanchit tout l'écran.
  // Trace 64 lignes Horizontales.
  for (byte I=0; I < 64; I++) display.drawLine(0, I, 128, I, WHITE); }
