[[matériels:accueilmatériels|{{ :iconemaison.jpg?nolink&25|Sommaire Matériels}}]]
===== Adafruit 1,3" 128x64 OLED FeatherWing - SH1107 + 3 buttons (I2C) =====
[Mise à jour le 18/8/2023]
{{ :materiels:afficheurs:langfr-330px-arduino_logo.svg.png?nolink&150|}}
* **Ressources**
* **Adafruit** 1,3" 128x64 OLED FeatherWing - SH1107 + 3 buttons \\
* **Distribué** par Mouser
* **Lectures connexes**
* Les afficheurs graphiques : généralités et primitives
* Bibliothèque - Adafruit GFX Graphics Library
* 0,96" 128x64 OLED 2864 Display module - SSD1306 (I2C)
* Adafruit 1.8" 128x160 Color TFT LCD display with MicroSD Card v2 - ST7735R (SPI)
----
==== 1. Description ====
{{ :materiels:afficheurs:affsh1107.png?nolink&200|}}
Le module complémentaire **Adafruit FeatherWing 128x64 OLED** pour **Feather** est un petit **écran monochrome de 1,3 pouces** de diagonale avec **trois boutons** pouvant être utilisés sur n'importe quelle carte mère Feather. Cet afficheur utilise un bus **I2C** pour se connecter et dispose d'un circuit de réinitialisation automatique et d'un bouton de réinitialisation sur le dessus. Il est composé de 128x64 pixels OLED blancs individuels et aucun rétroéclairage n'est requis car l'écran produit sa propre lumière. Le connecteur STEMMA QT compatible **SparkFun Qwiic** est inclus pour le bus I2C qui fournit le plug and play pour les appareils STEMMA QT, Qwiic et Grove I2C.
* **Caractéristiques**
* 128x64 OLED
* Écran monochrome de 1,3 pouces de diagonale
* Dimensions PCB 22,9 mm x 50,9 mm
* ~Zone d'affichage de 25,8 mm
* Connecteur STEMMA QT compatible SparkFun Qwiic pour le bus I2C
* **Bibliothèques à installer dans l'IDE Arduino ou dans PlatformIO (VSCode)**
* Adafruit gfx library
* Adafruit SH110X
==== 2. Exemples ====
=== 2.1 Un premier exemple pour tester l'afficheur avec l'IDE Arduino ===
* Fichier -> Exemples -> Adafruit SHT110X -> **OLED_featherwing.ino**
=== 2.2 Mise en oeuvre de l'afficheur avec un capteur BME280 ===
* //Description// : mesure de de la température, de l'humidité et de la pression à l'aide d'un capteur **Sparkfun BME280**, test des boutons-poussoirs et affichage sur un écran Oled **Adafruit SH1107**. L'écran et le capteur sont reliés via le système Qwiic de Sparkfun.
{{ :materiels:afficheurs:bme280sh1107.jpg?nolink&600 |}}
* //Matériels//
* Carte à microcontrôleur : [[arduino:uc:esp8266|Adafruit Feather Huzzah ESP8266 + Support Particle]]
* Afficheur : [[materiels:afficheurs:ada1107|Adafruit OLED SH1107]]
* Capteur (température, humidité et pression) : [[materiels:capteurs:environnement:environnement|Sparkfun BME280]]
* //Bibliothèques à installer dans l'IDE Arduino ou dans PlatformIO (VSCode)//
* Adafruit GFX Library by Adafruit [GitHub]
* Adafruit SH110X by Adafruit [GitHub]
* SparkFun BME280 by SparkFun Electronics [GitHub]
* //Code Arduino//
{{ :materiels:capteurs:distance:arduinoico.png?nolink&50|}}
// Matériels : Adafruit Feather Huzzah ESP8266 + Support Particle, Adafruit OLED SH1107, Sparkfun BME280, câble Qwiic
// Logiciel : Arduino
#include
#include
#include
#include
#include "SparkFunBME280.h"
#define BUTTON_A 0
#define BUTTON_B 16
#define BUTTON_C 2
// Constructeurs
Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire);
BME280 bme_280; // L'adresse du circuit BME280 est 0x77 par défaut
void setup()
{
// Bus I2C
Wire.begin(); // Initialisation
Wire.setClock(400000); // Fast I2C
display.begin(0x3C, true); // L'addresse de l'afficheur est 0x3C par défaut
// Configuration de l'affichage
display.setRotation(1); // Affichage horizontal
display.setTextSize(1); // Horizontal
display.setTextColor(SH110X_WHITE);
display.clearDisplay(); // Pour ne pas afficher le logo Adafruit chargé
// automatiquement à la mise sous tension
// Test de la communication avec le capteur
if (bme_280.beginI2C() == false)
{
display.println("DEFAUT(s)");
display.println("1. Le capteur BME280 ne repond pas ! ");
display.println();
display.print("BLOCAGE du PROGRAMME");
display.display(); // Transfert du buffer sur l'écran
while (1)
delay(10); // Blocage du programme
}
// Connexion des boutons-poussoir
pinMode(BUTTON_A, INPUT_PULLUP);
pinMode(BUTTON_B, INPUT_PULLUP);
pinMode(BUTTON_C, INPUT_PULLUP);
}
void loop()
{
// Efface le buffer
display.clearDisplay();
// Test des boutons
display.setCursor(0, 0);
if (!digitalRead(BUTTON_A))
display.print("[A]");
if (!digitalRead(BUTTON_B))
display.print("[B]");
if (!digitalRead(BUTTON_C))
display.print("[C]");
// Titre
display.setCursor(20, 0);
display.println("Sparkfun BME280");
// Humidité
display.setCursor(0, 12);
display.print("Humidite : ");
display.print(bme_280.readFloatHumidity(), 0);
display.println("%");
// Pression en hPa
display.setCursor(0, 22);
display.print("Pression : ");
display.print(bme_280.readFloatPressure() / 100, 0);
display.println("hPa");
// Température
display.setCursor(0, 32);
display.print("Temp : ");
display.print(bme_280.readTempC(), 1);
display.print("C");
// Infos
display.setCursor(5, 52);
display.print("Appuyer sur A, B, C");
// yield();
display.display(); // Transfert du buffer sur l'écran
delay(10);
}
{{ :arduino:uc:platformioico.png?nolink&50|}}
Télécharger le projet PlatformIO pour VSCode.