Სარჩევი:

კრაკ დე კლუისი: 4 ნაბიჯი
კრაკ დე კლუისი: 4 ნაბიჯი

ვიდეო: კრაკ დე კლუისი: 4 ნაბიჯი

ვიდეო: კრაკ დე კლუისი: 4 ნაბიჯი
ვიდეო: კრაკ დე შევალიე ○Krak des Chevaliers ○ Крак-де-Шевалье 2024, ნოემბერი
Anonim
კრააკ დე კლუისი
კრააკ დე კლუისი

შესავალი

ჰალო ალმაალ, Ik ga eerlijk zijn en hierbij zeggen dat dit de eerste keer is dat ik op instructables zit na mijn project ITTT. Dus voor mijn 'If This Then That' პროექტი zet ik deze instuctable online.

Het idee არის om een soort van escape room kluis te maken waarvan je makkelijk op je computer de code kan veranderen. LET OP: het is dus niet met een schermpje! Hier onder de benodigdheden voor de DIY 'een kluisje met aanpasbare kluis code':- Arduino uno (en usb naar arduino cabel).- ლეპტოპი (შეხვდა arduino პროგრამას).- 4 ღილაკი (anders kun je geen code invoeren).- 6 Zwarte kabels (deze gebruik je voor de Gnd (-).- 2 Rode kabels (deze gebruik je voor 5V (+).- 4 Groene kabels (deze gebruik je voor het uitlezen van knopjes).- 1 Gele kabel (deze gebruik je voor de aansturing van de servo).

ნაბიჯი 1: დაფის დაფა:

Dreadboard
Dreadboard
Dreadboard
Dreadboard
Dreadboard
Dreadboard
Dreadboard
Dreadboard

Om te beginnen is het altijd handig om an vergelijkbaar project op te zoeken op internet. Ik kon hier niet veel van vinden en ben het plaatje hierboven wel tegen gekomen! ^^^

Ik ben hier mee aan de slag gegaan en heb eigenlijk 4x gekopieerd wat hier aan gesloten staat. Dit zie je op de foto's ^^^

Ook stond op deze site een code erbij voor 1 knopje. Deze had ik gekopieerd en ben ik op door gegaan voor 4 knopjes.

Hieronder de code die erbij hoorde (voor nu): NIET WERKEND

#ჩართეთ

სერვო მისერვო;

int inputPin = 2; // ღილაკი int outputPin = 9; // servo int buttonState = მაღალი; // დაბალი omdat schakelaar open is int pos = 0; // დაწყება პოზიტიური სერვისი oldbuttonState; int სახელმწიფო;

void setup () {myservo.attach (outputPin); pinMode (inputPin, INPUT_PULLUP); სერიული.დაწყება (38400); } void loop () {int buttonState = digitalRead (inputPin); if (buttonState == HIGH &&! oldbuttonState) {if (მდგომარეობა == 0) {pos = 0; მდგომარეობა = 1; } else {pos = 180; მდგომარეობა = 0; } oldbuttonState = 1; } else if (buttonState == LOW && oldbuttonState) {oldbuttonState = 0; } Serial.println (pos); Serial.println (buttonState); myservo.write (pos); }

ნაბიჯი 2: Juiste Aansluiting Dreadboard:

Juiste Aansluiting Dreadboard
Juiste Aansluiting Dreadboard
Juiste Aansluiting Dreadboard
Juiste Aansluiting Dreadboard
Juiste Aansluiting Dreadboard
Juiste Aansluiting Dreadboard
Juiste Aansluiting Dreadboard
Juiste Aansluiting Dreadboard

Mijn volgende stap იყო ema shema tekenen zo dat ik precies weet hoe het weer terug in elkaar moet.

Hierboven mijn სქემა და hier onder mijn კოდი (voor nu): NIET WERKEND

#ჩართეთ

სერვო მისერვო;

int inputPin2 = 2; // button1 int inputPin3 = 3; // button2 int inputPin4 = 4; // button3 int inputPin5 = 5; // ღილაკი 4

int ღილაკი სახელმწიფო 2 = მაღალი; // დაბალი omdat schakelaar open is int buttonState3 = HIGH; int buttonState4 = HIGH; int buttonState5 = მაღალი;

int oldbuttonState2; int oldbuttonState3; int oldbuttonState4; int oldbuttonState5;

int correctCode = {1, 2, 3, 4}; int enterCode [4]; int codeIndex = 0;

int outputPin = 9; // სერვო

int pos; // დაწყება პოზიტივის servo bool დასრულდა = ჭეშმარიტი;

void setup () {myservo.attach (outputPin); pinMode (inputPin2, INPUT_PULLUP); pinMode (inputPin3, INPUT_PULLUP); pinMode (inputPin4, INPUT_PULLUP); pinMode (inputPin5, INPUT_PULLUP); სერიული.დაწყება (38400); }

ბათილი მარყუჟი () {თუ (დასრულებულია) {for (int i = 0; i <4; i ++) {enterCode = 0; } pos = 100; myservo.write (pos); Serial.println ("დასრულებულია"); დასრულებული = ყალბი; }

else {int buttonState2 = digitalRead (inputPin2); int buttonState3 = digitalRead (inputPin3); int buttonState4 = digitalRead (inputPin4); int buttonState5 = digitalRead (inputPin5);

if (buttonState2 == HIGH &&! oldbuttonState2) // button1 {enterCode [codeIndex] = 1; codeIndex ++; // კოდი ინდექსი += 1 oldbuttonState2 = 1; } else if (buttonState2 == LOW && oldbuttonState2) {oldbuttonState2 = 0; }

if (buttonState3 == HIGH &&! oldbuttonState3) // button2 {Serial.println ("BUTTON2 PRESSED"); enterCode [codeIndex] = 2; codeIndex ++; oldbuttonState3 = 1; }

else if (buttonState3 == LOW && oldbuttonState3) {oldbuttonState3 = 0; }

if (buttonState4 == HIGH &&! oldbuttonState4) // button3 {enterCode [codeIndex] = 3; codeIndex ++; oldbuttonState4 = 1; } else if (buttonState4 == LOW && oldbuttonState4) {oldbuttonState4 = 0; }

if (buttonState5 == HIGH &&! oldbuttonState5) // button4 {enterCode [codeIndex] = 4; codeIndex ++; oldbuttonState5 = 1; } else if (buttonState5 == LOW && oldbuttonState5) {oldbuttonState5 = 0; } //Serial.print(" შესულია: "); //Serial.println(enterCodEcodeIndex-1]); //Serial.print("On: "); //Serial.println(codeIndex-1); }

if (codeIndex == 4) {codeIndex = 0; bool codeEnteredCorrectly = ჭეშმარიტი; for (int i = 0; i <4; i ++) {if (correctCode ! = enterCode ) {codeEnteredCorrectly = false; }}

if (codeEnteredCorrectly) {pos = 0; myservo.write (pos); Serial.println (pos); დაგვიანება (5000); } დასრულებულია = მართალია; Serial.println (codeEnteredCorrectly? "True": "false"); }}

ნაბიჯი 3: Solderen/ Juiste კოდი:

Solderen/ Juiste კოდი
Solderen/ Juiste კოდი
Solderen/ Juiste კოდი
Solderen/ Juiste კოდი
Solderen/ Juiste კოდი
Solderen/ Juiste კოდი

ჰა! ben je al zover gekomen ?! სუპერ!

Nu is het handig om even rustig aan te doen en alles goed te bedenken! Maak eerst een soldener shema'tje voor dat je gaat beginnen met solderen. (Dit helpt je een hoop als je dit voor af doet inplaats van achteraf!).

Nu moet je rekening gaan houden met hoe je kluis eruit gaat zien. En dus ook waar je je kabels naar toe legt. Ook je de arduino in het kluisje legt of erbuiten.

Bij mij had ik er voor gekozen om aan een kant mijn kluisje te maken. En om aan de andere mijn arduino (met daar boven een printplaatje met daar op de knopjes) te maken. Bekijk het laatste plaatje voor een duidelijkere uitleg.

ეინდელიელი! Na ook veel hulp van mijn mede studenten en een hoop zelf te hebben gedaan, is hier de WERKENDE კოდი:

#ჩართეთ

სერვო მისერვო;

int inputPin2 = 2; // button1 int inputPin3 = 3; // button2 int inputPin4 = 4; // button3 int inputPin5 = 5; // ღილაკი 4

int ღილაკი სახელმწიფო 2 = მაღალი; // voor alle ღილაკები een state int buttonState3 = HIGH; int buttonState4 = HIGH; int buttonState5 = მაღალი;

int oldbuttonState2; // voor alle buttons een oldstate int oldbuttonState3; int oldbuttonState4; int oldbuttonState5;

int correctCode = {1, 3, 4, 2}; // შეასწორეთ კოდი int enterCode [4]; // gegeven კოდში int codeIndex = 0; //მთხრობელი

int outputPin = 9; // სერვისმოტორული გამომავალი

int pos; // positie servo bool დასრულდა = ჭეშმარიტი; // ღია სარდაფი

void setup () {myservo.attach (outputPin); pinMode (inputPin2, INPUT_PULLUP); pinMode (inputPin3, INPUT_PULLUP); pinMode (inputPin4, INPUT_PULLUP); pinMode (inputPin5, INPUT_PULLUP); სერიული.დაწყება (38400); }

void loop () {თუ (დასრულებულია) // de servo op het juiste punt te laten starten

{for (int i = 0; i <4; i ++) // voor ieder cijfer eneterCode {enterCode = 0; } pos = 100; // 100 graden was voor mij de 'dichte' stand myservo.write (pos); // stuurt de pos naar de servo დასრულებული = ყალბი; // de კოდი არის niet plotëset} else {int buttonState2 = digitalRead (inputPin2); int buttonState3 = digitalRead (inputPin3); int buttonState4 = digitalRead (inputPin4); int buttonState5 = digitalRead (inputPin5); if (buttonState2 == HIGH &&! oldbuttonState2) // button1 {Serial.println ("BUTTON1 PRESSED"); // laat zien dat deze ღილაკი gedrukt არის enterCode [codeIndex] = 1; // zet het cijfer 1 in enterCode codeIndex ++; // მთხრობელი + 1 oldbuttonState2 = 1; // kijkt of de knop არის gedrukt} სხვაგან თუ (buttonState2 == LOW && oldbuttonState2) // als button1 არის los gelaten {oldbuttonState2 = 0; // kunnen er andere in gedrukt worden} if (buttonState3 == HIGH &&! oldbuttonState3) // button2 {

Serial.println ("BUTTON2 PRESSED"); // laat zien dat deze ღილაკი gedrukt არის enterCode [codeIndex] = 2; // zet het cijfer 2 in enterCode codeIndex ++; // მომხსენებელი + 1 oldbuttonState3 = 1; // kijkt of de knop არის gedrukt} სხვაგან თუ (buttonState3 == LOW && oldbuttonState3) // als button2 არის los gelaten {oldbuttonState3 = 0; // kunnen er andere in gedrukt worden}

if (buttonState4 == HIGH &&! oldbuttonState4) // button3 {Serial.println ("BUTTON3 PRESSED"); // laat zien dat deze ღილაკი gedrukt არის enterCode [codeIndex] = 3; // zet het cijfer 3 in enterCode codeIndex ++; // მომხსენებელი + 1 oldbuttonState4 = 1; // kijkt of de knop არის gedrukt} სხვაგან თუ (buttonState4 == LOW && oldbuttonState4) // als button3 არის los gelaten {oldbuttonState4 = 0; // kunnen er andere in gedrukt worden}

if (buttonState5 == HIGH &&! oldbuttonState5) // button4 {Serial.println ("BUTTON4 PRESSED"); // laat zien dat deze ღილაკი gedrukt არის enterCode [codeIndex] = 4; // zet het cijfer 4 in enterCode codeIndex ++; // მომხსენებელი + 1 oldbuttonState5 = 1; // kijkt of de knop არის gedrukt} სხვაგან თუ (buttonState5 == LOW && oldbuttonState5) // als button4 არის los gelaten {oldbuttonState5 = 0; // kunnen er andere in gedrukt worden}}

if (codeIndex == 4) // als mijn teller hoger is dan 4 {codeIndex = 0; // zet de teller weer op 0 bool codeEnteredCorrectly = true; // maakt een nieuwe boolean aan for (int i = 0; i <4; i ++) // voor ieder cijfer in enterCode {if (correctCode ! = enterCode ) // სიტყვა gekeken of het niet in de correctCode zit {codeEnteredCorrectly = false; // als er een cijfer op de foute plaatst staat dan word hij false}}

if (codeEnteredCorrectly) // სხვა კოდი სწორია: {pos = 0; // 0 graden was voor mij de 'open' stand myservo.write (pos); // stuurt de pos naar de servo Serial.println ("დასრულებულია"); // გასაგები მითითებით, რომ მისი შევსება დაგვიანებულია (5000); // 5 წმ om het kluisje te openen} დასრულებული = ჭეშმარიტი; // de code is niet goed Serial.println ("სცადე ხელახლა"); // მითითება არის ზედმეტი მოთხრობა. }

}

ნაბიჯი 4: ნაბიჯი 4 შესრულებულია:

ნაბიჯი 4 შესრულებულია
ნაბიჯი 4 შესრულებულია

Schroef je kluisje bij elkaar en fun! Ik heb er zelf raadsels bij bedacht om het zo iets moeilijker te maken!

Ik lees graag wat jullie er van hebben gemaakt. Veel suc6 en maak er iets moois van!

გირჩევთ: