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.

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.

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
  Servo mit einem Taster und 433mhz steuern Thor Wallhall 63 2.388 29.07.2017 11:02
Letzter Beitrag: Thor Wallhall
  Ublox Neo 6M und Nextion ! Bitte um Hilfe. b3ta 19 812 13.07.2017 14:52
Letzter Beitrag: Tommy56
  Anfänger sucht erfahrene Hilfe Customizer 21 1.176 11.07.2017 21:37
Letzter Beitrag: Customizer
  Brauche einen Sketch zum Testen HDT 12 591 22.06.2017 07:37
Letzter Beitrag: HDT
  Bitte um Hilfe Arduino Nano-MAX7219-PIR_Sensor Opa_Klaus 35 1.519 20.05.2017 21:11
Letzter Beitrag: Opa_Klaus
  Brauche Hilfe für meine Abfüllanlage/ millis() Slash96 8 565 10.05.2017 21:04
Letzter Beitrag: MicroBahner
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 837 29.04.2017 14:29
Letzter Beitrag: hotsystems
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 1.116 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  Brauche Zeitverzögerung delay/millis/timer? Spiecky 17 1.018 15.04.2017 09:41
Letzter Beitrag: hotsystems
  Zeitschaltuhr Hilfe für RTC Anfänger 4Jordy 4 466 24.03.2017 15:23
Letzter Beitrag: MicroBahner

Gehe zu:


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