جدول المحتويات:

كراك دي كلويس: 4 خطوات
كراك دي كلويس: 4 خطوات

فيديو: كراك دي كلويس: 4 خطوات

فيديو: كراك دي كلويس: 4 خطوات
فيديو: مايا خليفه تدعم أبو فله ب.15000 دعم 🤭❤🧿☝️ 2024, يوليو
Anonim
كراك دي كلويس
كراك دي كلويس

مقدمة

هلو allemaal ،

Ik ga eerlijk zijn en hierbij zeggen dat dit de eerste keer هو dat ik op تعليمات zit na mijn project ITTT. Dus voor mijn 'If This Then That' Project zet ik deze instuctable online.

Het Ide is om een soort van escape room kluis te maken waarvan je makkelijk op je computer de code can 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). - Laptop (met arduino programma). - 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 Houten kistje - 1 bakje Plastic - 1 Ijzeren pin

الخطوة 1: لوحة القيادة:

اللوح
اللوح
اللوح
اللوح
اللوح
اللوح
اللوح
اللوح

بدء التشغيل هو هيت بديل للمشروع من خلال الاتصال بالإنترنت. ^ ^ ^

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 كان لديه ik gekopieerd en ben ik op door gegaan voor 4 knopjes.

Hieronder de code Die Erbij hoorde (voor nu): NIET WERKEND

#يشمل

مؤازرة myservo.

int inputPin = 2 ؛ // button int outputPin = 9 ؛ // servo int buttonState = مرتفع ؛ // low omdat schakelaar open هو int pos = 0 ؛ // بدء المؤازرة الإيجابية int oldbuttonState ؛ دولة دولية

إعداد باطل () {myservo.attach (outputPin) ؛ pinMode (inputPin ، INPUT_PULLUP) ؛ Serial.begin (38400) ؛ } حلقة فارغة () {int buttonState = digitalRead (inputPin) ؛ إذا (buttonState == HIGH &&! oldbuttonState) {if (state == 0) {pos = 0؛ الدولة = 1 ؛ } آخر {pos = 180 ؛ الدولة = 0 ؛ } oldbuttonState = 1 ؛ } else if (buttonState == LOW && oldbuttonState) {oldbuttonState = 0 ؛ } Serial.println (pos) ؛ Serial.println (buttonState) ؛ myservo.write (نقاط البيع) ؛ }

الخطوة 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 هو shema tekenen zo dat ik Precies weet hoe het weer terug in elkaar moet.

Hierboven Mijn schema en hier onder mijn code (voor nu): NIET WERKEND

#يشمل

مؤازرة myservo.

int inputPin2 = 2 ؛ // button1 int inputPin3 = 3 ؛ // button2 int inputPin4 = 4 ؛ // button3 int inputPin5 = 5 ؛ // button4

int buttonState2 = عالية ؛ // low omdat schakelaar open is int buttonState3 = مرتفع ؛ int buttonState4 = عالية ؛ int buttonState5 = عالية ؛

int oldbuttonState2 ؛ int oldbuttonState3 ؛ int oldbuttonState4 ؛ int oldbuttonState5 ؛

intrectCode = {1، 2، 3، 4} ؛ int enterCode [4] ؛ int codeIndex = 0 ؛

int outputPin = 9 ؛ // مؤازرة

نقاط البيع int // بدء تشغيل المؤازرة المنطقية المكتملة = صحيح ؛

إعداد باطل () {myservo.attach (outputPin) ؛ pinMode (inputPin2 ، INPUT_PULLUP) ؛ pinMode (inputPin3 ، INPUT_PULLUP) ؛ pinMode (inputPin4 ، INPUT_PULLUP) ؛ pinMode (inputPin5 ، INPUT_PULLUP) ؛ Serial.begin (38400) ؛ }

حلقة باطلة () {إذا (مكتملة) {لـ (int i = 0؛ i <4؛ i ++) {enterCode = 0 ؛ } نقاط البيع = 100 ؛ myservo.write (نقاط البيع) ؛ Serial.println ("مكتمل") ؛ مكتمل = خطأ ؛ }

آخر {int buttonState2 = digitalRead (inputPin2) ؛ int buttonState3 = digitalRead (inputPin3) ؛ int buttonState4 = digitalRead (inputPin4) ؛ int buttonState5 = digitalRead (inputPin5) ؛

إذا (buttonState2 == HIGH &&! oldbuttonState2) // button1 {enterCode [codeIndex] = 1 ؛ كود إندكس ++ ؛ // رمز الفهرس + = 1 oldbuttonState2 = 1 ؛ } else if (buttonState2 == LOW && oldbuttonState2) {oldbuttonState2 = 0 ؛ }

إذا (buttonState3 == HIGH &&! oldbuttonState3) // button2 {Serial.println ("BUTTON2 PRESSED") ؛ enterCode [codeIndex] = 2 ؛ كود إندكس ++ ؛ oldbuttonState3 = 1 ؛ }

وإلا إذا (buttonState3 == LOW && oldbuttonState3) {oldbuttonState3 = 0 ؛ }

إذا (buttonState4 == HIGH &&! oldbuttonState4) // button3 {enterCode [codeIndex] = 3 ؛ كود إندكس ++ ؛ oldbuttonState4 = 1 ؛ } else if (buttonState4 == LOW && oldbuttonState4) {oldbuttonState4 = 0 ؛ }

إذا (buttonState5 == HIGH &&! oldbuttonState5) // button4 {enterCode [codeIndex] = 4 ؛ كود إندكس ++ ؛ oldbuttonState5 = 1 ؛ } else if (buttonState5 == LOW && oldbuttonState5) {oldbuttonState5 = 0 ؛ } //Serial.print(" أدخل: ") ؛ //Serial.println (enterCode[codeIndex-1]) ؛ //Serial.print("On: ") ؛ //Serial.println(codeIndex-1) ؛ }

إذا (codeIndex == 4) {codeIndex = 0 ؛ منطقي codeEnteredCorrectly = صحيح ؛ لـ (int i = 0؛ i <4؛ i ++) {if (correctCode ! = enterCode ) {codeEnteredCorrectly = false؛ }}

إذا (codeEnteredCorrectly) {pos = 0 ؛ myservo.write (نقاط البيع) ؛ Serial.println (نقاط البيع) ؛ تأخير (5000) ؛ } مكتمل = صحيح ؛ Serial.println (codeEnteredCorrectly؟ "true": "false")؛ }}

الخطوة 3: رمز Solderen / Juiste:

كود Solderen / Juiste
كود Solderen / Juiste
كود Solderen / Juiste
كود Solderen / Juiste
كود Solderen / Juiste
كود Solderen / Juiste

جا! بن جي الزوفر جيكومن ؟! ممتاز!

لا يمكن أن يكون مفيدًا حتى لو كان الأمر كذلك.

Nu moet je rekening gaan houden met hoe je kluis eruit gaat zien. En dus ook waar je 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.

اينديليك! Na ook veel hulp van mijn mede studenten en een hoop zelf te hebben gedaan، is hier de WERKENDE code:

#يشمل

مؤازرة myservo.

int inputPin2 = 2 ؛ // button1 int inputPin3 = 3 ؛ // button2 int inputPin4 = 4 ؛ // button3 int inputPin5 = 5 ؛ // button4

int buttonState2 = عالية ؛ // voor all أزرار een state int buttonState3 = عالية ؛ int buttonState4 = عالية ؛ int buttonState5 = عالية ؛

int oldbuttonState2 ؛ // voor all الأزرار een oldstate int oldbuttonState3 ؛ int oldbuttonState4 ؛ int oldbuttonState5 ؛

intrectCode = {1، 3، 4، 2} ؛ // تصحيح الكود int enterCode [4] ؛ // في كود gegeven int codeIndex = 0 ؛ //راوي

int outputPin = 9 ؛ // إخراج مؤازر

نقاط البيع int // positie servo bool مكتمل = صحيح ؛ // فتح قبو

إعداد باطل () {myservo.attach (outputPin) ؛ pinMode (inputPin2 ، INPUT_PULLUP) ؛ pinMode (inputPin3 ، INPUT_PULLUP) ؛ pinMode (inputPin4 ، INPUT_PULLUP) ؛ pinMode (inputPin5 ، INPUT_PULLUP) ؛ Serial.begin (38400) ؛ }

حلقة فارغة () {إذا (مكتملة) // de servo op het juiste punt te laten starten

{for (int i = 0؛ i <4؛ i ++) // voor ieder cijfer في eneterCode {enterCode = 0 ؛ } نقاط البيع = 100 ؛ // 100 graden was voor mij de 'dichte' stand myservo.write (pos) ؛ // stuurt de pos naar de servo مكتمل = خطأ ؛ // de code is niet compleet} 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 button gedrukt هو enterCode [codeIndex] = 1 ؛ // zet het cijfer 1 في de enterCode codeIndex ++ ؛ // teller + 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 button gedrukt هو enterCode [codeIndex] = 2 ؛ // zet het cijfer 2 في de enterCode codeIndex ++ ؛ // teller + 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 button gedrukt هو enterCode [codeIndex] = 3 ؛ // zet het cijfer 3 في de enterCode codeIndex ++ ؛ // teller + 1 oldbuttonState4 = 1 ؛ // kijkt of de knop هو gedrukt} وإلا إذا (buttonState4 == LOW && oldbuttonState4) // als button3 هو los gelaten {oldbuttonState4 = 0؛ // kunnen er andere in gedrukt worden}

إذا (buttonState5 == HIGH &&! oldbuttonState5) // button4 {Serial.println ("BUTTON4 PRESSED") ؛ // laat zien dat deze button gedrukt هو enterCode [codeIndex] = 4 ؛ // zet het cijfer 4 في de enterCode codeIndex ++ ؛ // teller + 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 لـ (int i = 0؛ i <4؛ i ++) // voor ieder cijfer in de enterCode {if (correctCode ! = enterCode ) // word 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) // als de code correct is: {pos = 0؛ // 0 graden was voor mij de 'open' stand myservo.write (pos) ؛ // stuurt de pos naar de servo Serial.println ("Completed") ؛ // geeft indicatie dat hij compleet هو تأخير (5000) ؛ // 5 ثوانٍ om het kluisje te openen} مكتمل = صحيح ؛ // de code is niet goed Serial.println ("حاول مرة أخرى") ؛ // indicatie dat je overnieuw moet proberen. }

}

الخطوة 4: الخطوة 4 تم:

Step4 تم
Step4 تم

Schroef je kluisje bij elkaar en استمتع! 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!

موصى به: