Innehållsförteckning:
- Steg 1: Schematisk tid
- Steg 2: Kodningstid
- Steg 3: Vad betyder allt detta?
- Steg 4: Felsökning
- Steg 5: Om du har några frågor, ställ gärna i kommentarsfältet och kom ihåg att prenumerera
Video: Knappsats Servolås: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:35
Hej alla, hoppas ni haft en bra dag. Om inte förhoppningsvis kan du bara spola tillbaka med lite öppet sinne för denna handledning och lite terapeutisk musik. Programmering kan vara ett krångel. Tack och lov är denna handledning inte ett krångel, så du kanske kan åstadkomma en populär sak som kallas (med mäktig röst): THE ULTIMATE SERVO KEYPAD LOCK !!! Det är egentligen bara min introduktion, hoppas du gillade det. Hur som helst, låt oss värma upp fingrarna för att skriva. (En cool låt: can-can song (klassisk musik)).
Tillbehör:
-Dina fingrar
-Dina händer också, det är viktigt
-USB -kabel för Arduino
-Varje typ av arduino som finns (jag har Arduino Mega)
-Matrix -knappsats (knappsats - ebay, knappsats - amazon)
-Micro eller Standard servo (jag använder en micro servo)
-* Valfritt* Brödbräda - vilken typ som helst
-* Valfritt* Strömförsörjning (5V)
Steg 1: Schematisk tid
Så, vad gör man först? Anslut Arduino till datorn. Anslut knappsatsen därefter. *Obs - du måste ansluta stiften från den sista stiftet på knappsatsen som den första digitala stiftet på arduino. Och gå från höger till vänster efter det*. Knappsatsen har stiften 2-9 på arduino. Servon har stift 10 som digitala signaler. Knyt fast arduino, knappsats och servo och 5V också. * Observera också - att servon bäst används med en extern strömkälla eller en adapter med 5V (väggplugg), men det är fortfarande valfritt.* Du behöver inte binda grunden och 5V fysiskt, vad jag menar är att bara fästa en tråd från Arduino till servon. Denna schemat hjälper inte nybörjare, så låt mig förklara i detalj. I grund och botten är den sista stiftet 2 och den första är 9, två är 8, tre är 7 och så vidare. Gå från vänster till höger 22.
Steg 2: Kodningstid
Ok, så nu är vi på kodningsdelen! Det är här den verkliga magin händer! Så det finns ett testprogram för att först testa knappsatsen och servon. Här:
//www.elegoo.com//2016.12.9
/* @fil CustomKeypad.pde
|| @version 1.0 || @författare Alexander Brevig || @kontakt [email protected] || || @beskrivning || | Visar att knappsatsens storlek och nyckelvärden ändras. || # */ # inkludera
const byte RADER = 4; // fyra rader
const byte COLS = 4; // fyra kolumner // definiera cymbolerna på knapparna på knappsatserna char hexaKeys [RADER] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5 ',' 6 ',' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}}; byte rowPins [ROWS] = {9, 8, 7, 6}; // ansluta till radnålarna i knappsatsens byte colPins [COLS] = {5, 4, 3, 2}; // Anslut till knapparna på knappsatsen
// initiera en instans av klassen NewKeypad
Tangentbord customKeypad = Tangentbord (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);
void setup () {
Serial.begin (9600); } void loop () {char customKey = customKeypad.getKey (); if (customKey) {Serial.println (customKey); }}
//www.elegoo.com//2016.12.08 #inkludera
Servo myservo; // skapa servoobjekt för att styra ett servo
// tolv servoobjekt kan skapas på de flesta brädor
int pos = 0; // variabel för att lagra servopositionen
void setup () {
myservo.attach (9); // fäster servon på stift 9 på servoobjektet}
void loop () {
för (pos = 0; pos = 0; pos -= 1) {// går från 180 grader till 0 grader myservo.write (pos); // berätta för servon att gå till position i variabeln 'pos' fördröjning (15); // väntar 15 ms på att servon når positionen}}
Här är projektkoden (jag ska vara ärlig mot dig, jag gjorde inte så mycket, jag lade bara till servodelen, tack till de som gjorde all koden!):
#inkludera lösenord. h
#inkludera knappsats
/*
|| Enkelt lösenordsinmatning med Matrix -knappsats || 2012-05-05 Uppdateringar Nathan Sobieck: [email protected] || *
/* är att validera lösenordet
//# är att återställa lösenordsförsök
/////////////////////////////////////////////////////////////////
#omfatta
//https://www.arduino.cc/playground/uploads/Code/Password.zip #include //https://www.arduino.cc/playground/uploads/Code/Keypad.zip
Lösenordslösenord = Lösenord ("1234");
Servo myservo; // skapa servoobjekt för att styra ett servo
#define servoPin 10
const byte RADER = 4; // Fyra rader
const byte COLS = 4; // kolumner // Definiera nyckelknappens tangenter [RADER] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}};
byte rowPins [ROWS] = {9, 8, 7, 6}; // Anslut knappsatsen ROW0, ROW1, ROW2 och ROW3 till dessa Arduino -stift.
byte colPins [COLS] = {5, 4, 3, 2,}; // Anslut knappsatsen COL0, COL1 och COL2 till dessa Arduino -stift.
// Skapa knappsatsen
Knappsats knappsats = Knappsats (makeKeymap (nycklar), rowPins, colPins, ROWS, COLS);
void setup () {
myservo.attach (servoPin); // fäster servon på stift 9 på servoobjektet
Serial.begin (9600);
knappsats.addEventListener (knappsatsEvent); // lägg till en eventlyssnare för den här knappsatsen
myservo.write (0);
}
void loop () {
knappsats.getKey ();
}
// ta hand om några speciella evenemang
void keypadEvent (KeypadEvent eKey) {switch (keypad.getState ()) {case PRESSED: switch (eKey) {case '*': checkPassword (); ha sönder; standard: password.append (eKey); }}}
void checkPassword () {
if (password.evaluate () == true) {Serial.println ("Framgång"); // Lägg till kod för att köra om det fungerar
myservo.write (180);
fördröjning (3000);
myservo.write (0);
lösenordsåterställning();
} annars om (password.evaluate () == false) {
Serial.println ("Fel");
myservo.write (0);
// lägg till kod för att köra om det inte fungerade
}
}
Steg 3: Vad betyder allt detta?
Koden ovan (den första) kommer att ge en signal till servon att "sopa" eller bara gå från 0 till 180 grader. Eller bara slutföra en halv rotationscirkel från vänster till höger eller höger till vänster. Om du vill ha mer information om koden kan jag berätta för dig. Fråga bara. Ingen skada, bara en enkel liten fråga. Kom igen, du kan göra det! Hur som helst, koden i mitten testar varje knapp på knappsatsen. Och den sista av koden "låser upp" bara med servon när du skriver in lösenordet "1234" i, du gissade det, knappsatsen.
Steg 4: Felsökning
F: Min knappsats fungerar inte.
A: Kom ihåg att den första nålen är 9 så gå ner därifrån. Se också till att ansluta arduino till datorns USB -port och programmera Arduino.
F: Servo fungerar inte.
A: Kom ihåg att servostiftet är stift 10 och att du behöver en gemensam grund, om du ansluter direkt från Arduino, kom ihåg att den orange stiftet (på mikroservon) är stift 10, den röda stiftet är 5V och brun stift är GND -stiftet.
F: Arduino fungerar inte:
A: Anslutte du det ens? Det låter som ett personligt problem
Steg 5: Om du har några frågor, ställ gärna i kommentarsfältet och kom ihåg att prenumerera
Hej, tack för att du tittade på min handledning. Det har varit roligt.
Rekommenderad:
Arduino mekanisk knappsats: 5 steg (med bilder)
Arduino mekanisk knappsats: Jag behövde en stiftplatta för ett annat projekt, så jag bestämde mig för att göra en knappsats med delar jag hade hemma
Arduino -räknare med 4X4 knappsats: 4 steg (med bilder)
Arduino -kalkylator med hjälp av 4X4 knappsats: I denna handledning kommer vi att bygga vår egen miniräknare med Arduino. Värdena kan skickas in via en knappsats (4 × 4 knappsats) och resultatet kan ses på en LCD -skärm. Denna räknare kan utföra enkla operationer som addition, subtraktion, multiplikation
Arduino knappsats 4x4 handledning: 4 steg (med bilder)
Arduino knappsats 4x4 Handledning: Knappsatsingång visades för seriell bildskärm med arduino uno och 4x4 knappsats full kod
Programmerbar knappsats: 5 steg (med bilder)
Programmerbar knappsats: I det här projektet ska jag visa hur man gör relativt enkla och billiga programmerbara knappsatser för att kartlägga dina mest använda kortkommandon, applikationer med mera. Denna knappsats upptäcks som tangentbord i alla större operativsystem, inga ytterligare drivrutiner behövs
Använda en 4x4 -knappsats med CircuitPython: 4 steg
Använda en 4x4 -knappsats med CircuitPython: Denna billiga knappsats erbjuder en enkel metod för numerisk inmatning till dina CircuitPython -projekt. Jag ska använda den med en Adafruit ItsyBitsy M0 express. Du behöver: Knappsats - min är 4x4ItsyBitsy M0 Express eller liknande boardMu Editor installerad på