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
Ich weiß nimmer weiter
03.06.2015, 13:19
Beitrag #1
Ich weiß nimmer weiter
Liebe Freunde,
ich weiß nimmer weiter. Ich weiß Anfängerfehler und sitze nun bei schönsten Wetter am Suchen.- Bitte um Hilfe !!
Habe 2 Blöcke A und B
wenn a nicht zutrifft dann b
Also if blocka 0 else blockb. da sitzt irgendwo eine Klammer falsch - zuwenig, zuviel,
Aber es ist eine Klammer - alles probiert, ein Fehler kommt immer Big Grin
Bitte um Hilfe - danke
Gruß
Gerd

int blockaValue = 0; // Block A
int blockbValue = 0; // Block B

//-------------------------
int blocka = 2;
int blockb = 3;
//-------------------------
int blockaPin = A0;
int blockbPin = A1;
//-----------------------------
int blockawert = 600;
int blockbwert = 600;
//--------------------------

void setup() {
pinMode (blocka, OUTPUT);
pinMode (blockb, OUTPUT);
}

//----------------------------
void loop()
{

blockaValue = analogRead (blockaPin);
if (blockaValue > blockawert){

digitalWrite (blocka, HIGH);
delay(1000);
digitalWrite (blocka, LOW);
delay(1000);
}else{
}}


{blockbValue = analogRead (blockbPin);
if (blockbValue > blockbwert){

digitalWrite (blockb, HIGH);
delay(1000);
digitalWrite (blockb, LOW);
delay(1000);}

}else{
}}

Smile Schön dabei zu sein Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2015, 13:26
Beitrag #2
RE: Ich weiß nimmer weiter
(03.06.2015 13:19)bergfrei schrieb:  Habe 2 Blöcke A und B
wenn a nicht zutrifft dann b
Also if blocka 0 else blockb.
Hi,
bist Du Dir sicher, dass Du ganz genau weißt, was Du willst? Du schreibst "if blocka ... else blockb". D.h. Du hast nur eine Abfrage. In Deinem Coding hast Du aber zwei Abfragen: Einmal für blocka und einmal für blockb.
Willst Du nun blockb nur abfragen, wenn blocka "fehlschlägt" oder immer?
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
03.06.2015, 15:51
Beitrag #3
RE: Ich weiß nimmer weiter
Hallo bergfrei,
kann mich da Thorsten nur anschliessen. Dazu kommt das deine Else (nicht die zuhause) leer ist, bzw mit nur einer geschwungenen Klammer gefüllt ist. das mag der Kompiler sicher nicht. Lösch die beiden else{{} und du es gibt keine Fehlermeldung mehr.
Gruß Sven

Nichts auf der Welt ist unnütz, es kann im schlimmsten Fall immer noch als schlechtes Beispiel dienen.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2015, 16:16
Beitrag #4
RE: Ich weiß nimmer weiter
danke euch beiden....
Ok 2 Abfragen, wenn Block A nicht zutrifft Block B ausführen ..... oder nichts.
Den Sketch habe ich übernommen siehe

http://shop.weidmann-elektronik.de/media...xample.pdf
..........
void loop()
{

blockaValue = analogRead (blockaPin);
if (blockaValue > blockawert){

digitalWrite (blocka, HIGH);
delay(1000);
digitalWrite (blocka, LOW);
delay(1000);
}else{
}}

Fehlerfrei !!!
da ich 2 Sensoren (od.mehr) anschliessen möchte kam Block B dazu und der Fehler --- Klammer ??
Ich muss ... if .... else .... nun könnte ich auch else (blockA, LOW); etc. schreiben doch der Fehler bleibt
Gruß und danke
Gerd

Smile Schön dabei zu sein Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2015, 17:38 (Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2015 17:41 von Eichner.)
Beitrag #5
RE: Ich weiß nimmer weiter
Hallo,
versuch doch mal:

void loop()
{

blockaValue = analogRead (blockaPin);
if (blockaValue > blockawert){

digitalWrite (blocka, HIGH);
delay(1000);
digitalWrite (blocka, LOW);
delay(1000);
}

Wozu da noch eine else dranhängen wenn da nichts drin steht?
oder so:
void loop()
{

blockaValue = analogRead (blockaPin);
if (blockaValue > blockawert){

digitalWrite (blocka, HIGH);
delay(1000);
digitalWrite (blocka, LOW);
delay(1000);
}
else{
//blablabla
}

so könnte das dann mit else sein wobei nur ein Kommentar ausgeführt wird wenn deine Bedinngung nicht zutreffend ist.

Gruß Sven

Nichts auf der Welt ist unnütz, es kann im schlimmsten Fall immer noch als schlechtes Beispiel dienen.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.06.2015, 20:18
Beitrag #6
RE: Ich weiß nimmer weiter
Problem gelöst..... Danke
Wie ich schrieb Zuerst wird Block A abgearbeitet, wenn nichts ist gehe zu Block B
Es war ein Klammerfehler ... wie ich geschrieben habe. Also

void loop()
{

blockaValue = analogRead (blockaPin);
if (blockaValue > blockawert){

digitalWrite (blocka, HIGH);
delay(1000);
digitalWrite (blocka, LOW);
delay(1000);
}
else{
//blablabla ---- Nix blabla Smile sondern Block B .... Hier war der Klammerfehler
}
--- Danke euch allen
Gruß Gerd

[/color]

Smile Schön dabei zu sein Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Reaktionsspiel / Komme nicht weiter:/ Firellix 2 1.901 08.03.2015 16:32
Letzter Beitrag: Foto-Ralf
  Mit 1wire Temperaturwerten weiter rechnen IngHam 5 3.077 28.08.2013 16:20
Letzter Beitrag: rkuehle

Gehe zu:


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