• Hallo brocki,

    gratuliere, das ist ganz raffinierte Schaltung! Mit der Serienschaltung einzelner Led's hast du 7 Augen eingebaut und trotzdem nur 5 Pins benötigt.

    Dein Würfel kann sogar korrekt würfeln, ein Thema, das erst in der nächsten Lektion kommt (randomSeed() und random()).


    In der nächsten Lektion wird auch nochmals auf Arrays eingegangen. Diese sind sehr mächtig, in C aber auch sehr gefährlich, da der Compiler die Arraygrenzen nicht kontrolliert. Um es einfach zu halten, bin ich bei dem 5-Augen - Würfel geblieben. Du kannst versuchen, die Lektion mit deinen 7 Augen nachzuvollziehen.


    Gruss

    René

  • Hallo,

    ich habe mir ein paar Gedanken über den Würfel gemacht und eine Skizze, wie man die Led's am Arduino anschließen könnte.

    Es wurde ein Würfel mit 7 Augen gewählt.


    Würfelplan.pngWUERFEL.ino


    Den Scetch habe ich in Teilen übernommen und weiterentwickelt (mit meinen bescheidenen Kenntnissen).

    Das schöne ist,dass es funzt.:)


    /* Programm zur Würfelsimmulation

    B--------C

    D-- A --D

    C--------B

    */

    // PINs definieren

    const int PIN_LED_A = 8;

    const int PIN_LED_B = 10;

    const int PIN_LED_C = 9;

    const int PIN_LED_D = 11;

    const int PIN_TASTE1 = 7;


    const int anzahl_augen = 4;

    const int augen_pin[anzahl_augen] = {8, 9, 10, 11};

    long randNumber;

    int val = 0;

    int i = 0;


    void setup() {

    pinMode(PIN_TASTE1, INPUT_PULLUP);

    randomSeed(analogRead(0));

    for (int i = 0; i < 4; i++) {

    pinMode(augen_pin[i], OUTPUT);

    }



    // Test alle Leds an

    for (int i = 0; i < anzahl_augen; i++) {

    digitalWrite(augen_pin[i], HIGH);

    }

    delay(500);

    aus();

    }

    void aus() {

    // Alle Leds aus

    for (int i = 0; i < anzahl_augen; i++) {

    digitalWrite(augen_pin[i], LOW);

    }

    }

    void wuerfeln() {

    randNumber = random(1, 7); // Zufallszahl 1-6 erzeugen


    switch (randNumber) {

    case 1:

    digitalWrite(PIN_LED_A, HIGH);// 1 Auge

    break;


    case 2:

    digitalWrite(PIN_LED_B, HIGH);// 2 Augen

    break;


    case 3:

    digitalWrite(PIN_LED_A, HIGH);// 3 Augen

    digitalWrite(PIN_LED_B, HIGH);

    break;


    case 4:

    digitalWrite(PIN_LED_B, HIGH);// 4 Augen

    digitalWrite(PIN_LED_C, HIGH);

    break;


    case 5:

    digitalWrite(PIN_LED_A, HIGH);// 5 Augen

    digitalWrite(PIN_LED_B, HIGH);

    digitalWrite(PIN_LED_C, HIGH);

    break;


    case 6:

    digitalWrite(PIN_LED_B, HIGH);// 6 Augen

    digitalWrite(PIN_LED_C, HIGH);

    digitalWrite(PIN_LED_D, HIGH);

    break;

    }

    }


    void loop() {

    val = (digitalRead(PIN_TASTE1)); // Taste 1 gedrückt?

    if (val == LOW) {

    aus(); // Alle Leds aus

    delay(500);

    wuerfeln();

    }

    }

  • Hallo Karl,

    ich danke dir, dass du hier mitmachst. Den Youtube - Kanal gibt es ja schon seit einigen Jahren, dieses Forum hier aber erst seit kurzer Zeit. Deshalb läuft auch noch nicht besonders viel. Du bist herzlich eingeladen, hier Fragen zu stellen oder deine Meinung zu anderen Beiträgen oder den Videos mit uns zu teilen.


    Liebe Grüsse

    René

  • Vorab möchte ich mich für die Aufnahme bedanken. Ich bin auf das Medium „Der Hobbyelektroniker“ zufällig auf YouTube gestoßen und seither bin ich ein Dauergast.

    Die angenehme Art bei den Beiträgen macht süchtig nach mehr und dies wünsche ich auch dieser Community.


    René, vielen Dank für diese Plattform – ein Gewinn für jeden Anfänger aber auch für Fortgeschrittene.

    Liebe Grüße Karl