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
Boolean Probleme
03.06.2014, 16:38
Beitrag #9
RE: Boolean Probleme
Hallo Imgrish,

sehr interessantes Thema! Ich habe mir mal erlaubt ein wenig Pseudo-Code zu schreiben. E -> Eingänge, A -> Ausgänge
Dabei habe ich nur auf deinen letzten Post geguckt und deine Zeile einfach "übersetzt", so wie ich glaube, dass es laufen müsste:
Code:
void Setup()
{
unsigned long SireneAn = 0;
unsigned long SireneInterval = 180000;
}

void Lopp()
{
if ( E22 == on || E23 == on)
{
A53 = HIGH (scharf/rot);
SendeSMS("scharf");
}
else
{
A53 = LOW (unscharf/grün);
SendeSMS("unscharf");
}

if ( A53 == HIGH && E24 == HIGH)
{
A52 = on (Sirene an);
SendeSMS("Sirene an");
SireneAn = millis();
}
if (millis() - SireneAn > SireneInterval || E22 == LOW || E23 == LOW)
{
A52 = off (Sirene aus);
SendeSMS("Sirene aus");
}
if (E25 == HIGH) A51 = HIGH;
}
Vielleicht hilft es ja?

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2014, 18:11
Beitrag #10
RE: Boolean Probleme
(03.06.2014 16:04)Imgrish schrieb:  Wenn ich das alles einzel Abfrage gehts nur wenn ich die und oder oder verknüpfe fängt der Arduiono an zu spinnen.
Zeig uns mal die zwei (?) Sketches mit den einzelnen Abfragen, die funktionieren. Dann koennen wir moeglicherweise genau sagen, wie man das verknuepfen kann.
Gruss,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2014, 19:14
Beitrag #11
RE: Boolean Probleme
So das ist zum Beispiel ein Code ausschnitt .
und wenn ich das so schreibe funzt das .
Aber dann ist der bei der && verküpfung ist es aber in wirklichkeit ||

Code:
pinMode(22, INPUT_PULLUP); // Eingang Funk
  pinMode(23, INPUT_PULLUP); // Eingang LCD
  pinMode(24, INPUT_PULLUP); // Eingang BWM
  pinMode(25, INPUT_PULLUP); // Eingang Quecksilberschalter
  pinMode(26, INPUT_PULLUP); // Eingang Telefon
  pinMode(27, INPUT_PULLUP); // Eingang Reserve
  pinMode(28, INPUT_PULLUP); // Eingang Reserve
  pinMode(29, INPUT_PULLUP); // Eingang Reserve
  pinMode(30, INPUT_PULLUP); // Eingang Reserve
  pinMode(53, OUTPUT); // zuweisung Ausgaenge
  pinMode(52, OUTPUT);
}

void loop() {
  //Eingaenge lesen
  int sensorS = digitalRead(22);// Scharf Funk
  int sensorA = digitalRead(23);// Scharf LCD
  int bwm=digitalRead(24); // BWM
  int scharf=digitalRead(53);// Scharf
  if (sensorS == HIGH && sensorA == HIGH){
    digitalWrite(53, HIGH);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("Unscharf");
    delay(250); //

  }
  else {
    digitalWrite(53, LOW);
    lcd.clear();
    lcd.setCursor(4, 1);
    lcd.write("Scharf");
    delay(250); //

  }
  if (bwm == LOW || scharf ==LOW){
     digitalWrite(54, HIGH);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("ALARM");
    delay(250); //
}
  }

wer andern eine grube gräbt ist selbst ein schwein!
Config 1 : Arduino Mega R3,Arduino GSM Shield
Config 2 : Saint Smart Arduino Mega ,Saint Smart Ethernet Shield,Saint Smart LCD Shield
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2014, 20:58
Beitrag #12
RE: Boolean Probleme
Hallo Imgrish,

ich nehme einfach mal deinen letzten Code und packe mal bewußt einen Kommentar rein:
Code:
if (sensorS == HIGH && sensorA == HIGH) {
    /* In deinem Post stand aber
     "Einer dieser beiden Eingänge soll mir den Ausgang 53 schalten
     an dem ein Relais hängt welches mir die LED schaltet.
     Ausgang LOW LED Grün ( Unscharf ), du schaltest aber auf HIGH" ???*/
    digitalWrite(53, HIGH);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("Unscharf");
Frage weiterhin
Zitat:Auf Eingang 23 ist ein LCD Bedienteil dran über das man auch scharf schalten kann .
Wenn das ein normaler Taster ist kommt bei mir die Frage auf was die delay()-Aufrufe unter Umständen bewirken!
Noch eine Frage sei erlaubt: Hast du dir meinen letzten Post mal durchgelesen?

Ich kann Thorsten nur bestätigen: So kleine Code-Schnipsel sind nicht wirklich effektiv, da man nie weiß was im Rest noch passiert.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2014, 21:27
Beitrag #13
RE: Boolean Probleme
Das ist jetzt der Komplette Code ohne den GSM / Ethrenet Shield.Soweit habe ich das jetzt alles im Griff.
Das einzige was noch nicht funktioniert ist der 3 Minuten Timer.

Code:
#include <Ethernet.h>
#include <EthernetClient.h>
#include <EthernetServer.h>
#include <GSM.h>
#include <LiquidCrystal.h>
#include <DFR_Key.h>

//Pin assignments for SainSmart LCD Keypad Shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
//---------------------------------------------

DFR_Key keypad;
unsigned long SireneAn;
unsigned long SireneInterval = 1800000;
int localKey = 0;
String keyString = "";
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5
void setup()
{
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Mobile Security");
  lcd.setCursor(0, 1);
  lcd.print("Center Ver. 01.12");
  delay(2500); //startvorgang beendet
  Serial.begin(9600);
  pinMode(22, INPUT_PULLUP); // Eingang Funk
  pinMode(23, INPUT_PULLUP); // Eingang LCD
  pinMode(24, INPUT_PULLUP); // Eingang BWM
  pinMode(25, INPUT_PULLUP); // Eingang Quecksilberschalter
  pinMode(26, INPUT_PULLUP); // Eingang Telefon
  pinMode(27, INPUT_PULLUP); // Eingang Reserve
  pinMode(28, INPUT_PULLUP); // Eingang Reserve
  pinMode(29, INPUT_PULLUP); // Eingang Reserve
  pinMode(30, INPUT_PULLUP); // Eingang Reserve
  pinMode(53, OUTPUT); // zuweisung Ausgaenge
  pinMode(52, OUTPUT);


  
}

void loop() {
  //Eingaenge lesen
  int sensorS = digitalRead(22);// Scharf Funk
  int sensorA = digitalRead(23);// Scharf LCD
  int bwm = digitalRead(24); // BWM
  int alarm = digitalRead(53);

  if (sensorS == HIGH && sensorA == HIGH) {
    digitalWrite(53, HIGH);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("Unscharf");
    delay(250); //

  }
  else {
    digitalWrite(53, LOW);
    lcd.clear();
    lcd.setCursor(4, 1);
    lcd.write("Scharf");
    delay(250); //

  }
  if (bwm == HIGH && alarm == LOW) {
    digitalWrite(52, LOW);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("ALARM");
    delay(250); //
  }
  else {
    digitalWrite(52, HIGH);
  }
  if (millis() - SireneAn > SireneInterval || sensorS==HIGH || sensorA==HIGH){
    digitalWrite(52, LOW);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write(SireneAn);
    delay(250); //
    }
}
So sieht der Aufbau bei mir zuhause aus. Der Grüne Schalter soll das LCD Schield darstellen was nacher dazu kommt. Dieses hat ein 10 M Kabel und ist Komplett Unabhängig von mir. Ich gebe dem Externen LCD Display nur Kontakte die er selber auswertet.
[Bild: zuhause.jpg]

wer andern eine grube gräbt ist selbst ein schwein!
Config 1 : Arduino Mega R3,Arduino GSM Shield
Config 2 : Saint Smart Arduino Mega ,Saint Smart Ethernet Shield,Saint Smart LCD Shield
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2014, 21:34 (Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2014 21:55 von rkuehle.)
Beitrag #14
RE: Boolean Probleme
Na das sind doch endlich mal FaktenExclamation
Wie ich sehe hast du jetzt auch meine Post gelesen Smile
Sag mal was an dem Sirenentimer nicht geht?
Geht sie nicht an?
Hört sie nicht auf?
Unter welchen Bedingungen soll sie angehen?

Edit: Ich sehe gerade, du hast keinen Startzeitpunkt "SireneAN=millis()" im Code gesetzt. SireneInterval hat für 3 Minuten eine Null zuviel.

Wieder Edit:
Mach bitte aus:
Code:
if (bwm == HIGH && alarm == LOW) {
    digitalWrite(52, LOW);
    ...
Code:
if (bwm == HIGH && alarm == LOW) {
    digitalWrite(52, LOW);
    SireneAn=millis();
    ...
Aus
Code:
if (millis() - SireneAn > SireneInterval || sensorS == HIGH || sensorA == HIGH) {
    digitalWrite(52, LOW);
sollte wohl eher
Code:
if (millis() - SireneAn > SireneInterval || sensorS == HIGH || sensorA == HIGH) {
    digitalWrite(52, HIGH);
werden? Sonst würde es nicht mit dem darüber stehenden Code-Abschnitt passen?
Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2014, 22:02
Beitrag #15
RE: Boolean Probleme
Ah Sorry , Nachdem ich das gepostet hatte habe ich das Millis eingefügt,

Also die Zeit Lauft nicht ab .
Also ich habe den Alarm aber der Ausgang 52 bleibt keine 3 Minuten an.
Code:
if (bwm == HIGH && alarm == LOW) {
    digitalWrite(52, LOW);
    SireneAn = millis();
    millis() - SireneAn > SireneInterval;
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("ALARM");
Ich habe das mal so abgeändert nur um zu sehen ob der auch so 3 Minuten läuft.
Aber das macht er auch nicht.

Dann habe ich das auch mal so probiert:
Code:
if (bwm == HIGH && alarm == LOW) {
    digitalWrite(52, LOW);
    SireneAn = millis();
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("ALARM");
  }
  else if ( millis() - SireneAn > SireneInterval) {
    digitalWrite(52, LOW);
  }
  else {
    digitalWrite(52, HIGH);
Sobald Alarm/ 24 HIGH ist geht der Ausgang auch aus.
Da spielt die Zeit keine Rolle.

PS Die Null ist weg ^^

wer andern eine grube gräbt ist selbst ein schwein!
Config 1 : Arduino Mega R3,Arduino GSM Shield
Config 2 : Saint Smart Arduino Mega ,Saint Smart Ethernet Shield,Saint Smart LCD Shield
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2014, 22:11
Beitrag #16
RE: Boolean Probleme
Die Frage ist ja,soll die Sirene in jedem Fall 3 Minuten laufen oder auch (vorher) abschalten wenn eine der Bedingungen zum Einschalten nicht mehr gegeben ist?

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduin Radio Head Library driver Probleme gandalf7588 3 401 08.04.2018 13:05
Letzter Beitrag: gandalf7588
  Probleme mit multiplexing Thor Wallhall 55 3.473 18.03.2018 18:06
Letzter Beitrag: Tommy56
  Treppenbeleuchtung Probleme mit LED Anzahl Cellman 1 225 18.03.2018 10:13
Letzter Beitrag: hotsystems
  Probleme mit Scheduler Arduino DUE juergen001 5 399 15.03.2018 11:44
Letzter Beitrag: juergen001
  Probleme mit DS3231 Geeros#18 6 404 26.02.2018 14:09
Letzter Beitrag: Tommy56
  Probleme mit der Software Thor Wallhall 8 737 31.12.2017 11:34
Letzter Beitrag: Tommy56
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 17 4.405 30.12.2017 00:40
Letzter Beitrag: koma1965
  Probleme Serieller Kommunikation Arduino Nextero 13 792 12.12.2017 16:47
Letzter Beitrag: hotsystems
  Interrupt und I2C gibt das Probleme? Badger1875 5 674 03.10.2017 23:26
Letzter Beitrag: GuaAck
  Bei Änderung eines Zustandes (boolean) Aktion auslösen - wie? Gelegenheitsbastler 3 903 04.07.2017 10:50
Letzter Beitrag: Gelegenheitsbastler

Gehe zu:


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