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
if7else
04.09.2016, 11:55
Beitrag #9
RE: if7else
(04.09.2016 11:47)Bitklopfer schrieb:  ....sorry den Mist hab ich gebaut...das kommt davon wenn es den Compiler nicht prüfen läßt..Sad

Ist doch nichts schlimmes, wenn andere aufpassen. Wink
Da wir alle Menschen sind, kann das mal passieren.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 12:02
Beitrag #10
RE: if7else
Danke für eure Hilfe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 12:07
Beitrag #11
RE: if7else
(04.09.2016 12:02)Hangloose schrieb:  Danke für eure Hilfe.

Gerne.

Funktioniert es denn, wie es soll ?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 13:24
Beitrag #12
RE: if7else
Habe es ausgetestet mit folgendem Code.
und es funktioniert nicht, habe auch nachgemssen die Lichtschranke bring im HIGH modus 3.5V auf den PIN 5

Nach mir müsste es so funktionieren sobald die Lichtschranke belegt Anzeigt (LOW) müsste PIN 9 aktiv sein und sobald die Lichtschrank nicht mehr belegt ist (HIGH) müsste PIN neu inaktiv sein.


Code:
// defines pins numbers
const int stepPin = 3;
const int dirPin = 4;
int freig1 = 5;
int freig2 = 6;
int level = 7;
int pump1 = 8;
int pump2 = 9;
int pump3 = 10;
int zylinder = 11;

byte status1;
byte status2;

void setup() {
  // Sets the two pins as Outputs
  pinMode(stepPin,OUTPUT);
  pinMode(dirPin,OUTPUT);
  pinMode(freig1,INPUT);
  pinMode(freig2,INPUT);
  pinMode(level,INPUT);
  pinMode(pump1,OUTPUT);
  pinMode(pump2,OUTPUT);
  pinMode(pump3,OUTPUT);
  pinMode(zylinder,OUTPUT);

  Serial.begin(9600);
  }




void loop() {

  status1 = digitalRead(freig1);
                
                
                if (freig1==HIGH)
                {  
                  digitalWrite(pump2,LOW);
                }
                if (freig1==LOW)
                {  
                digitalWrite(pump2,HIGH);
                }
      }
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 13:34
Beitrag #13
RE: if7else
Wenn du status1 als Variable nimmst, musst du auch darauf abfragen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 13:36 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2016 13:41 von Hangloose.)
Beitrag #14
RE: if7else
Also so?[/code]


[code]// defines pins numbers
const int stepPin = 3;
const int dirPin = 4;
int freig1 = 5;
int freig2 = 6;
int level = 7;
int pump1 = 8;
int pump2 = 9;
int pump3 = 10;
int zylinder = 11;

byte status1;
byte status2;

void setup() {
// Sets the two pins as Outputs
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
pinMode(freig1,INPUT);
pinMode(freig2,INPUT);
pinMode(level,INPUT);
pinMode(pump1,OUTPUT);
pinMode(pump2,OUTPUT);
pinMode(pump3,OUTPUT);
pinMode(zylinder,OUTPUT);

Serial.begin(9600);
}




void loop() {

status1 = digitalRead(freig1);


if (status1==HIGH)
{
digitalWrite(pump2,LOW);
}
if (status1==LOW)
{
digitalWrite(pump2,HIGH);
}
}

so funktioniert es.

Nun finde ich das aber ein bisschen mühsam, wenn ich für jeden Status eine Variable vergeben muss geht dies nicht direkt?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 14:21 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2016 14:25 von ardu_arne.)
Beitrag #15
RE: if7else
Hallo,
den loop()-Teil kann man schon einkürzen:
Code:
// defines pins numbers
const int stepPin = 3;
const int dirPin = 4;
int freig1 = 5;
int freig2 = 6;
int level = 7;
int pump1 = 8;
int pump2 = 9;
int pump3 = 10;
int zylinder = 11;

void setup() {
  // Sets the two pins as Outputs
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  pinMode(freig1, INPUT);
  pinMode(freig2, INPUT);
  pinMode(level, INPUT);
  pinMode(pump1, OUTPUT);
  pinMode(pump2, OUTPUT);
  pinMode(pump3, OUTPUT);
  pinMode(zylinder, OUTPUT);

  Serial.begin(9600);
}

void loop() {
  if (digitalRead(freig1)) digitalWrite(pump2, LOW);
  else digitalWrite(pump2, HIGH);
}

Nachteile:
Der Code ist für ungeübte nicht mehr so leicht zu verstehen.
Wenn man den Zustand von Pin "freig1" ein weiteres mal im Programm braucht, muss man ihn erneut einlesen weil man sich den Zustand beim ersten einlesen nicht gemerkt hat.

Gruß
Arne

p.s.
jetzt ist mir noch eine Gemeinheit eingefallen und so wird loop() zu einem Einzeiler:
Code:
void loop() {
  digitalWrite(pump2, (!digitalRead(freig1)));
}

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2016, 14:47
Beitrag #16
RE: if7else
Danke so funktioniert die ganze geschicht schon nicht so schlecht, ein Problem weniger..;-)

hat von euch jemand Ahnung, oder schon mal ein Nextion Touchpanel eingesetzt?


Gruss

Philipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


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