INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PID-Funktion per If Statment aktivieren, Problem
30.08.2013, 18:38
Beitrag #1
PID-Funktion per If Statment aktivieren, Problem
Hallo!

Es gibt laut Angaben auf der arduino.cc Seite die Möglichkeit eine PID Funktion ON und OFF zu setzen.

Dazu muss der Parameter myPID.SetMode(AUTOMATIC); auf (MANUAL) gesetzt werden.

Dies sollte per Tastendruck erfolgen, mittels einem If-Satz:
_______________________________________________________

if (digitalRead(Betrieb) == HIGH){

myPID.SetMode(AUTOMATIC);
}
else
{
myPID.SetMode(MANUAL);
}
_________________________________________________

Obwohl dieses Statment unter void loop() steht, wird es beim Tastendruck nur einmal. Also eine Selbsthaltung!

Das Signal Betrieb wurde per Serial.print geprüft es ist 0 und 1 also dies funktioniert.

Hat jemand eine Lösung dafür???

Vielen Dank!
MFG
Wolfgang
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.08.2013, 10:43
Beitrag #2
RE: PID-Funktion per If Statment aktivieren, Problem
Und wieder ich, ;-)
und wieder mit ein paar Bemerkungen:

Bei Tastern wäre ich sehr vorsichtig. Das sind mechanische Bauteile, also prellen die. Soll heißen: einmal drücken bedeutet n i ch t g e n a u e i n Signal, und schon garnicht, dass es ein eindeutiges Signal ist. Zum Thema siehe hier:
http://popovic.info/html/arduino/arduino...#Debouncen
Hier kommt ziemlich sicher die Bounce - Library ins Spiel. Siehe hier: http://playground.arduino.cc/code/bounce

So nun überlege wie lange du auf so einen Taster drückst!. Sagen wir mal 100 ms.
In dieser Zeit wurde void loop() x mal durchlaufen. Das heißt, was du da auf dem SerialMonitor siehst ist einerseits vom Zufall abhängig, andererseits hat die Ausgabe von digitalRead x mal gewechselt. Ist mehr wie Würfeln ;-)

Also benutze für den Taster mal die Bounce - Library, und dann sehen wir weiter!

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.08.2013, 12:01
Beitrag #3
RE: PID-Funktion per If Statment aktivieren, Problem
Hallo Ricardo!

OK!

Ich hätte da einen Kippschalter verwendet, der mit einem 1kOhm Widerstand gegen GND in Serie hängt. das Signal hätte ich zwischen den Bauteilen abgegriffen, somit wäre es doch eindeutig High oder Low?


Die Regelung sollte nur ca. alle Stunden mal aussetzen aber in unregelmäßigen Abständen. Da der PID einen Mosfet ansteuert (Leistungsregelung einer Heizung) werde ich als einfachere Lösung nur die Versorgung unterbrechen?

MFG
Wolfgang
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.08.2013, 12:31 (Dieser Beitrag wurde zuletzt bearbeitet: 31.08.2013 12:31 von rkuehle.)
Beitrag #4
RE: PID-Funktion per If Statment aktivieren, Problem
Hallo Wolfgang,

Zitat:somit wäre es doch eindeutig High oder Low?
Das mit dem Pegel stimmt schon.Die Frage ist aber wie oft der Pegel wirklich wechselt! So ein Schalter (und wenn es auch der beste/teuerste ist)
schaltet bei e i n m a l Umlegen ja nicht wirklich n u r e i n m a l, sondern prellt eben.Um das Prellen per Software zu eliminieren gibts halt die Bounce - Library. Ich habe das Spiel bei einer Pumpensteuerung für nen Pool durch.
Am besten siehst du es wenn du dir eine Schaltung aufbaust die anstatt des MOSFET LEDs einsetzt. Ist erstaunlich wie die Dinger flackern obwohl man nur einmal schaltet/drückt.
Wenn man den Taster/Schalter-Pin mit HIGH vorbelegt und den Taster/Schalter am anderen Ende auf GND legt spart man sich den 1KOhm Pulldown-Widerstand, da dann der interne PullUp-Widerstand des Arduino benutzt wird.
digital.Read muss dann auf LOW abgefragt werden.
Zitat:Da der PID einen Mosfet ansteuert (Leistungsregelung einer Heizung) werde ich als einfachere Lösung nur die Versorgung unterbrechen?
Yup, wäre einfacher und nicht so empfindllich anstatt eines MOSFET ein(e) Relais(karte) einzusetzen.

Warum benutzt du eigentlich PID? Wenn ich das richtig verstehe möchtest du doch in Abhängigkeit von Temperaturen eine Heizung schalten, oder? Da reicht doch eine Abfrage von Thermosensoren zum schalten + Ausnahme über Taster/Schalter (wenns mal ungemütlich ist) ???

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.08.2013, 19:54
Beitrag #5
Question RE: PID-Funktion per If Statment aktivieren, Problem
Die Regelung sollte eine Temperatur eines Extruders konstant halten. Dabei ändert sich der Sollwert immer wieder und die Menge des zu erwärmenten Material auch permanent!

Ich werden den Test mal anstellen, Danke für die rasche und ausführliche Antwort!

Zum Relais, kann das so oft Schalten, 24V und 2A???

Die Regelung sollte eben im Notfall oder während einer Pause abgeschalten werden können. Daher mein diese Bediengung 265°C sind nicht ungefährlich.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.09.2013, 08:30
Beitrag #6
RE: PID-Funktion per If Statment aktivieren, Problem
(31.08.2013 19:54)Wolfgang_2801 schrieb:  Dabei ändert sich der Sollwert immer wieder
Klar, da ist PID dann die erste Wahl.
Zitat:Zum Relais, kann das so oft Schalten, 24V und 2A???
Hier: http://www.amazon.de/Kanal-Relais-Module...is+arduino
gibts eine Relaiskarte die AC 250 V/ DC 30 V - 10 A schaltet, arbeitet mit Optokoppler, trennt also sehr sauber.

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.09.2013, 16:29
Beitrag #7
RE: PID-Funktion per If Statment aktivieren, Problem
Ein normales Relais für 5V und 15mA Spulenstrom, in Kombination mit einem RC-Glied sollte auch reichen?

Eventuell auch ein Solid State, sodass die Spule keinen Schaden am Board verusracht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.09.2013, 17:19
Beitrag #8
RE: PID-Funktion per If Statment aktivieren, Problem
Moin,

also die 15 mA gehen in Ordnung. Die bringen die Pins allemal.
Für das Relais würde ich einen Transistor und eine Freilaufdiode benutzen.
Ist im Internet die am meisten "angepriesene" Variante.
Google hilft dir gern ;-)))

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem mit SD Card Library BennIY 4 193 06.10.2016 18:38
Letzter Beitrag: Bitklopfer
  Problem mit SD.remove Eichner 6 212 22.08.2016 19:42
Letzter Beitrag: Eichner
  4x16 Tastermatrix Problem Michel 16 852 14.07.2016 10:02
Letzter Beitrag: StephanBuerger
  Problem mit Delay und Millis funnyzocker 1 459 26.06.2016 09:54
Letzter Beitrag: hotsystems
  Funktion mit Parameterübergabe - u8g torsten_156 8 401 22.06.2016 18:53
Letzter Beitrag: Pit
  Problem mit ESP8266 und EMail senden torsten_156 1 605 13.06.2016 21:14
Letzter Beitrag: torsten_156
  ESP8266_01 flashen - Problem torsten_156 12 1.056 30.05.2016 20:12
Letzter Beitrag: torsten_156
  Hardwareserial/Softserial: Problem mit Superklasse tuxedo0801 10 483 19.05.2016 12:25
Letzter Beitrag: amithlon
  ESP8266 HTML Problem arduino_weatherstation 1 497 25.04.2016 21:52
Letzter Beitrag: rkuehle
  Problem mit OLED 0.96" Display torsten_156 3 545 03.04.2016 15:10
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste