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
Brauche Hilfe bei einem kleinem Arduino-Spiel
22.10.2015, 18:39
Beitrag #1
Lightbulb Brauche Hilfe bei einem kleinem Arduino-Spiel
Hallo,

seit einiger Zeit habe ich ein Arduino-UNO-Board.

Kleinere Projekte habe ich bereits gut hinbekommen, jetzt brauche ich allerdings eure Hilfe!

Ich möchte ein kleines "Spiel" programmieren.
Es soll über einen Pizo-Lautsprecher ein bestimmtes Signal ausgegeben werden.
Man soll dann (je nach Signal) das Richtige Kabel ziehen.

Zieht man das Richtige Kabel, so werden die nächsten Töne ausgegeben, wenn man falsch liegt, so soll das Programm von vorne gestartet werden. Das soll sich dann immer wiederholen, bis keine Kabel mehr über sind.

Den Zustand der Kabel lese ich über den seriellen- Monitor aus

Hier mein momentanes Programm:
Code:
int eingangblau= A0;
int einganggelb= A1;
int eingangschwarz= A2;
int eingangrot= A3;
int eingangweiss= A4;
int eingangorange= A5;

int LED = 13;


int sensorWertblau = 0;
int sensorWertgelb = 0;
int sensorWertschwarz = 0;
int sensorWertrot = 0;
int sensorWertweiss = 0;
int sensorWertorange = 0;



void setup()

{

Serial.begin(9600);

pinMode (LED, OUTPUT);


}



void loop()

{

sensorWertblau =analogRead(eingangblau);

sensorWertgelb =analogRead(einganggelb);

sensorWertschwarz =analogRead(eingangschwarz);

sensorWertrot =analogRead(eingangrot);

sensorWertweiss =analogRead(eingangweiss);

sensorWertorange =analogRead(eingangorange);




Serial.print("Sensorwertblau = " );

Serial.println(sensorWertblau);

Serial.print("Sensorwertgelb = " );

Serial.println(sensorWertgelb);

Serial.print("Sensorwertschwarz = " );

Serial.println(sensorWertschwarz);

Serial.print("Sensorwertrot = " );

Serial.println(sensorWertrot);

Serial.print("Sensorwertweiss = " );

Serial.println(sensorWertweiss);

Serial.print("Sensorwertorange = " );

Serial.println(sensorWertorange);





tone(12, 700);
    delay(500);
    noTone(12);
    delay(100);
    tone(12, 100);
     noTone(12);
     delay (10000);

if (sensorWertblau > 3 )

{

tone(12, 700);
    delay(500);
    noTone(12);
    delay(100);
    tone(12, 100);
     noTone(12);
     delay (1000);

}

else

{

starte Programm von vorne

}

delay (50);

}

Die serielle Ausgabe funktioniert bereits, die Farben stehen für ein Kabel in diesem Fall ist das Blaue Kabel gezogen[Bild: show.php?file=83a274-1445536302.png]

Ich hoffe Ihr könnt mir helfen, bei Fragen einfach schreiben...

Würde mich sehr über eure Hilfe freuen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2015, 19:48 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2015 19:52 von jalu4601.)
Beitrag #2
RE: Brauche Hilfe bei einem kleinem Arduino-Spiel
Hallo, mein Problem besteht hauptsächlich in der Schleife (ist eine if, else-Schleife überhaupt richtig?) ich weiß auchn nicht wie ich es hinbekomme, das er erst eine Aktion ausführt wenn ein Kabel gezogen wurde (entweder das richtige oder das falsche).

Ein weiteres Problem ist wie ich es hinbekomme, dass das Programm bei falschen Kabel von vorne startet. Könnte man die Befehle auch in void setup packen?

Es wäre nett, wenn ihr eure Ideen/Vorschläge oder Programme hier mal posten könntet
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2015, 20:16
Beitrag #3
RE: Brauche Hilfe bei einem kleinem Arduino-Spiel
Hallo,
habe mal versucht das kurz darzustellen:

A0 ----KABEL---->Hier kann Verbindung getrennt werden<----GND
A1 ----KABEL---->Hier kann Verbindung getrennt werden<----GND
A2 ----KABEL---->Hier kann Verbindung getrennt werden<----GND
A3 ----KABEL---->Hier kann Verbindung getrennt werden<----GND
A4 ----KABEL---->Hier kann Verbindung getrennt werden<----GND
A5 ----KABEL---->Hier kann Verbindung getrennt werden<----GND

Die serielle Darstellung ist kein Problem, solange das Kabel verbunden ist, wird 0 angezeigt, wenn getrennt dann eine Wert höher als 0 (das schwankt immer ein bisschen...)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2015, 21:26
Beitrag #4
RE: Brauche Hilfe bei einem kleinem Arduino-Spiel
Wie lötzinnerhitzer schon schreibt, es ist eine reine digitale Funktion (Kabel gesteckt/Kabel gezogen: Ja/Nein), da solltest du die digitalen Eingänge verwenden. Du kannst natürlich auch die analogen als digitale verwenden, aber dann mit dem Befehl "digitalRead".

Ich steige allerdings auch nicht so ganz durch deinen Sketch durch, z.B. was macht diese if-Anweisung (keine if-Schleife)? if (sensorWertblau > 3 ), wenn du Kabel steckst oder ziehst wird kein Wert 3 rauskommen.
Also benötigen wir noch ein wenig Erklärung.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.10.2015, 06:36 (Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2015 06:41 von jalu4601.)
Beitrag #5
RE: Brauche Hilfe bei einem kleinem Arduino-Spiel
Hallo, als erstes wird ein Ton ausgegeben. Die Schleife soll dann prüfen ob das Richtige Kabel gezogen wurde. Wenn das blaue Kable gezogen wurde, wird dieses auf dem seriellen Monitor sichtbar (der Wert erhöht sich). Sonst (else) soll das Programm von vorne starten...

Das ganze soll sich natürlich die ganze Zeit wiederholen: ein neuer Ton, ein neues Kabel rausziehen.

Die Schleife habe ich nur angedeutet...

Wo besteht denn der unterschied zwischen analog un digital Read
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.10.2015, 08:35
Beitrag #6
RE: Brauche Hilfe bei einem kleinem Arduino-Spiel
Welche Schleife meinst du?
Es gibt nur eine Schleife in deinem Code, das ist die Loop.

Die "if/else" ist eine Anweisung.

Und nochmal die Frage, was bedeutet hier die 3!
"if (sensorWertblau > 3 )"
Wenn du auf "gesteckt/nicht gesteckt" prüfst, kann es keine "3" geben.

Und das hier:
Zitat:Die serielle Darstellung ist kein Problem, solange das Kabel verbunden ist, wird 0 angezeigt, wenn getrennt dann eine Wert höher als 0 (das schwankt immer ein bisschen...)
liegt daran, dass du analoge Eingänge verwendest, die anschließend nicht beschaltet sind und irgend eine Störspannung anzeigen. Aber immer undefiniert und damit nicht verwendbar.

Bitte kommentiere deinen obigen Code mal richtig, damit wir verstehen, was dieser macht.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Sad Hilfe bei 2.4 TFT Display Harry Hirsch 40 2.064 22.04.2018 15:34
Letzter Beitrag: Tommy56
  hilfe bei callback ausgabe per knopfdruck merz 5 230 15.04.2018 14:16
Letzter Beitrag: Tommy56
  Brauche Beratung vor dem kauf Geeros#18 2 183 10.04.2018 18:25
Letzter Beitrag: Geeros#18
  Zwei identische I2C sensoren an einem Bus Karli 19 854 02.04.2018 22:13
Letzter Beitrag: Harry
  Hilfe bei Fehlermeldung TroyPan 3 340 23.03.2018 23:38
Letzter Beitrag: Tommy56
  Hilfe beim skript Devtris 24 1.342 12.03.2018 18:19
Letzter Beitrag: Tommy56
  Hilfe bei einen kleinen Programm FPV 9 922 11.03.2018 20:42
Letzter Beitrag: Tommy56
  Hilfe beim Programmieren Klawino 28 1.610 10.03.2018 13:36
Letzter Beitrag: hotsystems
  Hilfe bei der Programmierung Digitaluhr ,mit Anzeige 32x8 Lora 1 311 10.03.2018 11:44
Letzter Beitrag: hotsystems
  Hold Button - Doppel Klick Hilfe GSA1150 8 652 08.03.2018 16:24
Letzter Beitrag: Tommy56

Gehe zu:


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