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
Spielwürfel
30.05.2015, 23:04
Beitrag #1
Spielwürfel
Hi, ich bin neu in der Arduino-Community.
Ein einfacher Bausatz hat mich dazu gebracht, in diese Welt zu schnuppern. Grundsätzlich sind meine Vorkenntnisse im Bereich Programmierung / Microcontroller gleich 0.

In dem Bausatz "Maker Kit" von "Franzis" war eine Anleitung, einen Spielwürfel zu kreieren. Die Steckung auf dem Breadboard funktionierte sofort tadellos. (Zeichnung im Anhang, verzeiht Ungenauigkeiten, hab mit so einem Programm noch nie gearbeitet)

Die Programmierung des Arduino wurde nur über S4A (http://s4a.cat/) erklärt. Damit bekam ich den Würfel auch zum Würfeln. Nun wollte ich aber über die Arduino IDE das Programm auf die Platine bringen. Nach einigen Fehlversuchen und viel gegoogle bekam ich auch so das Ding zum Würfeln.
Hier der Code:
Zitat:int taste = 2;
int gruen = 10;
int rot = 11;
int gelb = 12;
int blau = 13;
int randNumber = 0;

void setup() {
pinMode(taste, INPUT);
pinMode(gruen, OUTPUT);
pinMode(rot, OUTPUT);
pinMode(gelb, OUTPUT);
pinMode(blau, OUTPUT);

Serial.begin(9600);
randomSeed(analogRead(0));
}

void loop() {
if (digitalRead(taste) == HIGH)
{
delay(100);
digitalWrite(gruen, LOW);
digitalWrite(rot, LOW);
digitalWrite(gelb, LOW);
digitalWrite(blau, LOW);
delay(100);
randNumber = random(1, 7);
Serial.println(randNumber);
if ((randNumber) == (1))
{
digitalWrite(blau, HIGH);
}
if ((randNumber) == (2))
{
digitalWrite(rot, HIGH);
}
if ((randNumber) == (3))
{
digitalWrite(blau, HIGH);
digitalWrite(gruen, HIGH);
}
if ((randNumber) == (4))
{
digitalWrite(rot, HIGH);
digitalWrite(gruen, HIGH);
}
if ((randNumber) == (5))
{
digitalWrite(rot, HIGH);
digitalWrite(gruen, HIGH);
digitalWrite(blau, HIGH);
}
if ((randNumber) == (6))
{
digitalWrite(rot, HIGH);
digitalWrite(gruen, HIGH);
digitalWrite(gelb, HIGH);
}
}
}

Ich musste "int randNumber = 0;" am Anfang setzen, leider habe ich nicht verstanden, wieso das einen Fehler behoben hat. Kann mir jmd in einfachen Worten erklären, was dieser Befehl bewirkt?
Zudem haben die LEDs seltam schnell geblinkt, wenn man etwas länger als nötig auf dem Taster blieb. Dies habe ich mit dem "delay(100);" ganz am Anfang des "if (digitalRead(taste) == HIGH)" beseitigt. Gibt es da eine elegantere Lösung?

Bzw. gibt es überhaupt Verbesserungsvorschläge für den Code? Bei Vorschlägen, bitte mit kurzer Erläuterung. Würde nämlich gerne mein mageres Wissen erweitern Smile

Danke im Vorraus


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.05.2015, 11:04
Beitrag #2
RE: Spielwürfel
(30.05.2015 23:04)stempst0r schrieb:  Ich musste "int randNumber = 0;" am Anfang setzen, leider habe ich nicht verstanden, wieso das einen Fehler behoben hat. Kann mir jmd in einfachen Worten erklären, was dieser Befehl bewirkt?

Mit diesem Befehl erzeugst du eine Variable vom Typ integer (Ganzzahl) und weist ihr direkt den Wert 0 zu. Wenn du bei der Erzeugung (initialisierung) keinen Wert zuweist, wird dieser Var vom Compiler ein Wert zugewiesen. Das könnte zu Fehlern führen, da der Wert so nicht definiert ist.
Wenn du diese Zuweisung wieder entfernst, bekommst du ja einen Fehler. Welcher Fehler wird denn ausgegeben?

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.05.2015, 15:08
Beitrag #3
RE: Spielwürfel
...im Tuti sagen sie das random einen long int Wert liefert...Big Grin
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


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