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
14.05.2014, 23:21
Beitrag #1
Boolean Probleme
Nabend. Ich teste schon wieder was und möchte gerne was wissen weil ich da im Moment auf dem schlauch stehe.
Ich möchte gerne mehrerer Werte mit der Boolschen Algebra vergleichen . Mein Problem das geht net .
Ich möchte hier erst mal gerne 2 werte vergleichen und dann schalte Ausgang 3
Diese Werte sollen solange anstehen bis einer von den Beiden wieder ein Signal von sich gibt.

Nachher soll dsa so sein das dazu noch die Abfrage kommen soll ob wert 3 High oder Low ist .

Ziel bei der sahce ist es einen Kontakt von 2 Stellen zu steuern. Der Soll ausgang 3 schalten . Kommt eingang 4 dabei soll der Ausgang ca 3 Minuten laufen oder solage biss wieder einer der ersten eingänge 2 Signale geben. Aber bei mir vergleicht der noch nicht mal die ersten beiden .



boolean verg = false;
void setup()
{

pinMode(22, INPUT_PULLUP); //Scharf Funk
pinMode(23, INPUT_PULLUP); // Alarm BWM
pinMode(25, INPUT_PULLUP); // Scharf LCD
pinMode(24, OUTPUT); // Scharf LCD LED
pinMode(3, OUTPUT); // Relais LED Scharf
pinMode(2, OUTPUT); // Relais Summer
}

void loop() {
//Eingaenge lesen
int sensorS = digitalRead(22);// Scharf Eingang
int sensorA = digitalRead(23);// Alarm INput
int sensorS2 = digitalRead(25); // SCHARF LCD

if (digitalRead(25) || digitalRead(22);
{
digitalWrite(3, HIGH);
digitalWrite(24, HIGH);
lcd.clear();
lcd.setCursor(5, 0);
lcd.write("Unscharf");
delay(250); //
}
else {
digitalWrite(3, LOW);
digitalWrite(24, LOW);
lcd.clear();
lcd.setCursor(4, 1);
lcd.write("Scharf");
delay(250); //
[/code]

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
15.05.2014, 07:45
Beitrag #2
RE: Boolean Probleme
Moin Imgrish,

das Hauptproblem bei deinem Sketch ist, dass du delay() verwendest.Während delay() passiert auf dem Arduino (außer, dass die Timerinterrupts laufen) nix mehr.
Als Ersatz für delay() solltest du folgendes nutzen:
Code:
// ganz oben deklarieren
unsigned long jetzt;
// ganz oben. Obwohl 250 in int passt, besser long, da verrechnet mit millis()
unsigned long intervall=250;
void Setup() {
jetzt=millis();
}
// Loop()
if (millis() - jetzt < 250) {} / solange wie Zeit noch nicht abgelaufen, nix machen
else
{
digitalWrite(3, LOW);
digitalWrite(24, LOW);
lcd.clear();
....
jetzt=millis();
}
Versuche es bitte damit und erzähl uns was rauskommt.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2014, 09:35
Beitrag #3
RE: Boolean Probleme
(14.05.2014 23:21)Imgrish schrieb:  
Code:
pinMode(22, INPUT_PULLUP); //Scharf Funk
  pinMode(23, INPUT_PULLUP); // Alarm BWM
  pinMode(25, INPUT_PULLUP); // Scharf LCD

  if (digitalRead(25) || digitalRead(22);
  {
    lcd.write("Unscharf");
    delay(250); //
  }
  else {
    lcd.write("Scharf");
    delay(250); //
Hi,
ich denke mal, es liegt an was anderem. (Auch wenn die delays wirklich nicht so geschickt sind.)
Ich nehme an, dass Du die Taster-Eingänge gegen GND schaltest, also "an" ist LOW, "aus" ist HIGH. Dann ergibt Dein if nur dann "wahr", wenn beide (!) gedrückt sind. Wenn nur eine gedrückt ist, dann ist die andere immer noch auf HIGH und HIGH || LOW ist halt immer noch HIGH. Ersetze mal das || durch &&, dann müsste es gehen. (Davon ausgehend, dass nach der Bedingung eine ")" und kein ";" steht.)
Boolsche Algebra...:
not ( A or B ) == not A and not B
not(not A or not B) == A and B
Gruß,
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
15.05.2014, 10:20
Beitrag #4
RE: Boolean Probleme
Thorsten hat völlig recht.
Ich hatte beim reingucken anscheinend beide Augen zu. Huh
Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2014, 12:14
Beitrag #5
RE: Boolean Probleme
(15.05.2014 09:35)Thorsten Pferdekämper schrieb:  Ich nehme an, dass Du die Taster-Eingänge gegen GND schaltest, also "an" ist LOW, "aus" ist HIGH.

Würde auch zum INPUT_PULLUP gut passen.
Bitte auch zu den obigen Hinweisen prüfen, ob die Beschaltung des Tasters wie unter http://arduino.cc/en/Tutorial/InputPullupSerial beschrieben ist.
Falls dieser wie "normale" Taster gegen Plus geschaltet sind, dann passiert auch nichts, wenn beide Taster gedrückt werden.

Gruß, Alex
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.06.2014, 22:09 (Dieser Beitrag wurde zuletzt bearbeitet: 02.06.2014 22:12 von Imgrish.)
Beitrag #6
Question RE: Boolean Probleme
Ich Steig hier bald nicht mehr durch, HuhHuhHuhHuhHuhHuhHuhHuhHuh
Ich habe nun die Inputs ohne den Widerstand gemacht . jetzt funktioniert gar nichts mehr. Der Ausgange und das LCD Shield machen nur noch welchsellicht.
Das sieht so aus als würde der erst die If anweisung lesen und dann direkt weiter zur Else anweisung springen.
Wenn ich das alles auf Pullups setzte und alles Falsch rum progge dann gehts aber so nicht . Hat jemand einen Tipp ?
PS: das Delay ist nur dafür da damit ich was auf dem LCD Shield lesen kann . Sonnst ist das alles kaum lesbar.
PSS: Die Restspannung bei LOw ist bei mir 1 V kann das sein ?


Code:
Serial.begin(9600);
  pinMode(22, INPUT); // Eingang Funk
  pinMode(23, INPUT); // Eingang LCD
  pinMode(24, INPUT); // Eingang BWM
  pinMode(25, INPUT); // Eingang Quecksilberschalter
  pinMode(26, INPUT); // 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
  if (sensorS == LOW && sensorA == LOW){
    digitalWrite(53, LOW);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("Unscharf");
     }
  else {
    digitalWrite(53, HIGH);
    lcd.clear();
    lcd.setCursor(4, 1);
    lcd.write("Scharf");
    }

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, 09:23
Beitrag #7
RE: Boolean Probleme
Hi,
warum hast Du das INPUT_PULLUP rausgenommen? Das war doch eigentlich gut. (Zumindest mal angenommen, dass da Taster dranhaengen.) Mir ist aber nicht ganz klar, wie eigentlich die Schaltung aussieht.
Koenntest Du mal das mit dem && bzw. || ganz weglassen und einen Sketch basteln, der einfach nur einen Eingang benutzt? Dann bringen wir erstmal das zum Funktionieren...
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, 16:04
Beitrag #8
RE: Boolean Probleme
Also :
Auf Eingang 22 ist ein Funk schakter dran der Scharf schaltet.
Auf Eingang 23 ist ein LCD Bedienteil dran über das man auch scharf schalten kann .
deswegen die oder Verknüpfung.
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 )
Ausgang High LED Rot (Scharf)
und Wenn Ausgang 53 High und Eingang 24 ( Bewegungsmelder ) High soll der Ausgang 52 Schalten , Das ist die Sirene. Diese soll 3 Minuten laufen oder bis einer der Eingänge 22 oder 23 wieder LOW ist.
So ist die Sache zumindest angedacht.

Desweiteren soll auf Eingang 25 ein Gassensor der den Ausgang 51 Schaltet der wiederum ein Ralais schaltet an dem eine Blitz Lampe hängt.

Zusaätlich kommt noch das jedesmal bei Scharf unscharf Alarm und Gas eine SMS rausgeht.

So ist zumindest der Plan
Soll soll die Schaltung nachher funzen.

Wenn ich das alles einzel Abfrage gehts nur wenn ich die und oder oder verknüpfe fängt der Arduiono an zu spinnen.

Wenn ich die Inputs aus Pullups lasse, funzt das soweit nur das aus oder und wird und High low.

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ArduinoDroid Probleme Brother Tak 1 201 10.09.2016 22:12
Letzter Beitrag: Brother Tak
  Roboter-Bau Probleme blebbens 8 378 12.07.2016 07:35
Letzter Beitrag: Binatone
  Probleme mit sprintf() und dtostrf() GMBU 11 812 22.06.2016 10:52
Letzter Beitrag: GMBU
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 6 963 06.05.2016 18:34
Letzter Beitrag: arduinopeter
  Programme vom UNO auf nano , mini Pro portieren Probleme anwo 19 1.176 17.04.2016 21:12
Letzter Beitrag: hotsystems
  Probleme beim Auslesen eines IR Empfängers linuxpaul 7 574 06.03.2016 14:44
Letzter Beitrag: hotsystems
  I²C vom NANO zum PI Probleme mit High/Low Bit Tobias1984 4 331 29.02.2016 00:00
Letzter Beitrag: hotsystems
  Probleme beim auswählen des Ports Levi 11 829 21.02.2016 18:00
Letzter Beitrag: hotsystems
  IRemote probleme mit abfrage schnutzkurt 18 1.148 20.02.2016 01:30
Letzter Beitrag: SkobyMobil
  Probleme mit SPI - Ethernet und nRF24L01 itsy 35 2.980 21.11.2015 19:59
Letzter Beitrag: ardu_arne

Gehe zu:


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