mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Servo mit Messgerät steuern


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: William R. (willriker)
Datum:

Bewertung
-6 lesenswert
nicht lesenswert
Guten Tag liebe Community,

ich bin neu hier und habe natürlich direkt eine Frage.

In der Vergangenheit habe ich einen Arduino UNOR3 mit einem einfachen
Servomotor angesteuert, im Grund erstmal keine so große Sache.

Die Steuerung erfolgte zu Testzwecken über eine vorher definierte 
Zeitspanne.

Die Frage, die ich nun habe ist, wie kann ich mittels eines Messgerätes,
Temperatur, Luftfeuchtigkeit z. B. die Steuerung durchführen, so, dass 
der
Servo seinen "Befehl" über permanent gemessene Werte erhält.

Vielen Dank!

Autor: CC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass dem Arduino die Messwerte zukommen (Sensor, Schnittstelle vom DMM, 
...) und ihn dann dementsprechend den Servo ansteuern.

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich verstehe nicht, was mit dieser "die Steuerung" gemeint ist.

I.A. legt man auf mathematischer Basis Regeln fest, die dann etwas 
bewirken.

Also gehe in Dich und formuliere Deine Anforderungen ganz genau, so dass 
jeder Leser dein Ziel auch verstehen kann.

Autor: Teo D. (teoderix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl M. schrieb:
> Also gehe in Dich und formuliere Deine Anforderungen ganz genau, so dass
> jeder Leser dein Ziel auch verstehen kann.

Was ist da nicht zu verstehen?
Er will ein paar Sensoren anschließen und kennt den Unterschied der 
Begriffen nicht, oder er hat von Sensoren noch nie was gehört und will 
wirklich ein DMM anschließen.

Autor: Karl M. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Teo D. schrieb:
> Was ist da nicht zu verstehen?

Bitte erkläre dann im Detail, was er mit "die Steuerung" mein.

Autor: Teo D. (teoderix)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Karl M. schrieb:
> Bitte erkläre dann im Detail, was er mit "die Steuerung" mein.

Du Zäumst das Pferd von hinten auf!

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> In der Vergangenheit habe ich einen Arduino UNOR3 mit einem einfachen
> Servomotor angesteuert, im Grund erstmal keine so große Sache.

Kannst du das mal etwas erklären?
Normalerweise wird der Servomotor angesteuert und nicht der Arduino.
Meinst du einen Modellbauservo? Auch der hat nur einen Eingang, aber 
keinen Ausgang.

Autor: William R. (willriker)
Datum:

Bewertung
-4 lesenswert
nicht lesenswert
Hallo,

eines vorweg, ja, natrülich habe ich den Servo angesteuert
und nicht den Arduino, "kleiner Syntax dreher"

vielen Dank aber für die Resonanz,
aus dem Kontext ergibt sich die Steuerung des Servomotors.

Der Servotmotor wird ja angesteuert und dies erfolgt mittels Befehl.
Mir war nicht klar, dass ich das diffrenzieren musste.

Wie dem auch sei,

Wir haben also einen Arduino,

mit - Servo
und - z. B. einem Luftfeuchtesensor, der die Luftfeuchtigkeit ermittelt,
und nein, wir brauchen jetzt auch keine Differenzierung nach relativer 
Luftffeuchtigkeit, etc. denn das ist nur ein Beispiel.

Die ganz einfache Frage ist,
wie vermittel ich zwischen den beiden mit dem Arduino verbundenen
"Komponenten" Servo und z. B. Luftfeuchtemesser,
damit hier, z. B. bei bestimmten Werten eine bestimmte Aktion ausgeführt 
wird, - ja natürlich mit Befehlen, schon klar


Z. B.
If - Luffeuchtesensor Wert ist 30%
Then - move 30 degree in welche Richtung auch immer

oder so ähnlich,

Die Frage ist, wie muss so eine Programmierung, solch eine Routine 
aussehen und kann ich diese quasi zusammenkopieren oder ist das 
wesentlich schwieriger

: Bearbeitet durch User
Autor: Joe F. (easylife)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
William R. schrieb:
> In der Vergangenheit habe ich einen Arduino UNOR3 mit einem einfachen
> Servomotor angesteuert, im Grund erstmal keine so große Sache.
>

Wohl eher umgekehrt, du hast den Servomotor mit dem Arduino 
angesteuert... oder?

> Die Steuerung erfolgte zu Testzwecken über eine vorher definierte
> Zeitspanne.

Was hat die Zeitspanne hier für einen Einfluss?

> Die Frage, die ich nun habe ist, wie kann ich mittels eines Messgerätes,
> Temperatur, Luftfeuchtigkeit z. B. die Steuerung durchführen, so, dass
> der
> Servo seinen "Befehl" über permanent gemessene Werte erhält.

Du programmierst eine Endlosschleife, in der du die aktuellen 
Sensorwerte einliest und im Anschluss basierend auf den neuen Werten den 
Servo entsprechend nachsteuert.
Wenn sich der Sensorwert erwartungsgemäß nur alle paar Sekunden ändert, 
kann sich dein Programm nach jedem "Werte-Einlesen" und 
"Servo-Nachsteuern" erstmal eine Sekunde lang schlafen legen, Musik 
hören oder andere Dinge verrichten.

: Bearbeitet durch User
Autor: Thomas S. (selli69)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Grüße auf deinem Weg zum Ziel das "P", das "I" und das "D" recht 
herzlich von mir.

scnr

Autor: William R. (willriker)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Thomas S. schrieb:
> Grüße auf deinem Weg zum Ziel das "P", das "I" und das "D" recht
> herzlich von mir.
>
> scnr

Was soll das?

Autor: William R. (willriker)
Datum:

Bewertung
-4 lesenswert
nicht lesenswert
Joe F. schrieb:
> William R. schrieb:
>> In der Vergangenheit habe ich einen Arduino UNOR3 mit einem einfachen
>> Servomotor angesteuert, im Grund erstmal keine so große Sache.
>>
>
> Wohl eher umgekehrt, du hast den Servomotor mit dem Arduino
> angesteuert... oder?

das habe ich bereits richtig gestellt, aber danke

>
>> Die Steuerung erfolgte zu Testzwecken über eine vorher definierte
>> Zeitspanne.
>
> Was hat die Zeitspanne hier für einen Einfluss?

nun, die Zeitspanne gibt vor wie lange es dauert bis eine vorher 
definierte Aktion ausgeführt wird, sie ist also nicht dynamisch,
- was soll die Frage?


>
>> Die Frage, die ich nun habe ist, wie kann ich mittels eines Messgerätes,
>> Temperatur, Luftfeuchtigkeit z. B. die Steuerung durchführen, so, dass
>> der
>> Servo seinen "Befehl" über permanent gemessene Werte erhält.
>
> Du programmierst eine Endlosschleife, in der du die aktuellen
> Sensorwerte einliest und im Anschluss basierend auf den neuen Werten den
> Servo entsprechend nachsteuert.
> Wenn sich der Sensorwert erwartungsgemäß nur alle paar Sekunden ändert,
> kann sich dein Programm nach jedem "Werte-Einlesen" und
> "Servo-Nachsteuern" erstmal eine Sekunde lang schlafen legen, Musik
> hören oder andere Dinge verrichten.

Endlossschleife, aha, wie kann so etwas in Programmiersprache,
im Idealfall an einem Beispiel demonstriert, aussehen?

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Ich würde Dir dazu raten, ein Tutorial oder Lehrbuch für die 
Programmiersprache deiner Wahl durch zu arbeiten. Wir können das im 
Rahmen einer Diskussion nicht leisten. Programmieren lernt man nicht 
übers Wochenende.

Bei Dir kommt dazu, dass du außerdem noch etwas über Elektronik lernen 
musst.

Wenn du gar keine Ahnung hast, wie du anfangen kannst, dann lass dich 
hiervon anleiten:

http://stefanfrings.de/mikrocontroller_buch/index.html

Du kannst gerne konkrete Fragen stellen, wenn beim Durcharbeiten des 
Tutorials/Buches Fragen aufkommen.

: Bearbeitet durch User
Autor: Thomas S. (selli69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> Was soll das?

Das soll ein dezenter Hinweis darauf sein, dass da noch einiges an Weg 
vor Dir liegt, wenn Du dein Vorhaben realisieren willst.

Das was Du da bauen willst nennt man in Fachkreisen eine "Regler". Und 
Regelkreise sind eine Wissenschaft für sich, zumindest dann wenn diese 
wie gewünscht funktionieren sollen.

Wenn Du das nach dem Schema "Wenn zu wenig, dann zustellen, wenn zu viel 
dann wegnehmen" aufziehst, dann wird:

- Der zu regelnde Wert Überschwingen,
- Der ganze Regelkreis permanent schwingen,
- Die Wirkung des Reglers entweder zu zaghaft oder zu heftig sein.

Dafür haben sich schlaue Leute sog. PID (Parallel-Integral-Differential) 
Regler einfallen lassen, welche (richtig parametriert) das gewünschte 
Regelverhalten zeigen.

Mal zum anlesen:
https://www.ifr.ing.tu-bs.de/static/files/lehre/vorlesungen/gdr/Skript_GdR.pdf

Dein Glück ist, dass es PID Bibliotheken für den Arduino gibt. Dein Pech 
ist, dass Du dich um diese zu nutzen in die Materie einarbeiten musst.

Autor: William R. (willriker)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
>
> Wenn Du das nach dem Schema "Wenn zu wenig, dann zustellen, wenn zu viel
> dann wegnehmen" aufziehst, dann wird:
>
> - Der zu regelnde Wert Überschwingen,
> - Der ganze Regelkreis permanent schwingen,
> - Die Wirkung des Reglers entweder zu zaghaft oder zu heftig sein.

ich verstehe, also vom Grundprinzip her,
und wenn ich nun eine, ich nenne es mal, Schaltung benötige,
die nur einmal reagiert,
quasi, wenn ein Wert erreicht ist nur einmal und dannach wieder manuell
resetet wird?

das wäre dann kein ständiges hin und her,
wäre das einfacher?

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
William R. schrieb:
> das wäre dann kein ständiges hin und her, wäre das einfacher?

Ja, das wäre einfacher. Aber auch das programmiert sich nicht von 
selbst.

Autor: Thomas S. (selli69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> ich verstehe, also vom Grundprinzip her,
> und wenn ich nun eine, ich nenne es mal, Schaltung benötige,
> die nur einmal reagiert,
> quasi, wenn ein Wert erreicht ist nur einmal und dannach wieder manuell
> resetet wird?
>
> das wäre dann kein ständiges hin und her,
> wäre das einfacher?

Wie stefanus schon sagte, solltest Du dich erst mal, zumindest 
oberflächlich, in die Grundlagen einlesen. Danach kannst ja mal 
probieren erst einen Steuerkreis und dann einen einfachen Regelkreis 
selbst zu programmieren. Wenn das gemacht hast und dir das Ergebnis 
nicht reicht, dann musst Du dich ein Wenig mit der Regelungstechnik 
beschäftigen.

Sorry, mit einfach zusammenkopieren kommt man halt nicht weit.

Autor: William R. (willriker)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
ok, Ich besorge mir erstmal die noch erforderlichen Komponenten, und 
melde mich dann wieder, wenn ich verzweifelt bin ;-)

danke erstmal :-)

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Du kannst ja mal deine Einkaufliste vorzeigen, dann schaue wir Drüber 
und sagen Dir Bescheid, ob etwas fehlt oder nicht zusammen passt.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Du kannst ja mal deine Einkaufliste vorzeigen, dann schaue wir Drüber

Eine LED und ein Drehpoti sollten für's erste reichen, mal die 
Grundlagen einer Abfrage zu erarbeiten.

Die Fragestellung ist dermaßen unspezifisch, dass ich eine Beratung hier 
im Forum für nicht machbar halte. Wenn Du es gerne machen willst, 
kannst' ihm natürlich den fertigen Code schreiben und zum Download 
anbieten.

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> Endlossschleife, aha, wie kann so etwas in Programmiersprache,
> im Idealfall an einem Beispiel demonstriert, aussehen?

Um deine Frage zu beantworten, in C sähe das z.B. so aus:
for(;;)
{
  tue_dies_immer_wieder_und_solange_es_strom_gibt();
}

oder auch
while(1)
{
  read_sensor();
  update_servo();
  msleep(1000);
}

und ältere Semester programmieren manchmal noch gerne
start:
read_sensor();
update_servo();
msleep(1000);
goto start;
macht man heute aber nicht mehr. goto = böse.

: Bearbeitet durch User
Autor: Regler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas S. schrieb:
> Parallel

Proportional

Und ein Großteil an Regelkreisen ist ziemlich gutmütig und mit einem 
Zweipunktregler gut machbar. Siehe z. B. Kühlschrank. Nen PID brauchts 
bei weitem nicht immer. Auf der anderen Seite kann man natürlich auch 
beliebig viel Aufwand treiben und z. B. Zustandsraumregelung mit 
Kalman-Filter implementieren.

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino Nutzer wiederum sparen sich das, und nutzen einfach die Funktion 
"loop()", die eh schon vom Compiler in eine Endlosschleife übersetzt 
wird:
loop()
{
  read_sensor();
  update_servo();
  msleep(1000);
}

Regler schrieb:
> Und ein Großteil an Regelkreisen ist ziemlich gutmütig und mit einem
> Zweipunktregler gut machbar. Siehe z. B. Kühlschrank. Nen PID brauchts
> bei weitem nicht immer.

Ganz genau. Wenn das System eh so träge ist, dass es nicht überschwingen 
kann, oder der Überschwinger einfach egal ist, hat man es einfacher.
Ausserdem ist ja gar nicht gesagt, dass es hier überhaupt um einen 
Regelkreis geht. Vielleicht soll der Servo ja nur einen Zeiger drehen, 
der die Temperatur anzeigt?

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> Du programmierst eine Endlosschleife, in der du die aktuellen
> Sensorwerte einliest und im Anschluss basierend auf den neuen Werten den
> Servo entsprechend nachsteuert.

Die Endlosschleife braucht man bei Arduino nicht zu programmieren.
Loop() wird schon in einer Endlosschleife aufgerufen - darum der Name 
"Loop".

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Etwas OT, aber durchaus interessant, dass es (meistens) so gut 
funktioniert:
Um die Netzfrequenz stabil zu halten werden bei Abweichung vom Soll 
einfach ab Überschreitung einer definierten Grenze "Regelleistungen" 
aktiviert, die kurzfristig entweder Strom liefern oder verbrauchen 
können.
Da keinerlei Vorhersagen getroffen werden können, wie sich der 
Stromverbrauch entwickeln wird, kann auch kein PID, Kalman o.ä. 
Algorithmus zur Hilfe genommen werden.
Das System basiert einfach darauf, in insgesamt 4 Stufen und mit 
zeitlichem Abstand immer stärkere Regelleistungen zu aktivieren.
Gibt natürlich kein komplett "flaches" Ergebnis, funktioniert aber gut 
genug für die Praxis.

Autor: Thomas S. (selli69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Regler schrieb:
> Thomas S. schrieb:
>> Parallel
>
> Proportional

Mea Culpa! Passiert mir immer wieder...

>
> Und ein Großteil an Regelkreisen ist ziemlich gutmütig und mit einem
> Zweipunktregler gut machbar. Siehe z. B. Kühlschrank.

Der schwingt ja auch. Was dem Kühlgut und dem der es verspeist jedoch 
egal ist.

> Nen PID brauchts
> bei weitem nicht immer.

Natürlich nicht. Doch der TO verwendet ein Servo. Diese sind (so es sich 
um ein Modellbauservo handelt) nicht für ihre Haltbarkeit bekannt. Da 
ist es schon von Vorteil, wenn sich dieser so wenig wie möglich bewegen 
muss. Nem Bimetall wie im Kühlschrank ist das egal.

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Manfred schrieb:
> Eine LED und ein Drehpoti sollten für's erste reichen, mal die
> Grundlagen einer Abfrage zu erarbeiten.

Ich würde noch einen Vorwiderstand für die LED dazu kaufen.

Erste Regelkreise kann man sehr gut mit einer Glühlampe und einem 
Heißleiter ausprobieren.

: Bearbeitet durch User
Autor: William R. (willriker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Du kannst ja mal deine Einkaufliste vorzeigen, dann schaue wir Drüber
> und sagen Dir Bescheid, ob etwas fehlt oder nicht zusammen passt.

Hallo,
ich dachte an die folgenden Komponenten,

was ich noch habe;

- smraza UNOR3
- einen kleinen blauen Servo (SG90)
- Jumperkabel und LED´s habe ich auch relativ viele.
was ich lediglich bestellen muss ist der BMP280


kann ich denn eigentlich auch einen Adurino Nano verwenden?

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
William R. schrieb:
> kann ich denn eigentlich auch einen Adurino Nano verwenden?

Na klar!

Autor: William R. (willriker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na gut, hier mal die aktuelle Bestellung,

- BMP280,
- SG90 Servo (nochmal einen neuen bestellt)
- 0,91 Zoll OLED Display display blau
- Arduino UNO R3
- Arduino Nano (nochmal mitbestellt)


ansonsten habe ich noch etliche Jumper, LED´s etc. hier.

Es geht, sobald die Komponenten da sind, noch um die richtige 
Verkabelung
und natürlich den Sketch.

Ich habe ja schon fragmentarisch das eine oder andere hier gelesen.

Leider bin ich ein kompletter Noob und bräuchte dahingehend sichern noch
mehr hilfe, selbstverständlich werde ich, sobald alles verkabelt und 
programmiert ist, entsprechende Fotos und evtl. auch Videos zur 
Verfügung stellen, damit sich jeder ein Bild davon machen kann, sobald 
alles,
zumindest verkabelt und mit aufgespieltem Code, läuft

Ohne euch würde ich das wohl kaum schaffen,

bis jetzt schon einmal Danke!

: Bearbeitet durch User
Autor: Stefanus F. (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Jetzt habe ich doch einen Einwand, bzw. einen Punkt zum Bedenken.

Diese OLED Displays haben nur eine kurze Lebensdauer von ca. 30.000 
Stunden (4 Jahre). Sie eignen sich daher nicht gut für Dauerbetrieb.

Du könntest es mit sehr niedriger Helligkeit betreiben und nur bei 
Tastendruck oder mit Hilfe eines Bewegungsmelders für ein paar Minuten 
auf Hell umstellen. Das dürfte die Lebensdauer erheblich erhöhen.

Du kannst ein "Wifi Kit 8" Modul kaufen, das ist ein mit Arduino 
programmierbarer ESP8266 mit 32bit Kern, WLAN und diesem Display.

Anleitungen:
http://stefanfrings.de/esp8266/index.html#wifikit8
https://arduino-projekte.info/servo-ansteuern-arduino-esp8266-esp32/

: Bearbeitet durch User
Autor: William R. (willriker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja, das OLED Display ist auch optional,
wobei 30.000 Betriebsstunden doch erheblich sind und
die Kosten sehr gering.
Sobald es defekt ist, kann man es einfach austauschen.

Ich möchte jedoch betonen, es dient am Anfang lediglich der Kontrolle 
der Funktionalität im Feldtest.

Wenn ich also mit dem programmierten Arduino draußen verschiedene Höhen 
aufsuche, möchte ich ablesen können, wie genau der BMP280 arbeitet.

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
William R. schrieb:
> und die Kosten sehr gering.
> Sobald es defekt ist, kann man es einfach austauschen.

Das dachte ich auch zunächst für keine basteleien. Andererseits ist 
fraglich, ob man diese Displays in 4 Jahren noch kaufen kann.

Ich kann mir zwar einen Vorrat anlegen, aber Geld und Lagerplatz sind 
begrenzt. Außerdem bin ich sehr unsicher, ob diese OLED nicht bereits 
beim herum liegen vergammeln.

Weiß jemand, wie lange man OLED lagern kann?

: Bearbeitet durch User
Autor: Thomas S. (selli69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Weiß jemand, wie lange man OLED lagern kann?

Welche Suchbegriffe hast Du bei deiner Google-Suche denn verwendet, dass 
Du keine Antwort auf diese Frage bekommst? Kann ich dir dabei helfen in 
dem ich vllt ein paar passende Suchbegriffe beisteuere?

: Bearbeitet durch User
Autor: Stefanus F. (stefanus)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Thomas S. schrieb:
> Welche Suchbegriffe hast Du bei deiner Google-Suche denn verwendet

"OLED Lagerzeit"
"OLED Lagerbarkeit"
"OLED Haltbarkeit"

Gefunden habe ich damit nur Infos zur Leuchtdauer, aber die brauche ich 
nicht, da die ja im Datenblatt des Displays stehen. Ich suche Infos 
dazu, ob solche Displays (gerne auch speziell dieses eine) 
wahrscheinlich in 20 Jahren noch funktionieren, wenn man sie nur 
zeitweise leuchten lässt oder dauerhaft aber sehr dunkel.

: Bearbeitet durch User
Autor: Thomas S. (selli69)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
"Das größte technische Problem stellt die vergleichsweise geringe 
Lebensdauer mancher aus organischen Materialien bestehenden Bauelemente 
dar. Bei (O)LEDs bezeichnet man als Lebensdauer die mittlere 
Betriebszeit, nach der die Leuchtdichte auf die Hälfte abgesunken ist. 
Dabei haben blaue OLEDs die geringste Lebensdauer. Für weiße 
Lichtquellen, wie bei Monitoren, ist für die insgesamt nutzbare 
Lebensdauer daher die blaue Komponente die begrenzende. 2011 wurden für 
weiße Lichtquellen 5000 Stunden (bei 1000 cd/m²)[46] und 12.000 Stunden 
(bei 100 cd/m²)[47] angegeben. Im Vergleich dazu weisen handelsübliche 
weiße LEDs für die Hintergrundbeleuchtung bei LCD-Monitoren eine 
mittlere Betriebszeit in der Größenordnung von 30.000 Stunden auf.[48]

Die Lebensdauer von OLEDs ist temperaturabhängig: Eine gut gekühlte OLED 
(gleich welcher Farbe) mit geringer Anfangsleuchtstärke hat immer eine 
höhere Lebensdauer als eine OLED, die ohne Kühlung von Anfang an mit der 
maximalen Leuchtstärke betrieben wird. Der Grund sind Diffusionsprozesse 
in der OLED, die bei höheren Temperaturen schneller ablaufen. Die 
Lebensdauer bei mittlerer bis geringer Helligkeit wird aus dem Wert bei 
maximaler Helligkeit extrapoliert, da der Test von OLED-Materialien bei 
geringer Leuchtstärke über mehrere Zehn- bis wenige Hunderttausende von 
Stunden nicht praktikabel ist.

Ein weiterer Nachteil der OLED ist die im Vergleich zu Leuchtdioden 
geringere Lichtausbeute im Bereich von 40 lm/W bis 60 lm/W bei 
handelsüblichen OLEDs. Spitzenwerte von ausgesuchten Labormustern bei 
OLEDs erzielen Werte knapp über 100 lm/W.[49] Herkömmliche Leuchtdioden 
für Beleuchtungszwecke erzielen Werte von 200 lm/W, bei speziell 
optimierten LEDs bis knapp über 300 lm/W.[50]

Neben geringerer Lebensdauer und Lichtausbeute reagieren OLEDs auch auf 
bestimmte äußere Stoffe empfindlich. So kann neben Wasser, durch 
Luftfeuchtigkeit allgegenwärtig, auch eindringender Sauerstoff das 
organische Material zerstören. Daher ist es wichtig, das Display 
hermetisch zu kapseln und vor äußeren Einflüssen zu schützen. Die nötige 
starre Kapselung beeinträchtigt die Flexibilität. Durch Korrosion mit 
Sauerstoff ist vor allem die hochreaktive Injektionsschicht aus Calcium 
und Barium gefährdet. Typische Versagenserscheinungen sind kreisrunde, 
wachsende nichtleuchtende Bereiche, sogenannte „Dark Spots“. Ursache ist 
häufig eine Partikelbelastung beim Aufdampfen der Metallschichten. Auch 
die mikroskopischen Kanten der Mehrschichtstruktur werden durch 
Korrosion unterwandert, was zur Abnahme der effektiv leuchtenden 
Pixelfläche bei Bildschirmanwendungen führt." -- Quelle: Wikipedia

Daraus kann der aufmerksame Leser folgern:

Ja, OLED Displays können unabhängig vom eigentlichen Betrieb altern, vor 
allem, wenn sie scheisse gemacht sind. Absolute Zahlen kann man daraus 
jedoch nicht ableiten.

BTW: "OLED shelf life" wäre als Suchbegriff wohl am geeignetsten um das 
Maximum an Treffern zu erzielen.

: Bearbeitet durch User
Autor: J. T. (chaoskind)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas S. schrieb:
> Dafür haben sich schlaue Leute sog. PID (Parallel-Integral-Differential)
> Regler

Das P steht für proportional und nicht für parallel...

Autor: Thomas S. (selli69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
J. T. schrieb:
> Thomas S. schrieb:
>> Dafür haben sich schlaue Leute sog. PID (Parallel-Integral-Differential)
>> Regler
>
> Das P steht für proportional und nicht für parallel...

Die Asche für diesen fürchterlichen Fehltritt habe ich mir ca. 10 Posts 
weiter oben schon aufs Haupt gestreut und das Büßerhemd trage ich heute 
immer noch.

Dass die Finger vieler Foristen immer so viel schneller sind als die 
Bereitschaft zu erkunden ob ein gemachter Fehler bereits eingestanden 
wurde erstaunt mich immer wieder aufs neue. Interessante Zeiten sind das 
heute...

Autor: J. T. (chaoskind)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Thomas S. schrieb:
> Dass die Finger vieler Foristen immer so viel schneller sind als die
> Bereitschaft zu erkunden ob ein gemachter Fehler bereits eingestanden
> wurde erstaunt mich immer wieder aufs neue. Interessante Zeiten sind das
> heute...

Ich hatte noch ein zwei Beiträge weiter gelesen, da wurde nix dazu 
angemerkt. Also meinen Beitrag geschrieben, da man sowas ja nicht 
unkommentiert stehen lassen kann. Ich les doch nicht den ganzen Thread 
nach, um zu sehen, ob es schon richtig gestellt wurde. Sonst hab ich ja 
vergessen, was ich eigentlich sagen wollte, wenn ich am ende angekommen 
bin.

Autor: Tim T. (tim_taylor) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
J. T. schrieb:
> Ich hatte noch ein zwei Beiträge weiter gelesen, da wurde nix dazu
> angemerkt. Also meinen Beitrag geschrieben, da man sowas ja nicht
> unkommentiert stehen lassen kann. Ich les doch nicht den ganzen Thread
> nach, um zu sehen, ob es schon richtig gestellt wurde. Sonst hab ich ja
> vergessen, was ich eigentlich sagen wollte, wenn ich am ende angekommen
> bin.

Was ja nicht unbedingt so schlecht wäre...

Autor: Irgendwer (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
William R. schrieb:
> Wenn ich also mit dem programmierten Arduino draußen verschiedene Höhen
> aufsuche, möchte ich ablesen können, wie genau der BMP280 arbeitet.

Dir ist aber schon klar das das Ding vorrangig ein Barometer ist?
Als Absolutwert-Höhenmesser ist der völlig untauglich. Als Relativwert 
kannst du vorher das Ding auf deine Bezugshöhe bringen und es dort quasi 
"Nullen", danach dann zügig auf deine Messhöhe befördern und ablesen...

Autor: William R. (willriker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube das Thema OLED hat sich zu einem eigenen entwickelt und 
sollte
evtl. nicht in diesem Thread vermengt behandelt werden, - Vielen Dank! 
:-)

Zurück zum eigentlichen Thema, wenn ich darum bitten darf,

Die Konstruktion nämlich und die Programmierung #(Sketch)
und evtl. die erforderlichen Bibliotheken die einbezogen werden müssen,
lassen wir mal das Display komplett weg, für den Moment jedenfalls,

Autor: Chr. M. (snowfly)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du in der Arduino-GUI unter Datei/Beispiele/...
ein Beispiel öffnest das deinem Problem nahe kommt
findest du dort Antworten auf deine Fragen.

EDIT:Noch ein Vorschlag, ich würde noch eine
NodeMCU, WemosD1 oder sonst ein esp8266 Board
bestellen. Die sind so schön einfach zum basteln. :)
Bei Display-Anwendungen ist es bei den ATmegas eh schnell vorbei.

: Bearbeitet durch User
Autor: William R. (willriker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe den BMP280 mit dem Uno verbunden,

VCC - 3,5V
GND - GND
SCL - A5
SDA - A4

Ich habe die Bibliothek: Adafruit BMP280 Library 1.0.2 installiert

Wenn ich nun aus dieser Bibliothek den Test hochladen will,
erscheint das Folgende;

Adarfruit_Sensor.h: No such file or directory

Hier der Sketch:

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11
#define BMP_CS 10

Adafruit_BMP280 bme; // I2C
//Adafruit_BMP280 bme(BMP_CS); // hardware SPI
//Adafruit_BMP280 bme(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);

void setup() {
  Serial.begin(9600);
  Serial.println(F("BMP280 test"));

  if (!bme.begin()) {
    Serial.println("Could not find a valid BMP280 sensor, check 
wiring!");
    while (1);
  }
}

void loop() {
    Serial.print("Temperature = ");
    Serial.print(bme.readTemperature());
    Serial.println(" *C");

    Serial.print("Pressure = ");
    Serial.print(bme.readPressure());
    Serial.println(" Pa");

    Serial.print("Approx altitude = ");
    Serial.print(bme.readAltitude(1013.25)); // this should be adjusted 
to your local forcase
    Serial.println(" m");

    Serial.println();
    delay(2000);
}



Ich weis jetzt nicht genau was der Sensor h eigentlich ist
und habe diesen aus dem Sketch entfernt,

neue Fehlermeldung

exit Status 1
Fehler beim kompilieren für das Board Arduino/Genuino Uno.

Ähm, was mache ich da falsch,

Ich nehme an, ich benötige noch eine Bibliothek,
die  Adafruit_Sensor library gibt es aber scheinbar nicht für den BMP280
über den Reiter Bibliotheken verwalten.

: Bearbeitet durch User
Autor: Harald W. (wilhelms)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Thomas S. schrieb:

> Die Asche für diesen fürchterlichen Fehltritt habe ich mir ca. 10 Posts
> weiter oben schon aufs Haupt gestreut und das Büßerhemd trage ich heute
> immer noch.

Send Pics. :-)

Autor: Harald W. (wilhelms)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Irgendwer schrieb:

> Dir ist aber schon klar das das Ding vorrangig ein Barometer ist?
> Als Absolutwert-Höhenmesser ist der völlig untauglich. Als Relativwert
> kannst du vorher das Ding auf deine Bezugshöhe bringen und es dort quasi
> "Nullen", danach dann zügig auf deine Messhöhe befördern und ablesen...

Das gilt aber für alle barometrischen Höhenmesser. Trotzdem werden sie
mangels Alternativen vielfach benutzt, wobei einem diese Einschränkungen
natürlich klar sein sollten.

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> Ich nehme an, ich benötige noch eine Bibliothek

Ja, offensichtlich. Nicht alle Bibliotheken sind in dem Menü der IDE 
eingebettet - vor allem nicht diejenigen, die von Fremdherstellern (wie 
Adafruit) kommen.

Wenn du das nächste mal eine Frage zu einer Fehlermeldung hast, dann 
aktiviere unter Datei/Voreinstellungen die "ausführliche Ausgabe" un 
zitiere die ganze Meldung. Dafür unterstützt die IDE die üblichen 
Tastenkombinationen der Zwischenablage (Strg-C und Strg-V).

Hier ist der Link zur benötigen Libraries: 
https://github.com/adafruit/Adafruit_Sensor
Dort findest du weiter unten einen Link für deinen Sensor: 
https://github.com/adafruit/Adafruit_BME280_Library/
Lies die dortige Anleitung!

Autor: William R. (willriker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, das hochladen hat funktioniert,
nun erhalte ich im seriellen Monitor die Info;
18:44:12.624 -> Probe BMP280: Sensor missing

was kann das denn bitte bedeuten?

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> was kann das denn bitte bedeuten?

Das die Kommunikation mit dem Sensor nicht funktioniert.

Messe den Signalpegel an SDA und SCL, vorzugsweise mit einem 
Oszilloskop.

Schalte LEDs (mit 1kΩ Vorwiderstand) parallel zu den Pull-Up 
Widerständen, um zu sehen, ob sich da überhaupt etwas tut.

Benutze einen Logic Analysator, um die Signale zu überprüfen.

Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> 18:44:12.624 -> Probe BMP280: Sensor missing
> was kann das denn bitte bedeuten?

entweder hast du keinen BMP280 oder den falschen Port oder die falsche 
Beschaltung.

Die Software findet den Sensor jedenfalls nicht!

VCC und oder GND vergessen?

: Bearbeitet durch User
Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
a)
SCL und SDA brauchen Pullup-Widerstände nach VCC (typ. 2.2K).

b)
Hast du deinen Sensor korrekt konfiguriert?
Um das I2S Interface zu benutzen, muss "CSB" mit VCC verbunden sein (und 
bleiben).

c)
Der Sensor hat 2 mögliche Addressen.
Die Default-Adresse in der Library ist 0x77.
Um diese auszuwählen, muss der SDO Pin ebenfalls mit VCC verbunden sein.

Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> a)
> SCL und SDA brauchen Pullup-Widerstände nach VCC (typ. 2.2K).

wenn er das Adafruit-Modul hat sind die aber wohl schon bestückt.

Autor: William R. (willriker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, läuft,
ich lasse die Daten gerade über den Monitor rattern, die vom BMP280 
ermittelt werden,
okay, so weit so kompliziert,
wie kann ich denn jetzt noch den Servo damit, ich sag mal kombinieren, 
wie vorab ursprünglich erklärt,
und bitte so einfach wie möglich erklären, super

: Bearbeitet durch User
Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joachim B. schrieb:
> wenn er das Adafruit-Modul hat sind die aber wohl schon bestückt.

wenn...
Es gibt inzwischen zu vielen Sensoren diverseste Breakout-Boards.

@TO: guck mal auf dem Board nach, ob I2C Pullups bestückt sind.
Bei Unsicherheit stören 2 extra Pullups nicht, dann sind es halt erstmal 
1.1K, und wenn es dann funktioniert, kann man diese 2 Pullups mal 
probeweise wieder wegnehmen.

Ansonsten könntest du es auch mal mit dem SPI Interface versuchen. Sind 
2 Leitungen mehr, aber weniger potentielle Fehlerquellen (Adresse etc.).

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> ok, läuft,

Ah OK. Es wäre nett auch mitzuteilen woran es lag.

William R. schrieb:
> wie kann ich denn jetzt noch den Servo damit, ich sag mal kombinieren,
> wie vorab ursprünglich erklärt

Wsa soll der Servo denn genau machen?
Eine Art Zeigerinstrument für einen der Messwerte darstellen?

Autor: William R. (willriker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> William R. schrieb:
>> ok, läuft,
>
> Ah OK. Es wäre nett auch mitzuteilen woran es lag.

Ich habe den Rechner neu gestartet, klingt komisch, ist aber so.


>
> William R. schrieb:
>> wie kann ich denn jetzt noch den Servo damit, ich sag mal kombinieren,
>> wie vorab ursprünglich erklärt
>
> Wsa soll der Servo denn genau machen?
> Eine Art Zeigerinstrument für einen der Messwerte darstellen?

Der Servo soll, sobald ein bestimmer Wert unterschritten wird,
angesteuert werden und sich z. B. um 12 Grad Bewegen,

Dannach muss er nichts mehr tun

: Bearbeitet durch User
Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> Dannach muss er nichts mehr tun

Das widerspricht zwar ein wenig dem Konzept von ganz oben, dass der 
Servo auf permanent gemessene Signale reagieren soll, aber gut, sei's 
drum.

William R. schrieb:
> Der Servo soll, sobald ein bestimmer Wert unterschritten wird,
> angesteuert werden und sich z. B. um 12 Grad Bewegen,

Du hast gerade doch schon das Programm ganz gut formuliert und musst es 
jetzt eigentlich nur noch in eine Programmiersprache "übersetzen", so 
etwa in der Art:
// servo in neutralstellung bringen
move_servo(0);

// warten bis sensor-wert das untere limit unterschreitet
do {
  value = read_sensor();
} while (value > lower_limit);

// servo um 12 grad bewegen
move_servo(12);

// nix mehr tun (endlosschleife)
while (1)
;

Und jetzt musst du noch die Funktionen read_sensor() und move_servo() 
schreiben und bist fertig.

Autor: William R. (willriker)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Klingt einfach, aber ich kann das nicht. :-(

Autor: Thomas S. (selli69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> Klingt einfach, aber ich kann das nicht. :-(

Sei wenigstens so ehrlich und sag dazu, dass du gar keinen Bock hast 
dich mit der Materie zu beschäftigen und es dir viel lieber ist, wenn 
dir jemand den Arsch hinterher trägt. Ein derartiges Desinteresse und 
eine Verweigerungshaltung es zumindest einmal selbst zu probieren und 
Dokumentationen zu lesen ist mir selten untergekommen.

: Bearbeitet durch User
Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
William R. schrieb:
> Klingt einfach, aber ich kann das nicht. :-(

dann wirst du auch irgendwann verhungern wenn dich niemand bekocht oder 
für dich einkauft!

William R. schrieb:
> In der Vergangenheit habe ich einen Arduino UNOR3 mit einem einfachen
> Servomotor angesteuert

wie hattest du das geschafft?

: Bearbeitet durch User
Autor: Thomas S. (selli69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joachim B. schrieb:
> wie hattest du das geschafft?

Er hat sich vmtl. ein youtube-Video angesehen wie man per copy/paste 
irgend einen schimmligen Demo-Code in die IDE kopiert. Das alles ohne 
irgendetwas verstehen zu müssen.

Autor: William R. (willriker)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
Thomas S. schrieb:
> Joachim B. schrieb:
>> wie hattest du das geschafft?
>
> Er hat sich vmtl. ein youtube-Video angesehen wie man per copy/paste
> irgend einen schimmligen Demo-Code in die IDE kopiert. Das alles ohne
> irgendetwas verstehen zu müssen.


Wie freundlich hier doch alle sind,
und ja, natürlich war es ein "schimmeliger" Code,
nur weil nicht jeder C++ beherrscht kann man ja mal
von oben herab reagieren, wirklich, Sozialkompetenz sollte der ein
oder andere hier noch lernen @Thomas S

: Bearbeitet durch User
Autor: Thomas S. (selli69)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Für mich ist Sozialkompetenz vor allem gerade heraus zu sagen, was ich 
mir denke. Ob das dem anderen nun passt oder nicht ist mir herzlich 
egal. Und von oben herab war da gar nichts, was du nicht mit deiner Art 
mit einem Fachforum umzugehen nicht selbst provoziert hättest. Es hätte 
auch die Möglichkeit gegeben, die von Dir erwartete Freundlichkeit zu 
genießen, wenn Du so ehrlich gewesen wärst und geschrieben hättest:

"Ich will mit einem Arduino Luftdruck messen und abhängig davon einen 
Servo ansteuern. Ich habe überhaupt keine Ahnung von der Materie und 
weil ich das jetzt nur ein mal brauche will ich mich auch gar nicht groß 
einarbeiten. Kann mir das jemand günstig machen, denn ich hab wenig Geld 
und eine fertige Lösung für mein Problem gibt es auch nicht."

Damit kann man zurecht kommen.

Die andere Möglichkeit wäre, dass Du aktiv versucht hättest selbst zu 
Lösung zu kommen und an den Punkten, wo du selbst nicht weiter kommst 
deine bis dahin selbst erarbeiteten Teile postest und dann fragst.

Aber nein. Es wird sich dumm gestellt und "Das kann ich nicht!" geposted 
in der Hoffnung, dass sich hier jemand mit Helferkomplex und dem 
entsprechenden Fachwissen tummelt, der dir dabei hilft nichts zu lernen.

Welche Art von "Freundlichkeit" willst Du da erwarten? Oder verträgst Du 
nur die Wahrheit nicht?

Autor: Manfred (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
William R. schrieb:
> Sozialkompetenz sollte der ein oder andere hier noch lernen

Gut, dass Du ein Selbstgespräch veröffentlichst!

Wenn hier jemand schrieb "dass du gar keinen Bock hast
dich mit der Materie zu beschäftigen ..."

oder

"ein youtube-Video angesehen wie man per copy/paste irgend einen 
schimmligen Demo-Code in die IDE kopiert."

entspricht das genau dem Niveau Deiner Fragestellung.

(Beitrag "Re: Servo mit Messgerät steuern")

Es gibt im Internet tausende Beispiele und zumindest einige Dutzend 
Deutschsprachige Schulskripte, mit denen man sich Grundlagen des 
Arduinos erarbeiten kann. Wenn Du dazu nicht bereit bist, mache im Forum 
"Markt" eine Anfrage auf, wer das für Dich schreibt.

Erstelle ein ordentliches Anforderungsprofil und sei Dir klar, dass der 
Softwerker eine vierstellige Rechnung schickt.

Ich kennen keine Mikroprozessorumgebung, die vergleichbar einfach 
Arduino zu handhaben ist. Wenn Du nicht gewillt bist, Dir Grundlagen 
selbst zu erarbeiten, suche Dir ein anderes Betätigungsfeld.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.