Mục lục:
- Bước 1: Dreadboard:
- Bước 2: Juiste Aansluiting Dreadboard:
- Bước 3: Mã Solderen / Juiste:
- Bước 4: Bước 4 XONG:
Video: Kraak De Kluis: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Giới thiệu
Hallo allemaal, Ik ga eerlijk zijn en hierbij zeggen dat dit de eerste keer is dat ik op Guidables zit na mijn project ITTT. Dus voor mijn 'If This Then That' Dự án zet ik deze có thể cài đặt trực tuyến.
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 una (en usb naar arduino cabel).- Máy tính xách tay (gặp chương trình arduino).- 4 Nút (anders kun je geen code billeren).- 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 bằng nhựa- 1 chốt Ijzeren
Bước 1: Dreadboard:
Om te beginnen is het altijd handig om een vergelijkbaar project op te zoeken op internet. Ik kon hier niet veel van vinden en ben het plaatje hierboven hàn 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 đã có ik gekopieerd en ben ik op cửa gegaan voor 4 knopjes.
Hieronder de code die erbij hoorde (voor nu): NIET WERKEND
#bao gồm
Servo myservo;
int inputPin = 2; // nút int outputPin = 9; // servo int buttonState = HIGH; // low omdat schakelaar open is int pos = 0; // bắt đầu pose servo int oldbuttonState; trạng thái int;
void setup () {myservo.attach (outputPin); pinMode (inputPin, INPUT_PULLUP); Serial.begin (38400); } void loop () {int buttonState = digitalRead (inputPin); if (buttonState == HIGH &&! oldbuttonState) {if (state == 0) {pos = 0; trạng thái = 1; } else {pos = 180; trạng thái = 0; } oldbuttonState = 1; } else if (buttonState == LOW && oldbuttonState) {oldbuttonState = 0; } Serial.println (pos); Serial.println (buttonState); myservo.write (pos); }
Bước 2: Juiste Aansluiting Dreadboard:
Mijn volgende stap is 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
#bao gồm
Servo myservo;
int inputPin2 = 2; // button1 int inputPin3 = 3; // button2 int inputPin4 = 4; // button3 int inputPin5 = 5; // button4
int buttonState2 = CAO; // low omdat schakelaar open is int buttonState3 = HIGH; int buttonState4 = HIGH; int buttonState5 = CAO;
int oldbuttonState2; int oldbuttonState3; int oldbuttonState4; int oldbuttonState5;
int trueCode = {1, 2, 3, 4}; int enterCode [4]; int codeIndex = 0;
int outputPin = 9; // servo
int pos; // bắt đầu pose servo bool complete = true;
void setup () {myservo.attach (outputPin); pinMode (inputPin2, INPUT_PULLUP); pinMode (inputPin3, INPUT_PULLUP); pinMode (inputPin4, INPUT_PULLUP); pinMode (inputPin5, INPUT_PULLUP); Serial.begin (38400); }
void loop () {if (hoàn thành) {for (int i = 0; i <4; i ++) {enterCode = 0; } pos = 100; myservo.write (pos); Serial.println ("Đã hoàn thành"); hoàn thành = sai; }
else {int buttonState2 = digitalRead (inputPin2); int buttonState3 = digitalRead (inputPin3); int buttonState4 = digitalRead (inputPin4); int buttonState5 = digitalRead (inputPin5);
if (buttonState2 == HIGH &&! oldbuttonState2) // button1 {enterCode [codeIndex] = 1; codeIndex ++; // mã Index + = 1 oldbuttonState2 = 1; } else if (buttonState2 == LOW && oldbuttonState2) {oldbuttonState2 = 0; }
if (buttonState3 == HIGH &&! oldbuttonState3) // button2 {Serial.println ("BUTTON2 PRESSED"); enterCode [codeIndex] = 2; codeIndex ++; oldbuttonState3 = 1; }
else if (buttonState3 == LOW && oldbuttonState3) {oldbuttonState3 = 0; }
if (buttonState4 == HIGH &&! oldbuttonState4) // button3 {enterCode [codeIndex] = 3; codeIndex ++; oldbuttonState4 = 1; } else if (buttonState4 == LOW && oldbuttonState4) {oldbuttonState4 = 0; }
if (buttonState5 == HIGH &&! oldbuttonState5) // button4 {enterCode [codeIndex] = 4; codeIndex ++; oldbuttonState5 = 1; } else if (buttonState5 == LOW && oldbuttonState5) {oldbuttonState5 = 0; } //Serial.print("entered: "); //Serial.println(enterCode[codeIndex-1]); //Serial.print("On: "); //Serial.println(codeIndex-1); }
if (codeIndex == 4) {codeIndex = 0; bool codeEnteredCorrectly = true; for (int i = 0; i <4; i ++) {if (correctCode ! = enterCode ) {codeEnteredCorrectly = false; }}
if (codeEnteredCorrectly) {pos = 0; myservo.write (pos); Serial.println (pos); chậm trễ (5000); } hoàn thành = true; Serial.println (codeEnteredCorrectly? "True": "false"); }}
Bước 3: Mã Solderen / Juiste:
Chà! ben je al zover gekomen ?! Siêu!
Nu is het handig om Even rustig aan te doen en alles goed te bedenken! Maak eerst een selleer shema'tje voor dat je gaat beginnen met selleren. (Dit helpt je een hoop als je dit voor af doet inplaats van achteraf!).
Nu moet je rekening gaan houden met 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 had ik er voor gekozen om aan een kant mijn kluisje te maken. En om aan de andere mijn arduino (gặp daar boven een printplaatje gặp daar op de knopjes) te maken. Bekijk het laatste plaatje voor een duidelijkere uitleg.
Eindelijk! Na ook veel hulp van mijn mede studenten en een hoop zelf te hebben gedaan, là mã hier de WERKENDE:
#bao gồm
Servo myservo;
int inputPin2 = 2; // button1 int inputPin3 = 3; // button2 int inputPin4 = 4; // button3 int inputPin5 = 5; // button4
int buttonState2 = CAO; // nút voor alle een trạng thái int buttonState3 = HIGH; int buttonState4 = HIGH; int buttonState5 = CAO;
int oldbuttonState2; // các nút voor alle een oldstate int oldbuttonState3; int oldbuttonState4; int oldbuttonState5;
int trueCode = {1, 3, 4, 2}; // sửa mã int enterCode [4]; // trong mã gegeven int codeIndex = 0; //người kể chuyện
int outputPin = 9; // đầu ra servomotortje
int pos; // pose servo bool complete = true; // Mở vault
void setup () {myservo.attach (outputPin); pinMode (inputPin2, INPUT_PULLUP); pinMode (inputPin3, INPUT_PULLUP); pinMode (inputPin4, INPUT_PULLUP); pinMode (inputPin5, INPUT_PULLUP); Serial.begin (38400); }
void loop () {if (complete) // de servo op het juiste punt te laten starten
{for (int i = 0; i <4; i ++) // voor ieder cijfer in eneterCode {enterCode = 0; } pos = 100; // 100 graden là voor mij de 'dichte' stand myservo.write (pos); // stuurt de pos naar de servo complete = false; // mã de là 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 is enterCode [codeIndex] = 1; // zet het cijfer 1 trong de enterCode codeIndex ++; // giao dịch viên + 1 oldbuttonState2 = 1; // kijkt của de knop là gedrukt} else if (buttonState2 == LOW && oldbuttonState2) // als button1 is los gelaten {oldbuttonState2 = 0; // kunnen er andere in gedrukt worden} if (buttonState3 == HIGH &&! oldbuttonState3) // button2 {
Serial.println ("NÚT 2 ĐÃ ẤN"); // laat zien dat deze button gedrukt is enterCode [codeIndex] = 2; // zet het cijfer 2 trong de enterCode codeIndex ++; // giao dịch viên + 1 oldbuttonState3 = 1; // kijkt của de knop là gedrukt} else if (buttonState3 == LOW && oldbuttonState3) // als button2 is los gelaten {oldbuttonState3 = 0; // kunnen er andere trong gedrukt worden}
if (buttonState4 == HIGH &&! oldbuttonState4) // button3 {Serial.println ("BUTTON3 PRESSED"); // laat zien dat deze button gedrukt is enterCode [codeIndex] = 3; // zet het cijfer 3 trong de enterCode codeIndex ++; // giao dịch viên + 1 oldbuttonState4 = 1; // kijkt của de knop là gedrukt} else if (buttonState4 == LOW && oldbuttonState4) // als button3 is los gelaten {oldbuttonState4 = 0; // kunnen er andere trong gedrukt worden}
if (buttonState5 == HIGH &&! oldbuttonState5) // button4 {Serial.println ("BUTTON4 PRESSED"); // laat zien dat deze button gedrukt is enterCode [codeIndex] = 4; // zet het cijfer 4 in de enterCode codeIndex ++; // giao dịch viên + 1 oldbuttonState5 = 1; // kijkt của de knop là gedrukt} else if (buttonState5 == LOW && oldbuttonState5) // als button4 is los gelaten {oldbuttonState5 = 0; // kunnen er andere trong 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 for (int i = 0; i <4; i ++) // voor ieder cijfer in de enterCode {if (correctCode ! = enterCode ) // word gekeken of het niet in de trueCode zit {codeEnteredCorrectly = false; // als er een cijfer op de foute plaatst staat dan word hij false}}
if (codeEnteredCorrectly) // als de code đúng là: {pos = 0; // 0 graden là voor mij de 'open' stand myservo.write (pos); // stuurt de pos naar de servo Serial.println ("Đã hoàn thành"); // geeft indicatie dat hij compleet is delay (5000); // 5 giây om het kluisje te openen} complete = true; // mã de là niet goed Serial.println ("thử lại"); // indicatie dat je overnieuw moet proberen. }
}
Bước 4: Bước 4 XONG:
Schroef je kluisje bij elkaar en vui chơi! 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!
Đề xuất:
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)
Động cơ bước được điều khiển bằng động cơ bước Không cần vi điều khiển (V2): Trong một trong những Hướng dẫn trước đây của tôi, tôi đã chỉ cho bạn cách điều khiển động cơ bước bằng cách sử dụng động cơ bước mà không cần vi điều khiển. Đó là một dự án nhanh chóng và thú vị nhưng nó đi kèm với hai vấn đề sẽ được giải quyết trong Có thể hướng dẫn này. Vì vậy, hóm hỉnh
Đầu máy mô hình điều khiển động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Đầu máy mô hình điều khiển động cơ bước | Động cơ bước làm bộ mã hóa quay: Trong một trong những phần Hướng dẫn trước, chúng ta đã học cách sử dụng động cơ bước làm bộ mã hóa quay. Trong dự án này, bây giờ chúng ta sẽ sử dụng bộ mã hóa quay động cơ bước đó để điều khiển đầu máy mô hình bằng vi điều khiển Arduino. Vì vậy, không có fu
Âm thanh bay bổng với Arduino Uno Từng bước (8 bước): 8 bước
Acoustic Levitation With Arduino Uno Step-by-by-by (8 bước): bộ chuyển đổi âm thanh siêu âm L298N Dc cấp nguồn cho bộ chuyển đổi âm thanh nữ với chân cắm một chiều nam Arduino UNOBreadboard Cách hoạt động: Đầu tiên, bạn tải mã lên Arduino Uno (nó là một vi điều khiển được trang bị kỹ thuật số và các cổng tương tự để chuyển đổi mã (C ++)
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy