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
Welche schleife macht Sinn?
15.03.2017, 23:29
Beitrag #1
Welche schleife macht Sinn?
Guten Abend,
Bin schon einige Tage über den Fehler drüber, aber komm leider nicht weiter.
Ich lese den Spannungswert eines Drucksensors ein, den ich dann umrechne um mit der Schleife zu beginnen. Ich nehme den Spannungswert eines Drucksensors und möchte damit zwei Ventile unter 0.5V öffnen, nur sollen die Ventile automatisch bei einem erreichten Druck von 0.5V wieder schließen. Öffnen < 0.5v Schließen==0.5v.
Mache das mit einer while schleife, solang der Wert kleiner ist, werden die ventile angesteuert, da while(true) aber wenn die Spannung drüber geht und while(false) wird, hängt der arduino. Gibt es eine sinnvollere methode dafür? Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.03.2017, 23:41
Beitrag #2
RE: Welche schleife macht Sinn?
Du hast doch schon eine Schleife: loop()

Innerhalb dieser kannst Du Deine Bedingungen einfach über if-Abfragen (wert < 0.5 ansonsten (also wert >= 0.5)) mit
Pseudocode, da ich Deinen Aufbau nicht kenne:
Code:
lesen wert
if (wert <0.5) {
  Venile auf
}
else { // also alles was >= 0.5 ist
  Ventile zu
}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 00:17
Beitrag #3
RE: Welche schleife macht Sinn?
Danke für die schnelle Antwort,
Der Befehl liegt in einem case für den Fall, dass bei der Fernbedienung die Taste 1 gedrückt wird.
In dem case soll sich der Druck auf 0.5v Regeln. Mit while (true) öffnen die Ventile und der Druck steigt auch, nur wenn while (false) ist schließt er die ventile nicht.
Oder vllt hast du eine einfachere Lösung
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 13:16
Beitrag #4
RE: Welche schleife macht Sinn?
(16.03.2017 00:17)Franklin schrieb:  Danke für die schnelle Antwort,
Der Befehl liegt in einem case für den Fall, dass bei der Fernbedienung die Taste 1 gedrückt wird.
In dem case soll sich der Druck auf 0.5v Regeln. Mit while (true) öffnen die Ventile und der Druck steigt auch, nur wenn while (false) ist schließt er die ventile nicht.
Oder vllt hast du eine einfachere Lösung
Die habe ich Dir doch schon geschrieben.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 13:29
Beitrag #5
RE: Welche schleife macht Sinn?
Du solltest uns mal deinen Sketch zeigen. Wie Tommy schon geschrieben hat, scheint mir eine while-Schleife da auch nicht sinnvoll.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2017, 11:44
Beitrag #6
RE: Welche schleife macht Sinn?
if (results.value == 16724175) //Fernbedienung taste 1
{

if (sensorspannungVA < 49 && sensorspannungHA < 49) //Drucksensorspannung Eingang 0,49V umgerechnet
{

digitalWrite (VAhigh, HIGH); //grün VAVentil zum befüllen offnen
digitalWrite (HAhigh, HIGH); //blau HAVentil zum befüllen offnen
}
if (sensorspannungVA >= 49 && sensorspannungHA >= 49)
{
digitalWrite (VAhigh, LOW); //grün VAVentil schließen
digitalWrite (HAhigh, LOW); //blau HAVentil schließen



Diese Funktion soll als Schleife funktionieren: Jetziges Ergebnis, wenn ich über 0,49V Eingangsspannung taste 1 drück bekommen die Pins HIGH und wenn ich unter 0,49V Eingangsspannung die Taste drücke bekommen sie LOW.
Ziel: Bei Tastendruck soll geprüft werden ob die Eingangsspannung über oder unter 0,49V liegt, und demnach zum befüllen HIGH und bei 0,49 wieder LOW oder unter 0.49V geschlossen bleiben.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2017, 11:50
Beitrag #7
RE: Welche schleife macht Sinn?
Den Sketch bitte in Codetags setzen.
Wie das geht, steht hier.

Ein Sketchfragment nützt nichts, es sollte der ganze Sketch sein.
Mit Deiner Beschreibung komme ich nicht ganz klar.

Du beschreibst als funktionierend 2 Zustände, die Du auch programmiert hast. Als Ziel hast Du 3 Zustände.
Ich verstehe dabei nicht, wo der Unterschied zwischen schließen und geschlossen bleiben sein soll. Das sollte doch beides LOW sein oder verstehe ich das falsch?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2017, 12:04 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2017 12:05 von MicroBahner.)
Beitrag #8
RE: Welche schleife macht Sinn?
Wenn ich ihn richtig verstehe, will er mit dem Tastendruck den Befüllvorgang starten, und wenn der Zieldruck erreicht ist wieder stoppen.

Dazu musst Du dir merken, ob Du im 'Füllmodus' bist.
Code:
if (results.value == 16724175) //Fernbedienung taste 1
  {
  FuellMode = true;
  }

if ( FuellMode )
  {
  if (sensorspannungVA < 49 && sensorspannungHA < 49) //Drucksensorspannung Eingang 0,49V umgerechnet
    {
    digitalWrite (VAhigh, HIGH); //grün VAVentil zum befüllen offnen
    digitalWrite (HAhigh, HIGH); //blau HAVentil zum befüllen offnen
    }
  if (sensorspannungVA >= 49 && sensorspannungHA >= 49)
    {
    digitalWrite (VAhigh, LOW); //grün VAVentil schließen
    digitalWrite (HAhigh, LOW); //blau HAVentil schließen
    FuellMode = false;
    }
  }

Die Schleife ergibt sich daraus, dass der Code im loop zyklisch aufgerufen wird. Da Du nur einen Schnipsel gepostet hat, kann man natürlich nicht wirklich erkennen, ob das so funktioniert. Auch ob es richtig ist, dass Du immer beide Ventile von beiden Drucksensoren abhängig machst, und das nicht individuell verknüpfst musst Du selbst wissen. Wir kennen deine Umgebung nicht.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Digispark USB comunikation ,welche lib? werni 11 839 07.07.2017 13:54
Letzter Beitrag: hotsystems
  Mein Skript macht nicht das was es soll ;( DerMatze79 4 550 16.03.2017 22:19
Letzter Beitrag: MicroBahner
  Servo macht komische Sachen Jochenv 7 720 08.03.2017 00:23
Letzter Beitrag: Jochenv
  Programmierung Schleife florikus 0 388 03.03.2017 18:46
Letzter Beitrag: florikus
  Loop Schleife abbrechen mittlig1977 1 780 06.01.2017 22:18
Letzter Beitrag: Tommy56
  Welche Library für das Funkmodul nRF24L01? alpenpower 1 416 25.12.2016 18:50
Letzter Beitrag: ardu_arne
  mit if aus do-while oder while Schleife aussteigen Nafetz 6 642 05.12.2016 21:41
Letzter Beitrag: Pit
  while Schleife nach sleep mode interrupt tklaus 13 1.175 23.11.2016 17:40
Letzter Beitrag: Tommy56
  Do-While-Schleife Abbruchbedinung Majera 14 1.488 22.11.2016 18:07
Letzter Beitrag: Pit
  Schleife Hannes 3 672 16.11.2016 00:54
Letzter Beitrag: Hannes

Gehe zu:


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