Isi kandungan:
- Langkah 1: Papan Dread:
- Langkah 2: Juiste Aansluiting Dreadboard:
- Langkah 3: Kod Solderen / Juiste:
- Langkah 4: Langkah 4 SELESAI:
Video: Kraak De Kluis: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Pengenalan
Hallo allemaal, Ik ga eerlijk zijn en hierbij zeggen dat dit de eerste keer adalah dat ik op instruksit zit na mijn projek ITTT. Dus voor mijn 'If This Then That' projek zet ik deze boleh dimulakan secara dalam talian.
Het idee is 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).- Laptop (met arduino programma).- 4 Butang (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 kabel Gele (deze gebruik je voor de aansturing van de servo).- 1 Houten kistje- 1 plastik bakje- 1 pin Ijzeren
Langkah 1: Papan Dread:
Om te beginnen is het altijd handig om een vergelijkbaar projek 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 mempunyai ik gekopieerd en ben ik op pintu gegaan voor 4 knopjes.
Hieronder de code die erbij hoorde (voor nu): NIET WERKEND
#sertakan
Servo myservo;
int inputPin = 2; // butang int outputPin = 9; // servo int buttonState = TINGGI; // rendah omdat schakelaar terbuka adalah int pos = 0; // mulakan positie servo int oldbuttonState; keadaan int;
batal persediaan () {myservo.attach (outputPin); pinMode (inputPin, INPUT_PULLUP); Serial.begin (38400); } gelung void () {int buttonState = digitalRead (inputPin); if (buttonState == TINGGI &&! oldbuttonState) {if (state == 0) {pos = 0; nyatakan = 1; } lain {pos = 180; nyatakan = 0; } oldbuttonState = 1; } lain jika (buttonState == LOW && oldbuttonState) {oldbuttonState = 0; } Serial.println (pos); Serial.println (buttonState); myservo.write (pos); }
Langkah 2: Juiste Aansluiting Dreadboard:
Mijn volgende stap was een shema tekenen zo dat ik presisi weet hoe het weer terug di elkaar moet.
Hierboven mijn schema en hier onder mijn code (voor nu): NIET WERKEND
#sertakan
Servo myservo;
int inputPin2 = 2; // butang1 int inputPin3 = 3; // butang2 int inputPin4 = 4; // butang3 int inputPin5 = 5; // butang4
int buttonState2 = TINGGI; // rendah omdat schakelaar terbuka adalah int buttonState3 = TINGGI; int buttonState4 = TINGGI; int buttonState5 = TINGGI;
int oldbuttonState2; int oldbuttonState3; int oldbuttonState4; int oldbuttonState5;
int correctCode = {1, 2, 3, 4}; int enterCode [4]; int codeIndex = 0;
int outputPin = 9; // servo
int pos; // mulakan positie servo bool selesai = benar;
batal persediaan () {myservo.attach (outputPin); pinMode (inputPin2, INPUT_PULLUP); pinMode (inputPin3, INPUT_PULLUP); pinMode (inputPin4, INPUT_PULLUP); pinMode (inputPin5, INPUT_PULLUP); Serial.begin (38400); }
gelung void () {if (selesai) {untuk (int i = 0; i <4; i ++) {enterCode = 0; } pos = 100; myservo.write (pos); Serial.println ("Selesai"); selesai = salah; }
lain {int buttonState2 = digitalRead (inputPin2); int buttonState3 = digitalRead (inputPin3); int buttonState4 = digitalRead (inputPin4); int buttonState5 = digitalRead (inputPin5);
if (buttonState2 == TINGGI &&! oldbuttonState2) // butang1 {enterCode [codeIndex] = 1; codeIndex ++; // kod Indeks + = 1 butang lamaState2 = 1; } lain jika (buttonState2 == LOW && oldbuttonState2) {oldbuttonState2 = 0; }
if (buttonState3 == TINGGI &&! oldbuttonState3) // butang2 {Serial.println ("BUTTON2 PRESSED"); enterCode [codeIndex] = 2; codeIndex ++; oldbuttonState3 = 1; }
lain jika (buttonState3 == LOW && oldbuttonState3) {oldbuttonState3 = 0; }
if (buttonState4 == TINGGI &&! oldbuttonState4) // butang3 {enterCode [codeIndex] = 3; codeIndex ++; oldbuttonState4 = 1; } lain jika (buttonState4 == LOW && oldbuttonState4) {oldbuttonState4 = 0; }
if (buttonState5 == TINGGI &&! oldbuttonState5) // butang4 {enterCode [codeIndex] = 4; codeIndex ++; oldbuttonState5 = 1; } lain jika (buttonState5 == LOW && oldbuttonState5) {oldbuttonState5 = 0; } //Serial.print("entered: "); //Serial.println(enterCode[codeIndex-1]); //Serial.print("On: "); //Serial.println(codeIndex-1); }
jika (codeIndex == 4) {codeIndex = 0; kod boolEnteredCorrectly = benar; untuk (int i = 0; i <4; i ++) {if (correctCode ! = enterCode ) {codeEnteredCorrectly = false; }}
jika (codeEnteredCorrectly) {pos = 0; myservo.write (pos); Serial.println (pos); kelewatan (5000); } selesai = benar; Serial.println (codeEnteredCorrectly? "True": "false"); }}
Langkah 3: Kod Solderen / Juiste:
Ja! ben je al zover gekomen ?! Hebat!
Nu is heet handig om even rustig aan te doen en alles goed te bedenken! Maak eerst een soldeer shema'tje voor dat je gaat mula bertemu solderen. (Ditolong je een hoop als je dit voor af doet inplaats van achteraf!).
Nu moet je menyegarkan gaan houden bertemu hoe je kluis eruit gaat zien. En dus ook waar je je kabels naar toe legt. Ook je de arduino di het kluisje legt of erbuiten.
Bij mij telah ik er voor gekozen om aan een kant mijn kluisje te maken. En om aan de andere mijn arduino (bertemu daar boven een printplaatje bertemu daar op de knopjes) te maken. Bekijk het laatste plaatje voor een duidelijkere uit
Eindelijk! Na ook veel hulp van mijn mede studentsen en een hoop zelf te hebben geza, adalah hier de WERKENDE code:
#sertakan
Servo myservo;
int inputPin2 = 2; // butang1 int inputPin3 = 3; // butang2 int inputPin4 = 4; // butang3 int inputPin5 = 5; // butang4
int buttonState2 = TINGGI; // butang alloor ven een state int buttonState3 = TINGGI; int buttonState4 = TINGGI; int buttonState5 = TINGGI;
int oldbuttonState2; // butang voor alle een oldstate int oldbuttonState3; int oldbuttonState4; int oldbuttonState5;
int correctCode = {1, 3, 4, 2}; // betulkan kod int enterCode [4]; // dalam kod gegeven int codeIndex = 0; // beritahu
int outputPin = 9; // output servomotortje
int pos; // positie servo bool selesai = benar; // Bilik kebal terbuka
batal persediaan () {myservo.attach (outputPin); pinMode (inputPin2, INPUT_PULLUP); pinMode (inputPin3, INPUT_PULLUP); pinMode (inputPin4, INPUT_PULLUP); pinMode (inputPin5, INPUT_PULLUP); Serial.begin (38400); }
gelung kosong () {jika (selesai) // de servo op het juiste punt te laten starten
{untuk (int i = 0; i <4; i ++) // voor ieder cijfer di eneterCode {enterCode = 0; } pos = 100; // 100 graduan adalah moor de 'dichte' stand myservo.write (pos); // stuurt de pos naar de servo selesai = salah; // de code adalah niet compleet} lain {int buttonState2 = digitalRead (inputPin2); int buttonState3 = digitalRead (inputPin3); int buttonState4 = digitalRead (inputPin4); int buttonState5 = digitalRead (inputPin5); if (buttonState2 == TINGGI &&! oldbuttonState2) // butang1 {Serial.println ("BUTTON1 PRESSED"); // laat zien dat deze button gedrukt adalah enterCode [codeIndex] = 1; // zet het cijfer 1 in de enterCode codeIndex ++; // teller + 1 oldbuttonState2 = 1; // kijkt de knop adalah gedrukt} lain jika (buttonState2 == LOW && oldbuttonState2) // als button1 adalah los gelaten {oldbuttonState2 = 0; // kunnen er andere in gedrukt worden} if (buttonState3 == TINGGI &&! oldbuttonState3) // butang2 {
Serial.println ("BUTTON2 PRESSED"); // laat zien dat deze button gedrukt adalah enterCode [codeIndex] = 2; // zet het cijfer 2 in de enterCode codeIndex ++; // teller + 1 oldbuttonState3 = 1; // kijkt de knop adalah gedrukt} yang lain jika (buttonState3 == LOW && oldbuttonState3) // als button2 los gelaten {oldbuttonState3 = 0; // kunnen er andere dalam gedrukt worden}
if (buttonState4 == TINGGI &&! oldbuttonState4) // butang3 {Serial.println ("BUTTON3 PRESSED"); // laat zien dat deze button gedrukt adalah enterCode [codeIndex] = 3; // zet het cijfer 3 in de enterCode codeIndex ++; // teller + 1 oldbuttonState4 = 1; // kijkt de knop adalah gedrukt} yang lain jika (buttonState4 == LOW && oldbuttonState4) // als button3 los gelaten {oldbuttonState4 = 0; // kunnen er andere dalam gedrukt worden}
if (buttonState5 == TINGGI &&! oldbuttonState5) // butang4 {Serial.println ("BUTTON4 PRESSED"); // laat zien dat deze button gedrukt adalah enterCode [codeIndex] = 4; // zet het cijfer 4 in de enterCode codeIndex ++; // teller + 1 oldbuttonState5 = 1; // kijkt de knop adalah gedrukt} yang lain jika (buttonState5 == LOW && oldbuttonState5) // als button4 los gelaten {oldbuttonState5 = 0; // kunnen er andere dalam gedrukt worden}}
if (codeIndex == 4) // als mijn teller hoger adalah dan 4 {codeIndex = 0; // zet de teller weer op 0 kod boolEnteredCorrectly = true; // maakt een nieuwe boolean aan untuk (int i = 0; i <4; i ++) // voor ieder cijfer in de enterCode {if (correctCode ! = enterCode ) // kata gekeken dari het niet di de correctCode zit {codeEnteredCorrectly = false; // als er een cijfer op de foute plaatst staat dan word hij false}}
if (codeEnteredCorrectly) // juga de code correct adalah: {pos = 0; // 0 graden moor de 'open' stand myservo.write (pos); // stuurt de pos naar de servo Serial.println ("Selesai"); // geeft indicatie dat hij compleet adalah kelewatan (5000); // 5 saat om het kluisje te open}} selesai = benar; // de code is niet goed Serial.println ("cuba lagi"); // indicatie dat je overnieuw moet proberen. }
}
Langkah 4: Langkah 4 SELESAI:
Schroef je kluisje bij elkaar en bersenang-senang! 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 erets moois van!
Disyorkan:
Sistem Makluman Tempat Letak Balik Kereta Arduino - Langkah demi Langkah: 4 Langkah
Sistem Makluman Tempat Letak Balik Kereta Arduino | Langkah demi Langkah: Dalam projek ini, saya akan merancang Litar Sensor Tempat Letak Kereta Berbalik Arduino yang ringkas menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem amaran Car Reverse berasaskan Arduino ini dapat digunakan untuk Navigasi Autonomi, Robot Ranging dan rangkaian lain
Langkah demi Langkah Pembinaan PC: 9 Langkah
Langkah demi Langkah Pembinaan PC: Persediaan: Perkakasan: MotherboardCPU & CPU cooler PSU (Unit bekalan kuasa) Penyimpanan (HDD / SSD) RAMGPU (tidak diperlukan) Alat kes: Pemutar skru Gelang ESD / tampal matsthermal dengan aplikator
Tiga Litar Pembesar Suara -- Tutorial Langkah demi Langkah: 3 Langkah
Tiga Litar Pembesar Suara || Tutorial Langkah-demi-Langkah: Loudspeaker Circuit menguatkan isyarat audio yang diterima dari persekitaran ke MIC dan menghantarnya ke Speaker dari tempat audio diperkuat dihasilkan. Di sini, saya akan menunjukkan kepada anda tiga cara berbeza untuk membuat Loudspeaker Circuit ini menggunakan:
Pendidikan Langkah demi Langkah dalam Robotik Dengan Kit: 6 Langkah
Pendidikan Langkah-demi-Langkah dalam Robotik Dengan Kit: Setelah beberapa bulan membina robot saya sendiri (sila rujuk semua ini), dan setelah dua kali bahagian gagal, saya memutuskan untuk mengambil langkah mundur dan memikirkan semula strategi dan arahan. Pengalaman selama beberapa bulan kadang-kadang sangat bermanfaat, dan
Pengangkatan Akustik Dengan Arduino Uno Langkah demi Langkah (8-langkah): 8 Langkah
Acoustic Levitation With Arduino Uno Step-by Step (8-step): transduser suara ultrasonik L298N Dc power adaptor wanita dengan pin dc lelaki Arduino UNOBreadboardBagaimana ini berfungsi: Pertama, anda memuat naik kod ke Arduino Uno (ia adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk menukar kod (C ++)