Cov txheej txheem:

Kraak De Kluis: 4 Kauj Ruam
Kraak De Kluis: 4 Kauj Ruam

Video: Kraak De Kluis: 4 Kauj Ruam

Video: Kraak De Kluis: 4 Kauj Ruam
Video: De Kluis'18 #3 | Yuki, Frank & Mr. Polska 2024, Lub Xya hli ntuj
Anonim
Kraak De Kluis
Kraak De Kluis

Taw qhia

Hlo almaal, Ik ga eerlijk zijn en hierbij zeggen dat dit de eerste keer yog dat ik op instructables zit na mijn project ITTT. Dus voor mijn 'Yog Qhov No Yog Qhov ntawd' project zet ik deze instuctable online.

Het idee yog om een soort van khiav tawm hauv chav kluis te maken waarvan je makkelijk op je computer de code kan veranderen. LET OP: het is dus niet ntsib een schermpje! Hier onder de benodigdheden voor de DIY 'een kluisje ntsib aanpasbare kluis code':- Arduino uno (en usb naar arduino cabel).- Lub laptop (ntsib arduino programma).- 4 Khawm (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 Plastic bakje- 1 Ijzeren pin

Kauj ruam 1: Dreadboard:

Dreadboard
Dreadboard
Dreadboard
Dreadboard
Dreadboard
Dreadboard
Dreadboard
Dreadboard

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

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 muaj ik gekopieerd thiab ben ik op qhov rooj gegaan voor 4 knopjes.

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

#suav nrog

Servo tswj;

int inputPin = 2; // khawm int outputPin = 9; // servo int buttonState = HIGH; // qis omdat schakelaar qhib yog int pos = 0; // pib positie servo int oldbuttonState; int xeev;

teeb tsa tsis muaj dab tsi () {myservo.attach (outputPin); pinMode (inputPin, INPUT_PULLUP); Serial.begin (38400); } void loop () {int buttonState = digitalRead (inputPin); yog (buttonState == HIGH &&! oldbuttonState) {yog (xeev == 0) {pos = 0; xeev = 1; } lwm {pos = 180; xeev = 0; } oldbuttonState = 1; } lwm tus yog (buttonState == LOW && oldbuttonState) {oldbuttonState = 0; } Serial.println (pos); Serial.println (buttonState); myservo.write (pos); }

Kauj Ruam 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 yog een shema tekenen zo dat ik precies weet hoe het weer terug hauv elkaar moet.

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

#suav nrog

Servo tswj;

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

int buttonState2 = HIGH; // qis omdat schakelaar qhib yog int buttonState3 = HIGH; int buttonState4 = HIGH; int buttonState5 = HIGH;

koj oldbuttonState2; koj oldbuttonState3; koj oldbuttonState4; koj oldbuttonState5;

int correctCode = {1, 2, 3, 4}; int nkag tus lej [4]; int codeIndex = 0;

int outputPin = 9; // servo cov

koj pos; // pib positie servo bool ua tiav = muaj tseeb;

teeb tsa tsis muaj dab tsi () {myservo.attach (outputPin); pinMode (inputPin2, INPUT_PULLUP); pinMode (inputPin3, INPUT_PULLUP); pinMode (inputPin4, INPUT_PULLUP); pinMode (inputPin5, INPUT_PULLUP); Serial.begin (38400); }

void loop () {yog (ua tiav) {rau (int i = 0; i <4; i ++) {enterCode = 0; } pos = 100; myservo.write (pos); Serial.println ("Ua tiav"); tiav = tsis tseeb; }

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

yog (buttonState2 == HIGH &&! oldbuttonState2) // button1 {enterCode [codeIndex] = 1; codeIndex ++; // chaws Index += 1 oldbuttonState2 = 1; } lwm tus yog (buttonState2 == LOW && oldbuttonState2) {oldbuttonState2 = 0; }

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

lwm tus yog (buttonState3 == LOW && oldbuttonState3) {oldbuttonState3 = 0; }

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

yog (buttonState5 == HIGH &&! oldbuttonState5) // button4 {enterCode [codeIndex] = 4; codeIndex ++; oldbuttonState5 = 1; } lwm tus yog (buttonState5 == LOW && oldbuttonState5) {oldbuttonState5 = 0; } //Serial.print("entered: "); //Serial.println(enterCode[codeIndex-1]); //Serial.print("On: "); //Serial.println(codeIndex-1); }

yog (codeIndex == 4) {codeIndex = 0; bool codeEnteredCorrectly = tseeb; rau (int i = 0; i <4; i ++) {if (correctCode ! = enterCode ) {codeEnteredCorrectly = cuav; }}

yog (codeEnteredCorrectly) {pos = 0; myservo.write (pos); Serial.println (pos); ncua (5000); } tiav = muaj tseeb; Serial.println (codeEnteredCorrectly? "Tseeb": "tsis tseeb"); }}

Kauj Ruam 3: Solderen/ Juiste Code:

Solderen/ Juiste Txoj Cai
Solderen/ Juiste Txoj Cai
Solderen/ Juiste Txoj Cai
Solderen/ Juiste Txoj Cai
Solderen/ Juiste Txoj Cai
Solderen/ Juiste Txoj Cai

Yog! ua li cas thiaj zoo? Zoo heev!

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

Nu moet je rekening gaan houden ntsib 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 muaj ik er voor gekozen om aan een kant mijn kluisje te maken. En om aan de andere mijn arduino (ntsib daar boven een printplaatje ntsib daar op de knopjes) te maken. Bekijk het laatste plaatje voor een duidlegre

Eindelijk! Na ook veel hulp van mijn mede studenten en een hoop zelf te hebben gedaan, yog hier de WERKENDE code:

#suav nrog

Servo tswj;

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

int buttonState2 = HIGH; // voor alle nyees khawm een xeev int buttonState3 = HIGH; int buttonState4 = HIGH; int buttonState5 = HIGH;

koj oldbuttonState2; // voor alle khawm een oldstate int oldbuttonState3; koj oldbuttonState4; koj oldbuttonState5;

int correctCode = {1, 3, 4, 2}; // kho qhov chaws int enterCode [4]; // hauv gegeven code int codeIndex = 0; // tus hais lus

int outputPin = 9; // servomotortje tso tawm

koj pos; // positie servo bool ua tiav = muaj tseeb; // Qhib lub tsev txhab nyiaj

teeb tsa tsis muaj dab tsi () {myservo.attach (outputPin); pinMode (inputPin2, INPUT_PULLUP); pinMode (inputPin3, INPUT_PULLUP); pinMode (inputPin4, INPUT_PULLUP); pinMode (inputPin5, INPUT_PULLUP); Serial.begin (38400); }

void loop () {yog (ua tiav) // de servo op het juiste punt te laten starten

{rau (int i = 0; i <4; i ++) // voor ieder cijfer hauv eneterCode {enterCode = 0; } pos = 100; // 100 graden was voor mij de 'dichte' sawv myservo.write (pos); // stuurt de pos naar de servo ua tiav = tsis tseeb; // de code is niet compleet} else {int buttonState2 = digitalRead (inputPin2); int buttonState3 = digitalRead (inputPin3); int buttonState4 = digitalRead (inputPin4); int buttonState5 = digitalRead (inputPin5); yog (buttonState2 == HIGH &&! oldbuttonState2) // button1 {Serial.println ("BUTTON1 PRESSED"); // laat zien dat deze khawm gedrukt yog enterCode [codeIndex] = 1; // zet het cijfer 1 hauv de enterCode codeIndex ++; // teller + 1 oldbuttonState2 = 1; // kijkt de de knop yog gedrukt} lwm yog (buttonState2 == LOW && oldbuttonState2) // als button1 yog los gelaten {oldbuttonState2 = 0; // kunnen er andere hauv gedrukt worden} yog (buttonState3 == HIGH &&! oldbuttonState3) // button2 {

Serial.println ("BUTTON2 PRESSED"); // laat zien dat deze khawm gedrukt yog enterCode [codeIndex] = 2; // zet het cijfer 2 hauv de enterCode codeIndex ++; // teller + 1 oldbuttonState3 = 1; // kijkt de de knop yog gedrukt} lwm yog (buttonState3 == LOW && oldbuttonState3) // als button2 yog los gelaten {oldbuttonState3 = 0; // kunnen er andere hauv gedrukt worden}

yog (buttonState4 == HIGH &&! oldbuttonState4) // button3 {Serial.println ("BUTTON3 PRESSED"); // laat zien dat deze khawm gedrukt yog enterCode [codeIndex] = 3; // zet het cijfer 3 hauv de enterCode codeIndex ++; // teller + 1 oldbuttonState4 = 1; // kijkt of de knop is gedrukt} else if (buttonState4 == LOW && oldbuttonState4) // als button3 yog los gelaten {oldbuttonState4 = 0; // kunnen er andere hauv gedrukt worden}

yog (buttonState5 == HIGH &&! oldbuttonState5) // button4 {Serial.println ("BUTTON4 PRESSED"); // laat zien dat deze khawm gedrukt yog enterCode [codeIndex] = 4; // zet het cijfer 4 hauv de enterCode codeIndex ++; // teller + 1 oldbuttonState5 = 1; // kijkt de de knop yog gedrukt} lwm yog (buttonState5 == LOW && oldbuttonState5) // als button4 yog los gelaten {oldbuttonState5 = 0; // kunnen er andere hauv gedrukt worden}}

yog (codeIndex == 4) // als mijn teller hoger yog dan 4 {codeIndex = 0; // zet de teller weer op 0 bool codeEnteredCorrectly = tseeb; // maakt een nieuwe boolean aan rau (int i = 0; i <4; i ++) // voor ieder cijfer hauv de enterCode {yog (correctCode ! = enterCode ) // lo lus gekeken ntawm het niet hauv de correctCode zit {codeEnteredCorrectly = cuav; // als er een cijfer op de foute plaatst staat thiab lo lus hij cuav}}

yog (codeEnteredCorrectly) // als de code yog: {pos = 0; // 0 graden was voor mij de 'qhib' sawv myservo.write (pos); // stuurt de pos naar de servo Serial.println ("Ua tiav"); // geeft indicatie dat hij compleet yog ncua (5000); // 5 sec om het kluisje te openen} ua tiav = muaj tseeb; // de code is niet goed Serial.println ("sim dua"); // indicatie dat je overnieuw moet proberen. }

}

Kauj Ruam 4: Kauj Ruam 4 Ua tiav:

Kauj Ruam 4 Ua tiav
Kauj Ruam 4 Ua tiav

Schroef je kluisje bij elkaar muaj kev lom zem! 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!

Pom zoo: