Cov txheej txheem:
- Kauj ruam 1: Dreadboard:
- Kauj Ruam 2: Juiste Aansluiting Dreadboard:
- Kauj Ruam 3: Solderen/ Juiste Code:
- Kauj Ruam 4: Kauj Ruam 4 Ua tiav:
Video: Kraak De Kluis: 4 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:28
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:
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:
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:
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:
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:
Arduino Tsheb Rov Qab Chaw Nres Tsheb Ceeb Toom - Cov Kauj Ruam ntawm Kauj Ruam: 4 Kauj Ruam
Arduino Tsheb Rov Qab Chaw Nres Tsheb Ceeb Toom | Cov kauj ruam ib kauj ruam: Hauv txoj haujlwm no, kuv yuav tsim qhov yooj yim Arduino Tsheb Rov Qab Tsheb Nres Tsheb Nres Sensor Siv Arduino UNO thiab HC-SR04 Ultrasonic Sensor. Qhov no Arduino raws Lub Tsheb Rov Qab ceeb toom tuaj yeem siv rau Kev Tshawb Fawb Txog Tus Kheej, Robot Ranging thiab lwm yam
Tsev Automation Kauj Ruam ntawm Kauj Ruam Siv Wemos D1 Mini Nrog PCB Tsim: 4 Kauj Ruam
Tsev Automation Kauj Ruam Ib Leeg Siv Wemos D1 Mini Nrog PCB Tsim: Tsev Automation Kauj Ruam los ntawm Kauj Ruam siv Wemos D1 Mini nrog PCB Tsim cov tub ntxhais kawm ntawv qib siab. Tom qab ntawd ib tus ntawm peb cov tswv cuab tuaj
RC Taug Qab Neeg Hlau Siv Arduino - Kauj Ruam Ib kauj ruam: 3 Kauj Ruam
RC Tracked Robot Siv Arduino - Kauj Ruam Ib Nrab: Hav guys, Kuv rov qab los nrog lwm tus neeg hlau txias chassis los ntawm BangGood. Vam tias koj tau dhau los ntawm peb cov phiaj xwm yav dhau los - Spinel Crux V1 - Tus Cwj Pwm Tswj Tus Neeg Hlau, Spinel Crux L2 - Arduino Xaiv thiab Muab Neeg Hlau nrog Robotic caj npab thiab Badland Braw
Kawm Yuav Ua Li Cas Kos Tus Tswm Ciab - Kauj Ruam Ib Kauj Ruam: 6 Kauj Ruam
Kawm Yuav Ua Li Cas Thiaj Li Tswmciab - Kauj Ruam Ib kauj ruam: Cov tswm ciab no siv sijhawm 10 feeb los kos yog tias koj ua raws kuv cov kauj ruam ua tib zoo
DIY Arduino Robotic Arm, Kauj Ruam ntawm Kauj Ruam: 9 Kauj Ruam
DIY Arduino Robotic Arm, Kauj Ruam ntawm Kauj Ruam: Cov ntawv qhia no yog qhia koj yuav tsim lub Caj Npab Caj Npab ntawm koj tus kheej li cas