สารบัญ:

คราก เดอ คลูอิส: 4 ขั้นตอน
คราก เดอ คลูอิส: 4 ขั้นตอน

วีดีโอ: คราก เดอ คลูอิส: 4 ขั้นตอน

วีดีโอ: คราก เดอ คลูอิส: 4 ขั้นตอน
วีดีโอ: เลนน็อกซ์ ลูวิส VS อีวานเดอร์ โฮลีฟิลด์ [มหากาพย์] ภาคที่ 1-2 | Lewis & Holyfield 2024, กรกฎาคม
Anonim
คราก เดอ คลูอิส
คราก เดอ คลูอิส

แนะนำตัว

ฮัลโหล อัลเลมาล

Ik ga eerlijk zijn en hierbij zeggen dat dit de eerste keer is dat ik op Instrucables zit na mijn project ITTT. Dus voor mijn 'If This That' project zet ik deze instuctable online.

Het idee is om een soort van escape room kluis te maken waarvan je makkelijk op je รหัสคอมพิวเตอร์ 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).- Laptop (met arduino programma).- 4 Buttons (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 knopje)).- 1 Gele kabel (deze gebruik je voor de aansturing van de servo).- 1 Houten kistje- 1 พลาสติก bakje- 1 Ijzeren pin

ขั้นตอนที่ 1: Dreadboard:

เดรดบอร์ด
เดรดบอร์ด
เดรดบอร์ด
เดรดบอร์ด
เดรดบอร์ด
เดรดบอร์ด
เดรดบอร์ด
เดรดบอร์ด

Om te Beginnen เป็น het altijd handig om een vergelijkbaar โครงการ 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 เว็บไซต์ een code erbij voor 1 knopje Deze มี ik gekopieerd en ben ik op door gegaan voor 4 knopjes

ลำดับชั้นของโค้ด die erbij hoorde (สำหรับ nu): NIET WERKEND

#รวม

เซอร์โว myservo;

int อินพุตพิน = 2; // ปุ่ม int outputPin = 9; // เซอร์โว int buttonState = สูง; // omdat schakelaar ต่ำเปิดอยู่ int pos = 0; // เริ่ม positie servo int oldbuttonState; สถานะภายใน;

การตั้งค่าเป็นโมฆะ () { myservo.attach (outputPin); pinMode(inputPin, INPUT_PULLUP); Serial.begin(38400); } วงเป็นโมฆะ () { int buttonState = digitalRead (inputPin); if (buttonState == สูง && !oldbuttonState) { if (state == 0) { pos = 0; รัฐ = 1; } อื่น ๆ { pos = 180; รัฐ = 0; } oldbuttonState = 1; } อื่น if (buttonState == LOW && oldbuttonState) { oldbuttonState = 0; } Serial.println(pos); Serial.println (ปุ่มสถานะ); 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 คือ een 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 = สูง; // omdat schakelaar ต่ำเปิดอยู่ int buttonState3 = สูง; int buttonState4 = สูง; int buttonState5 = สูง;

int oldbuttonState2; int oldbuttonState3; int oldbuttonState4; ภายใน oldbuttonState5;

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

int outputPin = 9; // เซอร์โว

ตำแหน่งภายใน; // เริ่ม positie servo bool เสร็จสมบูรณ์ = true;

การตั้งค่าเป็นโมฆะ () { 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 == สูง && !oldbuttonState2)//button1 { enterCode [codeIndex] = 1; รหัสดัชนี++; //รหัสดัชนี +=1 oldbuttonState2 = 1; } อื่น if (buttonState2 == LOW && oldbuttonState2) { oldbuttonState2 = 0; }

ถ้า (buttonState3 == สูง && !oldbuttonState3) //button2 { Serial.println ("BUTTON2 PRESSED"); enterCode[codeIndex] = 2; codeIndex++; oldbuttonState3 = 1; }

อื่น if (buttonState3 == LOW && oldbuttonState3) { oldbuttonState3 = 0; }

ถ้า (buttonState4 == สูง && !oldbuttonState4)//button3 { enterCode [codeIndex] = 3; codeIndex++; oldbuttonState4 = 1; } else if (buttonState4 == LOW && oldbuttonState4) { oldbuttonState4 = 0; }

ถ้า (buttonState5 == สูง && !oldbuttonState5)//button4 { enterCode [codeIndex] = 4; รหัสดัชนี++; oldbuttonState5 = 1; } อื่น ๆ ถ้า (buttonState5 == LOW && oldbuttonState5) { oldbuttonState5 = 0; } //Serial.print("ป้อน: "); //Serial.println(enterCode[codeIndex-1]); //Serial.print("เปิด: "); // Serial.println (codeIndex-1); }

ถ้า (codeIndex == 4) { codeIndex = 0; รหัสบูลEnteredCorrectly = true; สำหรับ (int i = 0; i <4; i++) { if (correctCode != enterCode) { codeEnteredCorrectly = false; } }

ถ้า (codeEnteredCorrectly) { pos = 0; myservo.write (ตำแหน่ง); Serial.println(pos); ล่าช้า (5000); } เสร็จสิ้น = จริง; Serial.println(codeEnteredCorrectly ? "true": "false"); } }

ขั้นตอนที่ 3: รหัสบัดกรี / Juiste:

ประสาน/ Juiste รหัส
ประสาน/ Juiste รหัส
ประสาน/ Juiste รหัส
ประสาน/ Juiste รหัส
ประสาน/ Juiste รหัส
ประสาน/ Juiste รหัส

จ๋า! เบน เจ อัล โซเวอร์ เกโคเมน?! สุด!

Nu is het handig om even rustig aan te doen en alles goed te bedenken!Maak eerst een soldeer 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 พบ hoe je kluis eruit gaat zien. En dus ook waar je je kabels ใกล้ toe legt. Ook je de arduino ใน het kluisje legt ของ erbuiten

รายการมี 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 laatstekeeen plaatje.

ไอน์เดลิจค์! Na ook veel hulp van mijn mede studenten en een hoop zelf te hebben gedaan, is hier de WERKENDE รหัส:

#รวม

เซอร์โว myservo;

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

int buttonState2 = สูง; // สำหรับปุ่มทั้งหมด een state int buttonState3 = สูง; int buttonState4 = สูง; int buttonState5 = สูง;

int oldbuttonState2; // สำหรับปุ่มทั้งหมด een oldstate int oldbuttonState3; int oldbuttonState4; ภายใน oldbuttonState5;

int correctCode = {1, 3, 4, 2}; // แก้ไขโค้ด int enterCode[4]; // ในโค้ด gegeven int codeIndex = 0; //หมอดู

int outputPin = 9; // เอาต์พุตเซอร์โวมอเตอร์

ตำแหน่งภายใน; // positie servo bool เสร็จสมบูรณ์ = true; // เปิดห้องนิรภัย

การตั้งค่าเป็นโมฆะ () { 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

{ สำหรับ (int i = 0; i <4; i++) // สำหรับ ieder cijfer ใน eneterCode { enterCode = 0; } ตำแหน่ง = 100; //100 graden เป็น voor mij de 'dichte' stand myservo.write(pos); //stuurt de pos naar de servo เสร็จสมบูรณ์ = false; // โค้ด de นั้นสมบูรณ์แล้ว } อื่น { int buttonState2 = digitalRead (inputPin2); int buttonState3 = digitalRead (inputPin3); int buttonState4 = digitalRead (inputPin4); int buttonState5 = digitalRead (inputPin5); ถ้า (buttonState2 == สูง && !oldbuttonState2) //button1 { Serial.println ("BUTTON1 PRESSED"); // laat zien dat deze ปุ่ม gedrukt คือ enterCode[codeIndex] = 1; //zet het cijfer 1 ในรหัส enterCode codeIndex++; // หมอดู + 1 oldbuttonState2 = 1; //kijkt ของ de knop คือ gedrukt } else if (buttonState2 == LOW && oldbuttonState2) // als button1 คือ los gelaten { oldbuttonState2 = 0; //kunnen er andere ใน gedrukt worden } if (buttonState3 == HIGH && !oldbuttonState3)//button2 {

Serial.println ("กด BUTTON2"); // laat zien dat deze ปุ่ม gedrukt คือ enterCode[codeIndex] = 2; //zet het cijfer 2 ในรหัส enterCode codeIndex++; // หมอดู + 1 oldbuttonState3 = 1; //kijkt ของ de knop คือ gedrukt } else if (buttonState3 == LOW && oldbuttonState3) // als button2 คือ los gelaten { oldbuttonState3 = 0; //kunnen er andere ใน gedrukt worden }

ถ้า (buttonState4 == สูง && !oldbuttonState4) //button3 { Serial.println ("BUTTON3 PRESSED"); // laat zien dat deze ปุ่ม gedrukt คือ enterCode[codeIndex] = 3; //zet het cijfer 3 ในรหัส enterCode codeIndex++; // หมอดู + 1 oldbuttonState4 = 1; //kijkt ของ de knop คือ gedrukt } else if (buttonState4 == LOW && oldbuttonState4) // als button3 คือ los gelaten { oldbuttonState4 = 0; //kunnen er andere ใน gedrukt worden }

ถ้า (buttonState5 == สูง && !oldbuttonState5)//button4 { Serial.println ("BUTTON4 PRESSED"); // laat zien dat deze ปุ่ม gedrukt คือ enterCode[codeIndex] = 4; //zet het cijfer 4 ในรหัส enterCode codeIndex++; // หมอดู + 1 oldbuttonState5 = 1; //kijkt ของ de knop คือ gedrukt } else if (buttonState5 == LOW && oldbuttonState5) // als button4 คือ los gelaten { oldbuttonState5 = 0; //kunnen er andere ใน gedrukt worden } }

ถ้า (codeIndex == 4) // als mijn teller hoger คือ 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 de enterCode { if (correctCode != enterCode)//word gekeken of het niet in de แก้ไขรหัส zit { codeEnteredCorrectly = false; //als er een cijfer op de foute plaatst staat dan word hij false } }

ถ้า (codeEnteredCorrectly) // โค้ดที่ถูกต้องคือ: { pos = 0; //0 graden เป็น voor mij de 'open' stand myservo.write(pos); //stuurt de pos naar de servo Serial.println ("เสร็จสมบูรณ์"); //geeft บ่งชี้ว่าเสร็จสิ้นการล่าช้า (5000); ///5 วินาที om het kluisje te openen } เสร็จสิ้น = true; //รหัส de niet ไป Serial.println("ลองอีกครั้ง"); //บ่งชี้ว่า dat je overnieuw moet proberen. }

}

ขั้นตอนที่ 4: ขั้นตอนที่ 4 เสร็จสิ้น:

ขั้นตอนที่ 4 เสร็จสิ้น
ขั้นตอนที่ 4 เสร็จสิ้น

คลิกเพื่อดูภาพอื่น ๆ เพลิดเพลินไปกับความสนุก!

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

แนะนำ: