Vacances Dice Roller (2 / 3 étapes)

Étape 2: Le Code (Sketch Arduino)

Voici le code. Télécharger ceci dans votre Arduino. Vous pouvez ignorer les lignes d’impression car qui a été utilisé pour le débogage.

const int rollButton = 14 ;
const int secretButton = 15 ;

const int diceOne = 0 ;
const int diceTwo = 6 ;  Ajouter 6 aux broches d’adresse du deuxième die

int rollButtonState = élevé ;               la lecture actuelle de la goupille. ÉLEVÉ ne = pas pressé
int lastRollButtonState = élevé ;     la lecture précédente de la goupille
int secretButtonState = élevé ;             la lecture actuelle de la goupille de SECRET
int lastSecretButtonState = élevé ;   la lecture précédente de la goupille de SECRET

les variables suivantes sont longues de parce que le temps, mesuré en millisecondes,
deviendra rapidement un plus grand nombre que peuvent être stockés dans un int.
long lastSecretDebounceTime = 0 ;  la dernière fois que la broche de sortie a été activé/désactivée
long lastRollDebounceTime = 0 ;  la dernière fois que la broche de sortie a été activé/désactivée
debounceDelay long = 55 ;    le temps de debounce ; augmenter si la sortie scintille

void setup() {}

pinMode (0, sortie) ;        tout d’abord mourir de LED
pinMode (1, sortie) ;
pinMode (sortie 2) ;
pinMode (3, sortie) ;
pinMode (sortie 4) ;
pinMode (5, sortie) ;
pinMode (6, sortie) ;

pinMode (7, sortie) ;          die deuxième LED
pinMode (sortie 8) ;
pinMode (sortie 9) ;
pinMode (sortie 10,) ;
pinMode (sortie 11) ;
pinMode (sortie 12,) ;
pinMode (13, sortie) ;

pinMode (rollButton, entrée) ;            définit A0 broche comme entrée numérique ; Il s’agit de bouton ROLL
digitalWrite (rollButton, HIGH) ;        Allumez la résistance pullup

pinMode (secretButton, entrée) ;             définit A1 comme entrée numérique ; Il s’agit d’une touche SECRET
digitalWrite (secretButton, HIGH) ;         Allumez la résistance pullup

Serial.Begin(9600) ;

randomSeed(analogRead(3)) ;   Si la broche d’entrée analogique 3 est analogique non-connecté, aléatoire
bruit provoque l’appel à randomSeed() pour générer
nombre de graines différentes chaque fois le croquis est exécuté.
randomSeed() sera alors aléatoire la fonction aléatoire.

clearAll() ;

lightOne(0) ;                  Définissez les deux dés à lumières ceux pendant que vous attendez de commutateur ROLL à presser
lightOne(7) ;
}

void loop() {}

Serial.Print(rollButtonState) ;
Serial.println ("État du bouton Roll =") ;
Serial.println ("grande boucle") ;

checkRollButton() ;
checkSecretButton() ;
Si (rollButtonState == faible) / / bouton enfoncé = faible
{
blinkAll (300, 3) ;        un clin de & tout animé de 3 fois, 300 ms dehors et puis rouler
}

}

void checkSecretButton() {}
lire l’état de l’interrupteur dans une variable locale :
lecture int = digitalRead(secretButton) ;

Vérifiez si vous venez d’appuyer sur le bouton
(c'est-à-dire l’entrée est passé d’élevé à faible), et vous avez attendu
assez longtemps à ignorer les bruits :

Si l’interrupteur est faible, en raison de bruit ou de pressage :
Si (lecture == faible) {}
attendre le temps antirebonds
Delay(debounceDelay) ;
lire = digitalRead(secretButton) ;
Si (lecture == faible) //reading est encore faible retard debounce
{
secretButtonState = bas ;
Serial.println ("secretRoll de routine mis bas") ;
lastSecretButtonState = bas ; Il se souvient le bouton a été poussé et ne peut être réinitialisé après un rouleau secret
}
d’autre
{secretButtonState = élevé ;
}
}
d’autre
{secretButtonState = élevé ;
}
}

void checkRollButton() {}
lire l’état de l’interrupteur dans une variable locale :
lecture int = digitalRead(rollButton) ;

Vérifiez si vous venez d’appuyer sur le bouton
(c'est-à-dire l’entrée est passé d’élevé à faible), et vous avez attendu
assez longtemps à ignorer les bruits :

Si l’interrupteur est faible, en raison de bruit ou de pressage :
Si (lecture == faible) {}
attendre le temps antirebonds
Delay(debounceDelay) ;
lire = digitalRead(rollButton) ;
Si (lecture == faible) //reading est encore faible retard debounce
{rollButtonState = faible ;
Serial.println ("CheckRoll de routine mis bas") ;
}
d’autre
{rollButtonState = élevé ;
}
}
d’autre
{rollButtonState = élevé ;
}

}

void lightOne (int diceNumber) {}
Serial.println ("roulé un") ;
digitalWrite (diceNumber, HIGH) ;
}

void lightTwo (int diceNumber) {}
Serial.println ("roulé deux ») ;
digitalWrite (1 + diceNumber, HIGH) ;
digitalWrite (4 + diceNumber, HIGH) ;
}

void lightThree (int diceNumber) {}
Serial.println ("roulé trois") ;
digitalWrite (1 + diceNumber, HIGH) ;
digitalWrite (4 + diceNumber, HIGH) ;
digitalWrite (0 + diceNumber, HIGH) ;
}

void lightFour (int diceNumber) {}
Serial.println ("roulé quatre") ;
digitalWrite (3 + diceNumber, HIGH) ;
digitalWrite (1 + diceNumber, HIGH) ;
digitalWrite (4 + diceNumber, HIGH) ;
digitalWrite (6 + diceNumber, HIGH) ;
}

void lightFive (int diceNumber) {}
Serial.println ("roulé cinq") ;
digitalWrite (1 + diceNumber, HIGH) ;
digitalWrite (3 + diceNumber, HIGH) ;
digitalWrite (4 + diceNumber, HIGH) ;
digitalWrite (6 + diceNumber, HIGH) ;
digitalWrite (0 + diceNumber, HIGH) ;
}

void lightSix (int diceNumber) {}
Serial.println ("roulé SIX") ;
digitalWrite (1 + diceNumber, HIGH) ;
digitalWrite (2 + diceNumber, HIGH) ;
digitalWrite (3 + diceNumber, HIGH) ;
digitalWrite (4 + diceNumber, HIGH) ;
digitalWrite (5 + diceNumber, HIGH) ;
digitalWrite (6 + diceNumber, HIGH) ;
}

void clearAll() {}
digitalWrite (0, faible) ;
digitalWrite (1, faible) ;
digitalWrite (2, basse) ;
digitalWrite (3, faible) ;
digitalWrite (4, faible) ;
digitalWrite (5, faible) ;
digitalWrite (6, faible) ;
digitalWrite (7, faible) ;
digitalWrite (8, faible) ;
digitalWrite (9, faible) ;
digitalWrite (10, faible) ;
digitalWrite (11, faible) ;
digitalWrite (12, faible) ;
digitalWrite (13, faible) ;
}

void blinkAll (int t [, int n) {}
clearAll() ;
pour (int x = 0; x < n; x ++) {/ / Loop n fois
digitalWrite (0, faible) ;
digitalWrite (1, faible) ;
digitalWrite (2, basse) ;
digitalWrite (3, faible) ;
digitalWrite (4, faible) ;
digitalWrite (5, faible) ;
digitalWrite (6, faible) ;
digitalWrite (7, HIGH) ;
digitalWrite (8, HIGH) ;
digitalWrite (9, HIGH) ;
digitalWrite (10, haute) ;
digitalWrite (11, haute) ;
digitalWrite (12, HIGH) ;
digitalWrite (13, HIGH) ;

Delay(t) ;

digitalWrite (0, HIGH) ;
digitalWrite (1, haut) ;
digitalWrite (2, haut) ;
digitalWrite (3, élevée) ;
digitalWrite (4, élevée) ;
digitalWrite (5, HIGH) ;
digitalWrite (6, HIGH) ;
digitalWrite (7, faible) ;
digitalWrite (8, faible) ;
digitalWrite (9, faible) ;
digitalWrite (10, faible) ;
digitalWrite (11, faible) ;
digitalWrite (12, faible) ;
digitalWrite (13, faible) ;

Delay(t) ;
}

clearAll() ;

tout d’abord vérifier si le bouton secret a été précédemment poussé
Si (lastSecretButtonState == faible) / / si le secret a été enfoncée, lastSecretButtonState sera encore faible
{
secretDiceRoll() ;
}
d’autre
{
randomDiceRoll() ;
}

}

void randomDiceRoll() {}

int randNumber = 6 ;

/*
code d’essai
clearAll() ;

lightOne(diceOne) ;                  Définissez les deux dés à lumières ceux pendant que vous attendez de commutateur ROLL à presser
lightOne(diceTwo) ;
*/

Serial.println ("Random numéro code saisi") ;
Serial.Print(rollButtonState) ;
Serial.println ("État du bouton Roll =") ;

pour (d int = 0; d < 8; d = j + 7) {/ / faire une fois pour ea die

obtenir un nombre aléatoire de 1 à 6
randNumber = au hasard (6) + 1 ;

Switch (randNumber) {}

cas 1 :
lightOne(d) ;
rupture ;

cas 2 :
lightTwo(d) ;
rupture ;

cas 3 :
lightThree(d) ;
rupture ;

cas 4 :
lightFour(d) ;
rupture ;

cas no 5 :
lightFive(d) ;
rupture ;

cas 6 :
lightSix(d) ;
rupture ;

par défaut :
clearAll() ;
rupture ;
}
}

rollButtonState = élevé ;

Serial.println ("est sorti numéro code aléatoire ») ;
Serial.Print(rollButtonState) ;
Serial.println ("État du bouton Roll =") ;
Serial.println("") ;

}

void secretDiceRoll() {bouton //secret causes aléatoires doubles

int secretRandNumber = 6 ;

secretRandNumber = au hasard (6) + 1 ;

Switch (secretRandNumber) {}

cas 1 :
{lightOne(0) ; lightOne(7) ; break;}

cas 2 :
{lightTwo(0) ; lightTwo(7) ; break;}

cas 3 :
{lightThree(0) ; lightThree(7) ; break;}

cas 4 :
{lightFour(0) ; lightFour(7) ; break;}

cas no 5 :
{lightFive(0) ; lightFive(7) ; break;}

cas 6 :
{lightSix(0) ; lightSix(7) ; break;}

par défaut :
{clearAll() ; break;}
}
secretButtonState = élevé ;
lastSecretButtonState = élevé ;
}

Articles Liés

3D imprimés microcontrôleur Dice Roller

3D imprimés microcontrôleur Dice Roller

Il s'agit d'un projet juste pour le plaisir que j'ai fait dans la Digilent MakerSpace. Généralement, chaque fois que je joue des jeux de société j'utilise une application smartphone laminage dés puisque les dés sont si faciles à perdre. J'ai pensé qu
Comment jouer menteur dés

Comment jouer menteur dés

pour le Pirate des Caraïbes fans, vous reconnaîtrez probablement ce jeu. On m'a enseigné ce jeu alors que je m'arrête pour la nuit sur mon récent voyage de route de Cross-Country de toutes sortes. Dés du menteur, ou dés du menteur ou Perudo Dudon ou
Amusez-vous avec Arduino, rien d’autre besoin, partie 2

Amusez-vous avec Arduino, rien d’autre besoin, partie 2

J'étais curieux de voir comment un Arduino fonctionnerait en maths et en graphisme simple texte basé alors j'ai décidé de faire expérimenter un peu. Ces programmes sont mieux adaptés pour un ordinateur, mais il est intéressant de voir qu'un Arduino p
Comment faire un rouleau dés électroniques

Comment faire un rouleau dés électroniques

Ce message décrit en détail un projet que j'ai terminé l'été dernier, un rouleau de dé électronique. Dans ce post, je vais aller sur comment et pourquoi je l'ai créé, et comment vous pouvez faire un de trop !Étape 1: Pourquoi construire un rouleau dé
68 façons de réutiliser les vieilles bouteilles de médicament de Prescription

68 façons de réutiliser les vieilles bouteilles de médicament de Prescription

Nous allons l'entendre pour mieux vivre par le biais de produits pharmaceutiques. Ordonnances, je veux dire. Il existe des médicaments pour abaisser votre tension artérielle, réduire votre cholestérol, réduisant l'inflammation, bloquant les bêtas et
Ridiculement simple Déodorant Roll-on Bio - recette de deux ingrédients.  Receta desodorante bio de déo d’orgánico FVM

Ridiculement simple Déodorant Roll-on Bio - recette de deux ingrédients. Receta desodorante bio de déo d’orgánico FVM

Huile de coco vierge biologique cru est un incroyable nourriture, médicament et produits de beauté. J'ai récemment utilisé avec succès et rapidement pour guérir les bardeaux (j'ai mangé deux cuillères à soupe par jour), cependant, l'un des moyens sup
Comment faire des coréen egg roll

Comment faire des coréen egg roll

un guide simple pour faire un délicieux plat coréen. Facile à faire et va bien avec n'importe quel repas.Etape 1: Obtenir des ingrédients Ingrédients :3 oeufs1 carotte1 oignon vertC'est tout !Étape 2: Oeufs de fouet Crack tous trois oeufs, fouetter e
Vinyl Record vacances arbre

Vinyl Record vacances arbre

Pour tous vous vacances musique amoureux * là-bas, ici un non traditionnel arbre de Noël pour vous aider à obtenir votre groove de wonderland hiver sans vrais arbres sur.Il s'agit d'un mur monté « arbre » de vacances vintage LP ' s et un tourne-disqu
Rollie Pollie elfes

Rollie Pollie elfes

c'est les vacances meilleur de poche petit bricolage présente jamais !  Adultes et les enfants ne peuvent pas aider mais sourire quand ils voient ces petits gars rouler tête-over-pieds long d'une rampe !Inspiration :  J'ai fait ces Elfes dans le bas
Vacances ruban Secret argent conteneur à jour

Vacances ruban Secret argent conteneur à jour

mon fils âge de collège et j'ai parlé des idées pour le concours d' Secret et les portes sur une promenade récente. Quand je suis rentré et a commencé à envelopper les cadeaux de Noël, j'ai réalisé des bobines de ruban ferait un grand conteneur secre
Pickle Roll-Ups

Pickle Roll-Ups

j'adore les roulés aux cornichons.  C'est un de ces aliments que je demande toujours d'avoir pendant les vacances, ou n'importe quel moment je peux sortir avec elle.  Ma mère et ma grand-mère font toujours les meilleures pickle roulés et pour la prem
Comment survivre à la Rock n Roll Lifestyle

Comment survivre à la Rock n Roll Lifestyle

Quand j'étais adolescent, avant de commencer ma carrière comme une star du rock, un ami de la famille n'appelé Walt (, pas de Walter White) m'a donné quelques des meilleurs conseils que j'ai jamais eu de toute autre personne, vivante ou morte et je v
Emballage pour vacances - non plus un gros problème !

Emballage pour vacances - non plus un gros problème !

J'ai étais prête à prendre mon train à Amritsar de Delhi Railway Station, quand j'étais déconcerté et suis stupéfait. J'ai bricolé dans mon portefeuille, mes quatre toutes les poches, mais a été incapable de trouver les billets. Puis, j'ai réalisé qu
Comment faire un Album de voyage de vacances en une heure / Armar Como un album de viajes en una hora

Comment faire un Album de voyage de vacances en une heure / Armar Como un album de viajes en una hora

Il y a mille façons aux souvenirs de document. Il n'y a aucune bonne ou mauvaise façon de le faire, le meilleur moyen est celui qui travaille pour vous et que vous aimez. Néanmoins, si vous voulez faire un album en aussi peu de temps que possible et