Inhoudsopgave:

ELEKTRONISCHE DOBBELSTENEN MET CLOUDX M633 - Ajarnpa
ELEKTRONISCHE DOBBELSTENEN MET CLOUDX M633 - Ajarnpa

Video: ELEKTRONISCHE DOBBELSTENEN MET CLOUDX M633 - Ajarnpa

Video: ELEKTRONISCHE DOBBELSTENEN MET CLOUDX M633 - Ajarnpa
Video: Elektronische Dobbelsteen (met schema) 2024, Juli-
Anonim
ELEKTRONISCHE DICE MET CLOUDX M633
ELEKTRONISCHE DICE MET CLOUDX M633

We moeten allemaal op de een of andere manier het kansspel hebben gespeeld met de dobbelstenen. Het kennen van de zeer onvoorspelbare aard van wat het rollen van de dobbelstenen zou blijken te laten zien, voegt nog veel plezier toe aan het spel.

hierbij presenteer ik een elektronische digitale dobbelsteen met behulp van eenvoudige LED's, een drukknop en de CloudX M633-module om deze te implementeren.

Stap 1: COMPONENTEN

COMPONENTEN
COMPONENTEN
COMPONENTEN
COMPONENTEN
COMPONENTEN
COMPONENTEN
  • CloudX M633
  • CloudX-softcard
  • Leds
  • Weerstanden (100r, 10k)
  • Broodplank
  • Doorverbindingsdraad
  • druk op de knop
  • V3-snoer

Stap 2: LEDS

LEDS
LEDS

De lichtemitterende diodes (LED's) zijn de speciale soort diodes die gloeien wanneer er stroom doorheen gaat. Alleen die uiterste zorg wordt besteed aan het beperken van de werkelijke hoeveelheid stroom die er doorheen gaat om te voorkomen dat ze per ongeluk worden beschadigd tijdens het proces.

Stap 3: De LED's koppelen met CloudX M633

De LED's koppelen met CloudX M633
De LED's koppelen met CloudX M633

Het hele circuit bestaat uit twee secties: respectievelijk de microcontroller en de LED-secties. De LED's zijn georganiseerd in twee sets met elk − (bestaande uit 7 LED's), die de normale vlakken van een dobbelsteen vertegenwoordigen; en zijn verbonden met pin P1 tot en met pin P14 van de MCU-module.

De hele operatie draait om de microcontrollermodule als de hartslag van het hele project. Het (MCU) kan worden ingeschakeld:

  • ofwel via de VIN- en de GND-punten (d.w.z. door ze aan te sluiten op respectievelijk de +ve- en -ve-aansluitingen van uw externe voedingseenheid) op het bord;
  • of via uw CloudX USB-softcardmodule.

Zoals duidelijk wordt geïllustreerd in het bovenstaande schematische diagram, zijn de LED's zo gerangschikt dat wanneer ze oplichten, ze de cijfers aangeven zoals ze zouden doen in een echte dobbelsteen. En we werken met twee sets LED's om twee afzonderlijke dobbelstenen weer te geven. Ze zijn allemaal verbonden in de huidige zinkende modus.

De eerste groep LED's, bestaande uit: D1, D2, D3, D4, D5, D6 en D7; zijn verbonden met de pinnen van de MCU: P1, P2, P3, P4, P5, P6 en P7 respectievelijk via 10Ω-weerstanden. Overwegende dat de andere groep bestaande uit: D8, D9, D10, D11, D12, D13 en D14; zijn verbonden met de pinnen van de MCU: P9, P10, P11, P12, P13, P14 en P15 respectievelijk ook via 10Ω-weerstanden.

Vervolgens wordt de drukknop SW1 −waarmee we een willekeurige nummergeneratie maken via een schakelaardruk, verbonden met de MCU's pin P16 met behulp van een pull-up-weerstand van 10kΩ.

Stap 4: Werkingsprincipes

Bij het opstarten zijn de LED's normaal gesproken allemaal uit om aan te geven dat het systeem klaar is om een nieuw willekeurig getal te genereren voor weergave. Bij het indrukken van de schakelaar wordt een willekeurig getal tussen 1 en 6 gegenereerd en weergegeven via de LED's; en blijf Aan in afwachting wanneer er weer een schakelaar wordt ingedrukt.

Stap 5: CODEREN

#erbij betrekken

#erbij betrekken

#definieer schakelaar1 pin16

#define ingedrukt LOW

/* bevat dobbelstenenpatronen die op de LED's moeten worden uitgevoerd */

niet-ondertekende char die = {0, 0x08, 0x14, 0x1C, 0x55, 0x5D, 0x77};

unsigned char i, dice1, dice2;

setup () { // setup hier / * configureert poortpinnen als uitvoer */ portMode (1, OUTPUT); portMode(2, 0b10000000); /*schakelt alle LED's aan het begin uit */ portWrite(1, LOW); portWrite(2, LAAG); randNumLimit(1, 6); //zorgt voor randomNumber generatiebereik (dwz min, max)

lus(){

// Programmeer hier if (switch1 is ingedrukt) { while (switch1 is LAAG); // wacht hier totdat de schakelaar wordt losgelaten dice1 = randNumGen(); // genereert een willekeurig getal voor dice1 dice2 = randNumGen(); portWrite(1, die[dobbelsteen1]); //haalt het juiste dobbelsteenpatroon op en toont het portWrite(2, die[dice2]); } else { portWrite(1, die[dice1]); portWrite(2, die[dobbelsteen2]); } } } //Einde van programma

Aanbevolen: