Arduino Spielwiese

Eines der ersten eigenen Projekte das mit dem Arduino umgesetzt worden ist, ist dieser Würfel 2.0 🙂

Datei 08.02.16, 21 03 25

Sobald der Ultraschall Sensor ein Hindernis in einem Abstand von unter 20 cm erkennt wird der Würfel gerollt, bis das Hindernis einen größeren Abstand hat oder ganz entfernt ist – es wurde hier eine 5 gewürfelt.

das Passende Steckbrett würde so aussehen:

Würfel2_0_Steckplatine

und hier noch der Arduino Quellcode:

#include // Groove_Ultrasonic_Range_Master Bibliothek

Ultrasonic ultrasonic(7);
int wurf = 0;
void setup() {
Serial.begin(19200);

pinMode(13, OUTPUT); // LED
pinMode(14, OUTPUT); // Eins
pinMode(15, OUTPUT); // Zwei
pinMode(16, OUTPUT); // Drei
pinMode(17, OUTPUT); // Vier
pinMode(18, OUTPUT); // Fünf
pinMode(19, OUTPUT); // Sechs
randomSeed(analogRead(6));
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
digitalWrite(19, LOW);

}

void loop() {

long cm;

cm = ultrasonic.MeasureInCentimeters();
if (cm > 20){
digitalWrite(13, HIGH); // Bereit zum Würfeln
}
else {
digitalWrite(13, LOW); // nun wird gewürfelt
wurf = random(1, 7);
}

switch (wurf) {
case 1:{
digitalWrite(14, HIGH);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
digitalWrite(19, LOW);
break;}
case 2:{
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
digitalWrite(19, LOW);
break;}
case 3:{
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
digitalWrite(19, LOW);
break;}
case 4:{
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, LOW);
digitalWrite(19, LOW);
break;}
case 5:{
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
digitalWrite(19, LOW);
break;}
case 6:{
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
digitalWrite(19, HIGH);
break;}
default: {
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
digitalWrite(19, LOW);
break;}
}
delay(25);
}

Share