Boîte de Mastermind Arduino (Prototype) (14 / 14 étapes)

Etape 14 : Le code

led1 int = 2 ; Cela définit le numéros de noms. Il est utilisé plus tard pour conduit [i]

led2 int = 3 ;

led3 int = 4 ;

led4 int = 5 ;

int i = -1 ; J’affecte -1, utilisé pour tirer au hasard seulement le code quand setup() ; est appelée.

int j = 0 ; J se réinitialise à 0 pour un nouveau j de ronde, sert à en tant qu’index lorsque le bon code est appelé.

#include / / inclut la bibliothèque de servo

Servo servo1 ; Servo de nom

double code [4] = {1, 1, 1, 1} ; Crée un tableau appelé code, c’est se compose de 4 chiffres.

corriger les double [5] = {0, 0, 0, 0, 0} ; Crée un tableau appelé correct, c’est se compose de 5 chiffres et sert à vérifier si tous les nombres ont été devinés correctement.

double conduit [4] = {2, 3, 4, 5} ; Crée un tableau appelé led, c’est se compose de 4 chiffres et est utilisée pour activer les leds lorsque l’index est appelée.

void setup() {}

Le programme d’installation est également utilisé pour réinitialiser le programme lorsque le code correct a été saisi.

initialiser une communication série à 9600 bits/s :

Serial.Begin(9600) ;

corriger les double [5] = {0, 0, 0, 0, 0} ; Réinitialise le tableau correct

Définit la LED (2 à 5) et les touches (9 à 12) pour être reconnu en tant qu’entrée sortie.

pinMode (9, entrée) ;

pinMode (10, entrée) ;

pinMode (11, entrée) ;

pinMode (12, entrée) ;

pinMode (sortie 2) ;

pinMode (3, sortie) ;

pinMode (sortie 4) ;

pinMode (5, sortie) ;

SERVO1.Attach(1) ; attache le servo sur la broche 1

SERVO1.Write(90) ; Réglez le Servo sur cette position

Delay(2000) ; Maintenez cette position pendant 2000ms remettre le couvercle

SERVO1.Write(170) ; Verrouillez le couvercle

J’ai = -1 ; rend aléatoire le code si j’ai = -1

digitalWrite (led1, faible) ; Réinitialise tous les LED

digitalWrite (led2, faible) ;

digitalWrite (DEL3, faible) ;

digitalWrite (led4, faible) ;

analogWrite (8, random(0,255)) ; Définissez le RGB pour une couleur au hasard

analogWrite (7, random(0,255)) ;

analogWrite (6, random(0,255)) ;

}

Sub generateCode()

{

Alternez le code si j’ai = -1

randomSeed(random()) ;

pour (int i = 0; i < 4; i ++)

{

corriger [0] = 0 ;

corriger [1] = 0 ;

corriger [2] = 0 ;

corriger [3] = 0 ;

corriger [4] = 0 ;

Code [i] = random(1,5) ;

}

déboguer le code si vous n’avez pas de comprendre le code.

Serial.println("code") ;

Serial.println(code[0]) ;

Serial.println(code[1]) ;

Serial.println(code[2]) ;

Serial.println(code[3]) ;

}

void retry() {}

Si le code est incorrect, que cette fonction est appelée

Serial.Begin(9600) ;

corriger les double [5] = {0, 0, 0, 0, 0} ;

i = 0 ; J’ai mis à 0 si le code n’est pas réinitialisé.

digitalWrite (led1, faible) ;

digitalWrite (led2, faible) ;

digitalWrite (DEL3, faible) ;

digitalWrite (led4, faible) ;

}

void loop() {}

Si (j’ai == -1) {}

generateCode() ; générer un nouveau code si j’ai = -1

i ++ ;

}

// code 1 ////////////////////////

Le code suivant lirai si l’entrée est égale au nombre α la position courante.

Si le nombre et la position est correcte la led s’allume et le tableau « correct » aura la valeur 1 pour ce poste

Si le numéro est correct, mais la position est erronée, le voyant lumineux clignote lentement puis continuer vers la position suivante, Correct n’est pas définie à 1

Si le nombre n’est pas correct du tout la led va clignoter rapidement et continuer vers la position suivante, Correct n’est pas définie à 1

Si tout est correct est = à 1. Les leds clignotent et le servo va changer de position pour permettre à la boîte pour ouvrir. le réglage de la fonction s’appelle le jeu recommencer.

Si l’un des nombres dans le tableau « correct » est 0, la led rouge clignote une fois et la nouvelle tentative de fonction est appelée.

Si (digitalRead(9) == haut) / / si la touche >

{

Si (code [i] == 1) {/ / si le code est correct à touche appuyée

digitalWrite((led[i]), HIGH) ; Tournez ledon

i ++ ; indice d’avance

corriger [i] = 1 ; la valeur index correct 1

Delay(250) ;

}

ElseIf (code [1] == 1 ou code [2] == 1 ou code [3] == 1 ou code [4] == 1) {}

Serial.println ("droite, mais mauvais emplacement") ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ; délai de bouton ne soient une entrée dans souvent pendant 1 Appuyez sur.

digitalWrite((led[i]), faible) ; A code de clignotement lent.

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

i ++ ;

Delay(250) ;

}

ElseIf (code [i]! = 1) {}

Serial.println("Wrong") ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

i ++ ;

Delay(250) ;

}

}

Si (digitalRead(10) == HIGH)

{

Si (code [i] == 2) {}

digitalWrite((led[i]), HIGH) ;

i ++ ;

corriger [i] = 1 ;

Delay(250) ;

}

ElseIf (code [1] == 2 ou code [2] == 2 ou code [3] == 2 ou code [4] == 2) {}

Serial.println ("droite, mais mauvais emplacement") ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

i ++ ;

Delay(250) ;

}

ElseIf (code [i]! = 2) {}

Serial.println("Wrong") ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

i ++ ;

Delay(250) ;

}

}

Si (digitalRead(11) == HIGH)

{

Si (code [i] == 3) {}

digitalWrite((led[i]), HIGH) ;

i ++ ;

corriger [i] = 1 ;

Delay(250) ;

}

ElseIf (code [1] == 3 ou le code [2] == code [3] ou 3 == 3 ou code [4] == 3) {}

Serial.println ("droite, mais mauvais emplacement") ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

i ++ ;

Delay(250) ;

}

ElseIf (code [i]! = 3) {}

Serial.println("Wrong") ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

i ++ ;

Delay(250) ;

}

}

Si (digitalRead(12) == HIGH)

{

Si (code [i] == 4) {}

digitalWrite((led[i]), HIGH) ;

i ++ ;

corriger [i] = 1 ;

Delay(250) ;

}

ElseIf (code [1] == 4 ou le code [2] == 4 ou code [3] == 4 ou code [4] == 4) {}

Serial.println ("droite, mais mauvais emplacement") ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

Delay(500) ;

digitalWrite((led[i]), faible) ;

Delay(500) ;

digitalWrite((led[i]), HIGH) ;

i ++ ;

Delay(250) ;

}

ElseIf (code [i]! = 4) {}

Serial.println("Wrong") ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

Delay(200) ;

digitalWrite((led[i]), faible) ;

Delay(200) ;

digitalWrite((led[i]), HIGH) ;

i ++ ;

Delay(250) ;

}

}

vérifie si l’ensemble du code est correctement inscrite.

Si (digitalRead(led4) == haute et corriger [1] == 1 et corriger [2] == 1 et corriger [3] == 1 et corriger [4] == 1) {}

Si (j < = 20) {}

digitalWrite (led2, faible) ;

digitalWrite (led1, faible) ;

digitalWrite (DEL3, faible) ;

digitalWrite (led4, faible) ;

Delay(100) ;

digitalWrite (led2, HIGH) ;

digitalWrite (led1, HIGH) ;

digitalWrite (DEL3, HIGH) ;

digitalWrite (led4, HIGH) ;

Delay(100) ;

j ++ ;

i = 0 ;

int i = 0 ;

SERVO1.Write(90) ;

}

ElseIf (j > 20)

{

j = 0 ;

Setup() ;

}}

Si elle est pas correcte, réessayer

ElseIf (digitalRead(led4) == haute et corriger [1] == 0 ou digitalRead(led4) == haute et corriger [2] == 0 ou digitalRead(led4) == haute et corriger [3] == 0 ou digitalRead(led4) == haute et corriger [4] == 0) {}

Delay(2000) ;

digitalWrite (led4, faible) ;

digitalWrite (led2, faible) ;

digitalWrite (led1, faible) ;

digitalWrite (DEL3, faible) ;

Delay(600) ;

digitalWrite (led4, HIGH) ;

Delay(600) ;

i = 0 ;

int i = 0 ;

Retry();}}

Articles Liés

Interface haptique Arduino Prototype

Interface haptique Arduino Prototype

Il s'agit est un simple guide de construction d'un prototype d'une interface haptique. Le produit final sera capable de manipuler une série de huit moteurs de vibration à l'aide de l'entrée d'utilisateur à l'écran serial Arduino sur l'ordinateur. Une
Fait maison Shield Arduino Prototype

Fait maison Shield Arduino Prototype

Salut. Je viens de m'un Arduino Uno R3 et je suis vraiment nouveau dans le monde des Arduinos. Il y a tellement de choses à apprendre et Explorer:)L'un des premiers boucliers que je suis tenté d'acheter est le bouclier de Prototype. Selon moi, constr
Arduino Prototype Centre

Arduino Prototype Centre

c'est un relativement bon marché et facile de projet de construction qui vous aideront à tester tous vos projets d'Arduino et prototypes. Car il a une source d'alimentation plug-in, il élimine l'utilisation de la batterie fréquents et laisse le monta
3 axe Arduino Based CNC Controller

3 axe Arduino Based CNC Controller

j'ai joué avec différentes conceptions CNC et des contrôleurs de moteurs pas à pas depuis de nombreuses années. J'ai commencé à construire des machines CNC il y a longtemps. Mon premier jet d'inspiration provenait d'eggbot de Bruce Shapiro. J'ai essa
James - votre premier Arduino Robot

James - votre premier Arduino Robot

pour plus de tutoriels robotique, consultez mon site ici : http://www.duino-robotics.com/Pour des vidéos impressionnantes sur les robots et impression 3D, allez ici : http://www.youtube.com/channel/UC340dy5bmr6sLpyRh5qYwrgEdit :Merci beaucoup tout le
Arduino BASIC bouclier

Arduino BASIC bouclier

Salut à tous, ceci est mon premier instructable documentant la création de mon projet, le bouclier de l'Arduino UNO BASIC qui transforme l'Arduino UNO dans un ordinateur qui exécute le langage de programmation BASIC.Comme les microcontrôleurs sont es
CO2 Refroidisseur d’eau au Laser

CO2 Refroidisseur d’eau au Laser

Refroidisseur d'eau Laser CO2Tubes de Laser CO2 sont refroidis en lançant ou pomper de l'eau à travers le tube. Cela est nécessaire pour prolonger la durée de vie du tube qui autrement pourrait surchauffer et rapidement perdre de la puissance et fina
Lampe/veilleuse le Cloud

Lampe/veilleuse le Cloud

j'ai fait ce projet parce que mon cousin a peur du noir. Cette veilleuse a LED un couple, mais il fait le travail. Personnaliser l'arduino comme tu veux. Il s'agit d'un projet rapide de 5 minutes. Rien de spécial. Vous pouvez l'accrocher sur un berce
Guide complet de montage électronique expérimental : un méta Instructable

Guide complet de montage électronique expérimental : un méta Instructable

Montage expérimental parfois appelées cartes de prototypage ou proto planches sont un moyen rapide de travail vers le haut et l'expérimentation de circuits électroniques. Carte de prototypage de circuits étaient à l'origine circuits construits sur mo
Ouvrir les ondes cérébrales matériel d’interface

Ouvrir les ondes cérébrales matériel d’interface

mise à jour le 16 juin 2014 pour l'article 9 :vous pouvez aussi aller directement à la Section 9.faire l'interface de haute qualité ondes cérébrales comme le faible coût et la petite taille est mon plus de 20 ans de rêve. Pour ce faire besoin de prod
Oeil de détection de mouvement

Oeil de détection de mouvement

j'ai toujours voulu faire quelque chose avec mon affichage à LED à matrice de points, et donc quand j'ai trouvé un ancien détecteur de mouvement alarme je savais exactement quoi faire, une Motion Sensing Eye !Cette volonté instructable si tout va bie
Compte à rebours déclenché au laser

Compte à rebours déclenché au laser

il s'agit d'un projet arduino simple basé consistant en un tripwire laser qui, lors du déclenchement, commence un compte à rebours sur les LEDs rouges, orange et verts. J'ai conçu ce soit un projet facile pour quelqu'un d'apprentissage fonctionnement
Son Ranging destinés aux malvoyants utilisant le Concept de Design Prototype Arduino

Son Ranging destinés aux malvoyants utilisant le Concept de Design Prototype Arduino

c'était mon idée pour un dispositif susceptible d'aider les malvoyants utilisant un capteur allant ultra-sonique monté sur un chapeau.  Fondamentalement, le concept est que l'appareil serait ton distances pour une personne ayant une déficience visuel
Projets électronique prototype avec Arduino & impression 3D

Projets électronique prototype avec Arduino & impression 3D

Si vous avez cette grande idée d'un projet électronique. Vous ne savez pas exactement quel circuit que vous allez utiliser, vous devrez faire quelques prototypes. Quelle meilleure façon de le faire qu'avec un Arduino et une maquette ? Dans ce tutorie