Makerspace, Natuurkunde, NLT

LED dobbelsteen

Inleiding:

In deze les wordt er uitgelegd over de LED dobbelsteen. Je gaat leren hoe je de Arduino moet aansturen om een willekeurig cijfer in LEDjes te laten zien. Veel leerplezier!

 

Benodigdheden: – 7 LED lampjes – 1 drukknop – Arduino Uno – 8 weerstanden van 330 Ohm – 11 draadjes (mannetje-mannetje)

 

Werkwijze: Als eerste doe je de 7 LEDjes in de Arduino zoals de foto hieronder. Vervolgens plaats je de drukknop. Nu wil je ervoor zorgen dat er een stroomkring ontstaat. Je doet een draadje van de 5 V naar de pluskant en een draadje van de GND naar de minkant. De LEDjes kunnen geen 5 V aan, daarom plaats je voor elk LEDje een weerstand die naar de minkant loopt. Ook plaats je een weerstand van de drukknop naar de minkant. Vervolgens plaats je van de getallen aan de bovenkant naar de LEDjes en de drukknop (hierover later meer uitleg). Als laatste moet je nog 1 draadje van de drukknop naar de pluskant. Sluit de Arduino aan de computer aan en upload de software. Zo heb jij je eigen doddelsteen gemaakt. Nu kun je op de knop drukken en komt er een random getal uit. Veel plezier!

 

Software:

int ledPins[7] = {2, 3, 4, 5, 6, 7, 8};

int dicePatterns[7][7] = {

{0, 0, 0, 0, 0, 0, 1}, // 1

{0, 0, 1, 1, 0, 0, 0}, // 2

{0, 0, 1, 1, 0, 0, 1}, // 3

{1, 0, 1, 1, 0, 1, 0}, // 4

{1, 0, 1, 1, 0, 1, 1}, // 5

{1, 1, 1, 1, 1, 1, 0}, // 6

{0, 0, 0, 0, 0, 0, 0} // BLANK

};

int switchPin = 9;

int blank = 6;

void setup()

{

for (int i = 0; i < 7; i++)

{

pinMode(ledPins[i], OUTPUT);

digitalWrite(ledPins[i], LOW);

}

randomSeed(analogRead(0));

}

void loop()

{

if (digitalRead(switchPin))

{

rollTheDice();

}

delay(100);

}

void rollTheDice()

{

int result = 0;

int lengthOfRoll = random(15, 25);

for (int i = 0; i < lengthOfRoll; i++)

{

result = random(0, 6); // result will be 0 to 5 not 1 to 6

show(result);

delay(50 + i * 10);

}

for (int j = 0; j < 3; j++)

{

show(blank);

delay(500);

show(result);

delay(500);

}

}

void show(int result)

{

for (int i = 0; i < 7; i++)

{

digitalWrite(ledPins[i], dicePatterns[result][i]);

}

}

 

Uitleg software: Eerst staat er uitgelegd welk aantal lichtjes welk cijfer weer geeft. Vervolgens kun je zien welk LED je waarop moet aan sluiten op de Arduino. Vervolgens zie je dat als je op de knop drukt dat er eerst een soort kleine licht show komt, er gaan allemaal lichtjes aan en uit op een random manier en vervolgens gaat hij de dobbelsteen ‘rollen’. Uiteindelijk komt er 1 random getal uit. Je ziet ook staan result = random. Alle getallen die achter delay staan betekent hoe lang de lampjes uit of aan staan.

 

Dit hebben we gemaakt aan de hand van 30 arduino projects for the evil genius.

 

Tessa Wormgoor en Lenny Burgemeijer A4

Leave a Reply