Arduino Mastermind Box (prototyp) (14 / 14 steg)

Steg 14: Koden

int led1 = 2; Det här alternativet anger antalet namn. Detta används senare för ledde [i]

int led2 = 3;

int led3 = 4;

int led4 = 5;

int jag = -1; Ställer jag till -1, används att bara slumpmässigt koden när setup(); kallas.

int j = 0; Återställer j till 0 för en ny runda, j används till som ett index när rätt kod anropas.

#include / / includes servo biblioteket

Servo servo1; Namn servo

dubbla koden [4] = {1, 1, 1, 1}; Skapar en array kallas kod, det är består av 4 siffror.

dubbla rätta [5] = {0, 0, 0, 0, 0}; Skapar en matris kallas korrekt, är det består av 5 siffror och används för att se om alla nummer har varit gissat rätt.

dubbel ledde [4] = {2, 3, 4, 5}; Skapar en array kallas led, det är består av 4 siffror och används för att aktivera lysdioderna när indexet kallas.

void setup() {

Inställningarna används också att återställa programmet när du har angett rätt kod.

initiera seriell kommunikation på 9600 bps:

Serial.BEGIN(9600);

dubbla rätta [5] = {0, 0, 0, 0, 0}; Återställer korrekt matrisen

Ställer in knapparna (9-12) för att erkännas som indata och lysdioder (2-5) som utgång.

pinMode (9, ingång);

pinMode (10, ingång);

pinMode (11, ingång);

pinMode (12, ingång);

pinMode (2, utgång);

pinMode (3, OUTPUT);

pinMode (4, OUTPUT);

pinMode (5, OUTPUT);

servo1.attach(1); fäster servo på stift 1

servo1.write(90); Inställd denna ståndpunkt Servo

Delay(2000); Håll denna position för 2000ms att återställa locket

servo1.write(170); låset på locket

Jag = -1; slumpmässig koden om jag = -1

digitalWrite (led1, låg); Återställer alla lysdioder

digitalWrite (led2, låg);

digitalWrite (led3, låg);

digitalWrite (led4, låg);

analogWrite (8, random(0,255)); Ange RGB till en slumpmässig färg

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

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

}

void generateCode()

{

randomize koden om jag = -1

randomSeed(random());

för (int jag = 0; jag < 4; i ++)

{

korrigera [0] = 0;

korrigera [1] = 0;

korrigera [2] = 0;

korrigera [3] = 0;

korrigera [4] = 0;

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

}

felsöka kod så du behöver inte räkna ut koden.

Serial.println("Code");

Serial.println(Code[0]);

Serial.println(Code[1]);

Serial.println(Code[2]);

Serial.println(Code[3]);

}

void retry() {

om koden är felaktig kallas denna funktion

Serial.BEGIN(9600);

dubbla rätta [5] = {0, 0, 0, 0, 0};

Jag = 0; Jag satt till 0 så kod inte återställs.

digitalWrite (led1, låg);

digitalWrite (led2, låg);

digitalWrite (led3, låg);

digitalWrite (led4, låg);

}

void loop() {

om (jag == -1) {

generateCode(); Generera en ny kod om jag = -1

i ++;

}

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

Följande kod kommer att läsa upp om indata är lika med antalet i den aktuella positionen.

om antal och placering är korrekt led tänds och matrisen "korrekt" sätts till 1 för den positionen

om numret är korrekt men ståndpunkten är fel led kommer att blinka långsamt och fortsätter till nästa position, är korrekt inte inställd på 1

om numret inte är korrekt i alla kommer att led blinka snabbt och fortsätter till nästa position, korrekt inte är satt till 1

om alla rätt är = 1. Lysdioder kommer att blinka och servo kommer att ändra ställning så att rutan öppnar. inställningar för funktion kallas för spelet att börja på nytt.

om något av talen i matrisen "korrekt" är 0 den röda led blinkar en gång och funktion igen kallas.

om (digitalRead(9) == hög) / / om knappen trycks >

{

om (kod [i] == 1) {/ / om koden är korrekt till knappen intryckt

digitalWrite((led[i]), hög); Aktivera ledon

i ++; Advance index

korrigera [i] = 1; Ange korrekt index till 1

Delay(250);

}

annars om (koden [1] == 1 eller koden [2] == 1 eller koden [3] == 1 eller koden [4] == 1) {

Serial.println ("rätt, men fel plats");

digitalWrite((led[i]), hög);

Delay(500); fördröja så knappen inte kommer matas till ofta under 1 Tryck på.

digitalWrite((led[i]), låg); Ledde långsam blinkkod.

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

i ++;

Delay(250);

}

annars om (kod [i]! = 1) {

Serial.println("Wrong");

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

i ++;

Delay(250);

}

}

om (digitalRead(10) == hög)

{

om (kod [i] == 2) {

digitalWrite((led[i]), hög);

i ++;

korrigera [i] = 1;

Delay(250);

}

annars om (koden [1] == 2 eller koden [2] == 2 eller koden [3] == 2 eller koden [4] == 2) {

Serial.println ("rätt, men fel plats");

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

i ++;

Delay(250);

}

annars om (kod [i]! = 2) {

Serial.println("Wrong");

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

digitalWrite((led[i]), hög);

Delay(200);

i ++;

Delay(250);

}

}

om (digitalRead(11) == hög)

{

om (kod [i] == 3) {

digitalWrite((led[i]), hög);

i ++;

korrigera [i] = 1;

Delay(250);

}

annars om (koden [1] == 3 eller kod [2] == 3 eller kod [3] == 3 eller kod [4] == 3) {

Serial.println ("rätt, men fel plats");

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

i ++;

Delay(250);

}

annars om (kod [i]! = 3) {

Serial.println("Wrong");

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

i ++;

Delay(250);

}

}

om (digitalRead(12) == hög)

{

om (kod [i] == 4) {

digitalWrite((led[i]), hög);

i ++;

korrigera [i] = 1;

Delay(250);

}

annars om (koden [1] == 4 eller koden [2] == 4 eller koden [3] == 4 eller koden [4] == 4) {

Serial.println ("rätt, men fel plats");

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

Delay(500);

digitalWrite((led[i]), låg);

Delay(500);

digitalWrite((led[i]), hög);

i ++;

Delay(250);

}

annars om (kod [i]! = 4) {

Serial.println("Wrong");

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

Delay(200);

digitalWrite((led[i]), låg);

Delay(200);

digitalWrite((led[i]), hög);

i ++;

Delay(250);

}

}

kontrollerar om hela koden registreras korrekt.

om (digitalRead(led4) == hög och korrigera [1] == 1 och korrigera [2] == 1 och korrigera [3] == 1 och korrigera [4] == 1) {

om (j < = 20) {

digitalWrite (led2, låg);

digitalWrite (led1, låg);

digitalWrite (led3, låg);

digitalWrite (led4, låg);

Delay(100);

digitalWrite (led2, hög);

digitalWrite (led1, hög);

digitalWrite (led3, hög);

digitalWrite (led4, hög);

Delay(100);

j ++;

Jag = 0;

int jag = 0;

servo1.write(90);

}

annars om (j > 20)

{

j = 0;

Setup();

}}

om de inte fungerar, försök igen

annars om (digitalRead(led4) == hög och korrigera [1] == 0 eller digitalRead(led4) == hög och korrigera [2] == 0 eller digitalRead(led4) == hög och korrigera [3] == 0 eller digitalRead(led4) == hög och korrigera [4] == 0) {

Delay(2000);

digitalWrite (led4, låg);

digitalWrite (led2, låg);

digitalWrite (led1, låg);

digitalWrite (led3, låg);

Delay(600);

digitalWrite (led4, hög);

Delay(600);

Jag = 0;

int jag = 0;

retry() ;}}

Se Steg
Relaterade Ämnen

"Arduino" beslut "Box" vara (Attiny85)

Pleace tillkännagivande: det här projektet innehåller inte heller en låda eller någon Arduino * kod.Jag fastnade med detta namn eftersom detta projekt är en modifictaion av Victor8o5's "Arduino beslut box 2.0 (Attiny85)" tre dagar sedan. Jag gil...

3D Printable Arduino Protection Box

Yo,Laddat upp nya R3 version plattan och rutan! Inklusive en Ethernet shield R3 rutan toppen tillägg!Jag har drivit ut flera Arduino Uno bygger och behövde ett säkert plattan och låda combo som kunde skydda tillgångar under en höst eller tumla och sk...

Arduino Music Box

Gör din egen speldosa!Material:9V batteriBox material (kartong, sax, tejp, markörer)P1 PowerW7 gaffelI3-knappenI20 Ljud TriggerW6 ArduinoW1 Tråd (2)O3 RGB LEDO5 LikströmsmotorO24 Synth högtalare(Jag använde lite bitar Deluxe Kit och talaren från den...

Ihållande Vision använder Arduino UNO(New Prototype)

Hej Guyz.Jag hade gjort ett projekt på POV använder Arduino UNO. Jag hade sett många modeller av många olika användare på denna webbplats. Så kom jag upp med en ny prototyp av POV. Jag var inte säker på början som det kommer att fungera eller inte me...

NVCBOARD, Arduino + Rasp tabell prototyp

Este proyecto es una enkel mesa con dos placas protoboard, un Arduino y una Raspberry Pi. Han querido crear una mesa de prototipos que incluya estas dos plataformas para poder crear aplicaciones que requieran både, ya que estoy indagando un proyecto...

Arduino lätt prototyping tips

Hej.I denna Istructables ska jag ge er några tips om prototyper använder Arduino.Jag har använt en prototyping sköld för att bygga mina projekt, och jag har insett att de flesta av gånger som inte är det bästa alternativet.Steg 1: Använd en potentiom...

Skattjakt för vuxna (följeslagare till Arduino skattjakt Box)

Jag har alltid gillat filmer som National Treasure och liknande. De som har ett team av människor som kör hela försöker lösa en gåta eller en sträng med gåtor för att få guld, få flickan, rädda världen, bli direkt rik, etc.Jag har tre vuxna barn och...

Arduino Security Box

Arduino trygghet lådaDetta projekt skapar ett säkerhetssystem för en låda eller behållare. Placera LDR i en mörk behållare. Närbehållaren öppnas summern ljuder att låta alla veta att behållaren har öppnatsom behållaren stängs snabbt summern kommer at...

Arduino projekt Box

Jag leker ständigt i Arduino land arbetar med nya finnar, displayer och sensorer. Nyligen hade jag samtal att bygga en temperatur datalogger för att registrera temperaturer från 16 olika platser inne i en stor elektrisk församling skåp så jag kunde i...

Arduino bil Lightbar - prototyp

I detta Arduino projekt kommer jag visa dig hur jag gjorde min prototyp av en lightbar.Observera att inte jag är ansvarig för problem med andra människor (och kanske polisen) du kommer eventuellt att köra i till.I många länder är det olagligt att kör...

Arduino Synth Box

Detta är en synthesizer bygger bort den OctoSynth läraren.Material som behövs:Arduino UnoUSB-kabel till att ansluta Arduino datorLödning pistolLödaStor tunn koppar plåtSmå högtalare2 små fyrsidig korgarSkum att skäraStatisk hållfasthet plastWire9 vol...

Arduino beslut box. (Attiny85)

Så jag var lite uttråkad i helgen (egentligen jag skrev detta för några månader sedan) och efter hade jag beställt en massa Attiny85 chips veckan efter jag beslutat att göra ett ganska slumpmässigt projekt med dem.Detta är en beslut låda, det tar bes...

Arduino prototyp Center

detta är en relativt billig och lätt att bygga projekt som hjälper dig att testa alla dina Arduino projekt och prototyper. Eftersom den har en plug-in strömkälla, det eliminerar användning av täta batteriet och lämnar bakbord spänningsregulatorer och...

Adresserbara mjölkflaskor (LED-belysning + Arduino)

göra PPE mjölk flaskor till bra snygg LED-lampor, och använda en Arduino för att kontrollera dem. Detta återvinner ett antal saker, främst mjölkflaskor, och använder en mycket låg mängd kraft: lysdioderna tydligen skingra mindre än 3 watt men är ljus...

BOOGIE BOX: Elektromagnetisk dansgolvet

RUTAN BOOGIE är en interaktiv kan programmeras om sak som kan göra nästan allt dansa och är roligt att leka med! Du kan bygga din egen dansare och koreograf dem att dansa till dina favoritlåtar. Du kan skapa något! Lägg bara till magnetiska fötter oc...

Kombinera 1 eller fler Arduinos med en RaspberryPi

Detta instructable är en demonstration av den Drogon fjärrkontrollen (DRC) funktion som ingår i wiringPi.WiringPi bibliotek, skriven av Gordon Henderson, lägga till funktioner som gör att du till program GPIO stiften på RaspberryPi i C i en titulera...

Arduino-baserad Smart glasögon av en 13-åring - Jordanien Fung Pedosa glas

Hej alla!UPPDATERING: har jag släppt version 2 av Pedosa Glass som har ett 3D-tryckt fall och en mer kompakt storlek, och jag hade en utställning på Maker Faire Hong Kong 28-29 Nov!Jag är Jordanien Fung, en 13-årig student från Hong Kong. Jag har utv...

Obegränsad Arduino kloner: Otherduino

Hej, detta är Owen från andra Machine Co. och jag ska visa dig hur man gör ditt eget Arduino kloner på Othermill! Arduino är en prototyping plattform som har en stor användarbas och massor av övningar och koden tillgänglig, vilket gör att alla som ha...

JabberBot! Arduino roboten med en ATMega hjärnan och bluetooth braun! :-)

JabberBot styrs via en Android ansökan över en seriell bluetooth-anslutning.Modet i det baseras på en I2C anpassning av Adafruit WaveShield och MotorShield.Bluetooth-modulen är en Bluetooth Mate Silver från Sparkfun.Vad är det här?Android app körs på...