Versuche schon seit 2 Tagen das teil zum laufen zu kriegen..
1OLED 1.3 von AZ-Deliv. im Test Super nur die Treiber beisen sich mit dem Programm.
unten ist das Bild (Test) in Ordnung….
Installierter Treiber u8g2
Versuche schon seit 2 Tagen das teil zum laufen zu kriegen..
1OLED 1.3 von AZ-Deliv. im Test Super nur die Treiber beisen sich mit dem Programm.
unten ist das Bild (Test) in Ordnung….
Installierter Treiber u8g2
Du hast mein volles Mitgefühl!
Erklär mal ein wenig genauer was du da machst.
Warte nur kurz, bis ein Hellseher dein Problem löst.
keine Bange…war Schon Spät gestern….bevor noch was Passiert…
also….
Wetter Station mit einem BME280 und einem OLEd 1.3
Ich wollte nur sicher gehen das das OLED noch in Ordnung ist…
sind soweit alle in ordnung, habe bis eben einige Tests mit dem BME über seriellen Monitor
der ist auch in Ordnung.
ich hatte laut meinem Arduino Almanach….mir die Adafruit SSD1306 installiert….
nur diese erzeugt immer noch mein komisches Bild…bei Gleichzeitiger Anzeige am Ser. Monitor
sensor Arbeitet OLED nicht (nicht Richtig!)
mein Händler AZ Delivery hat aber einen Ganz Andere Treiber Quelle….U8g2
dort wird aber mein OLED komischer weise aber Richtig dargestellt…..?
was ist zwischen den Beiden Treibern Anderst ?
mit dieser Zeile muss es irgendwie zusammen hängen?
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE);
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
/#include <SPI.h>
#define BME_SCK 18
#define BME_MISO 19
#define BME_MOSI 23
#define BME_CS 5/
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &Wire);
unsigned long delayTime;
void setup() {
Serial.begin(9600);
Serial.println(F("BME280 test"));
// by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x64)
// init done
display.display();
delay(100);
display.clearDisplay();
display.display();
display.setTextSize(1.2);
display.setTextColor(WHITE);
bool status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
Serial.println("-- Default Test --");
delayTime = 1000;
Serial.println();
}
void loop() {
display.setCursor(0,0);
display.clearDisplay();
Serial.print("Temperature = "); Serial.print(bme.readTemperature()); Serial.println(" *C");
display.print("Temperature: "); display.print(bme.readTemperature()); display.println(" *C");
Serial.print("Pressure = "); Serial.print(bme.readPressure() / 100.0F); Serial.println(" hPa");
display.print("Pressure: "); display.print(bme.readPressure() / 100.0F); display.println(" hPa");
Serial.print("Humidity = "); Serial.print(bme.readHumidity()); Serial.println(" %");
display.print("Humidity: "); display.print(bme.readHumidity()); display.println(" %");
Serial.println();
display.display();
delay(1000);
}
Du machst Sachen
Der Test mit dem OLED war wahrscheinlich mit U8G2 gemacht, im deinem Sketsch willst du Adafruit nutzen, jedoch mit flachem Treiber.
Die 1,3" Displays haben meistens SH1106.
werfe den ganzen Adafruit kram raus und nutzt den U8G2.
Ich bau dir was.
Kompiliert sauber, nicht getestet da ich keinen 1,3" Display frei habe.
/*
Universal 8bit Graphics Library (https://github.com/olikraus/u8g2/)
Copyright (c) 2016, olikraus@gmail.com
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <Arduino.h>
#include <Wire.h>
#include <U8x8lib.h> // https://github.com/olikraus/U8g2_Arduino
U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
Adafruit_BME280 bme;
#define SEALEVELPRESSURE_HPA (1013.25)
void setup(void)
{
u8x8.begin();
u8x8.setPowerSave(0);
bool status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
}
void loop(void)
{
u8x8.setFont(u8x8_font_chroma48medium8_r);
u8x8.setCursor(0, 0);
u8x8.clearDisplay();
Serial.print("Temperature = "); Serial.print(bme.readTemperature()); Serial.println(" *C");
u8x8.print("Temperature: "); u8x8.print(bme.readTemperature()); u8x8.println(" *C");
Serial.print("Pressure = "); Serial.print(bme.readPressure() / 100.0F); Serial.println(" hPa");
u8x8.print("Pressure: "); u8x8.print(bme.readPressure() / 100.0F); u8x8.println(" hPa");
Serial.print("Humidity = "); Serial.print(bme.readHumidity()); Serial.println(" %");
u8x8.print("Humidity: "); u8x8.print(bme.readHumidity()); u8x8.println(" %");
Serial.println();
}
Weitere Schriftarten findest du unter U8g2_Arduino
keywords.txt, musst aber nach u8x8 suchen.
soweit so gut…..es hat die Größe eines…0.91 zoll Displays und das Flackern kommt warscheinlich davon das das display kleiner sein müsste…
ich das 0.91er dürfte die besagten Pixel haben….128 x 32 Pixel kompatibe
das müsste ich nur noch anpassen das wärs?
Also was für Display hast du?
u8x8.clearDisplay();
mein Fehler das macht das Flackern, lesche oder kommentiere das
/*
HelloWorld.ino
"Hello World" version foru8x8 API
Universal 8bit Graphics Library (https://github.com/olikraus/u8g2/)
Copyright (c) 2016, olikraus@gmail.com
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <Arduino.h>
#include <Wire.h>
#include <U8x8lib.h>
U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
Adafruit_BME280 bme;
#define SEALEVELPRESSURE_HPA (1013.25)
void setup(void)
{
u8x8.begin();
u8x8.setPowerSave(0);
u8x8.clearDisplay();
bool status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
}
void loop(void)
{
u8x8.setFont(u8x8_font_chroma48medium8_r);
u8x8.setCursor(0, 0);
Serial.print("Temperature = "); Serial.print(bme.readTemperature()); Serial.println(" *C");
u8x8.print("Temperature: "); u8x8.print(bme.readTemperature()); u8x8.println(" *C");
Serial.print("Pressure = "); Serial.print(bme.readPressure() / 100.0F); Serial.println(" hPa");
u8x8.print("Pressure: "); u8x8.print(bme.readPressure() / 100.0F); u8x8.println(" hPa");
Serial.print("Humidity = "); Serial.print(bme.readHumidity()); Serial.println(" %");
u8x8.print("Humidity: "); u8x8.print(bme.readHumidity()); u8x8.println(" %");
Serial.println();
}
ein 1.3 OLED von Az-delivery 128X64 pixel.
Für BME280 nutze die
das Funktioniert doch schon wie es soll..
Ja nur die Adafruit verbraucht viel Speicher.
sonnst alles wie bei Adafruit?
der Schmale Sichbare Bildschirm bleibt?
dachte er wäre Größer? (Breiter)
er spart so Strom?
Nein, die Abfrage ist etwas anders.
Verstehe nicht.
Die Position stellt man mit
u8x8.setCursor(x, y)
x ist die Horizontale Pos.
y ist Vertikale Pos.
Nein, um Stromsparren brauch man zB. ein ATtiny1614
Hast du deswegen den Sensor und das Oled an 3,3Volt angeschlossen?
Warum nicht an 5Volt ?
ne alles in Ordnung alles auf 5V
ich kenne diesen Treibe noch nicht.