Inhoudsopgave:
Video: Servovergrendeling toetsenbord - Ajarnpa
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Hallo allemaal, hopelijk hebben jullie een fijne dag gehad. Zo niet, dan kun je hopelijk met een open geest terugspoelen naar deze tutorial en wat therapeutische muziek. Programmeren kan een gedoe zijn. Gelukkig is deze tutorial geen gedoe, dus je kunt misschien een populair ding bereiken met de naam (met machtige stem): HET ULTIEME SERVO-TOETSENVERGRENDELING!!! Dat is eigenlijk alleen mijn introductie, ik hoop dat je het leuk vond. Hoe dan ook, laten we onze vingers opwarmen voor het typen. (Een cool nummer: can-can-nummer (klassieke muziek)).
Benodigdheden:
-Je vingers
-Je handen ook, dat is belangrijk
-USB-kabel voor Arduino
-Elk type arduino beschikbaar (ik heb de Arduino Mega)
-Matrix toetsenbord (toetsenbord - ebay, toetsenbord - amazon)
-Micro- of standaardservo (ik gebruik een microservo)
-*Optioneel* Breadboard - elk type
-*Optioneel* Voeding (5V)
Stap 1: Schematische tijd
Dus, wat eerst doen? Sluit de Arduino aan op de computer. Sluit vervolgens het toetsenbord aan. *Opmerking - u moet de pinnen van de laatste pin op het toetsenbord aansluiten als de eerste digitale pin op de Arduino. En ga daarna van rechts naar links*. Toetsenbord heeft pinnen 2-9 op de Arduino. De servo heeft pin 10 als digitale signalen. Bind de gronden van de arduino, het toetsenbord en de servo en de 5V ook. * Houd er ook rekening mee dat de servo het best kan worden gebruikt met een externe stroombron of een adapter met 5V (muurplug-in), maar het is nog steeds optioneel. * Je hoeft de gronden en 5V niet fysiek vast te maken, wat ik bedoel is om gewoon een draad van de Arduino aan de servo te bevestigen. Dit schema helpt beginners niet, dus sta me toe het in het kort uit te leggen. Kortom, de laatste pin is 2 en de eerste is 9, twee is 8, drie is 7, enzovoort. Ga van links naar rechts 2 2.
Stap 2: Codeertijd
Oké, dus nu zijn we bij het coderingsgedeelte! Dit is waar de echte magie plaatsvindt! Er is dus een testprogramma om eerst het toetsenbord en de servo te testen. Hier:
//www.elego.com//2016.12.9
/* @file CustomKeypad.pde
|| @versie 1.0 || @auteur Alexander Brevig || @contact [email protected] || || @beschrijving || | Demonstreert het wijzigen van de toetsenbordgrootte en toetswaarden. || # */ #erbij betrekken
const byte RIJEN = 4; //vier rijen
constbyte COLS = 4; //vier kolommen //definieer de bekkens op de toetsen van de keypads char hexaKeys[ROWS][COLS] = { {'1', '2', '3', 'A'}, {'4', '5 ', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte rowPins [ROWS] = {9, 8, 7, 6}; // maak verbinding met de rij-pinouts van de toetsenbordbyte colPins [COLS] = {5, 4, 3, 2}; // verbind met de kolom pinouts van het toetsenbord
// initialiseer een instantie van de klasse NewKeypad
Toetsenbord customKeypad = Toetsenbord (makeKeymap (hexaKeys), rowPins, colPins, RIJEN, COLS);
ongeldige setup(){
Serieel.begin(9600); } void loop(){ char customKey = customKeypad.getKey(); if (customKey){ Serial.println(customKey); } }
//www.elegoo.com//2016.12.08 #include
Servo-mijnservo; // maak een servo-object om een servo te besturen
// twaalf servo-objecten kunnen op de meeste borden worden gemaakt
int pos = 0; // variabele om de servopositie op te slaan
ongeldige setup() {
mijnservo.attach(9); // bevestigt de servo op pin 9 aan het servo-object}
lege lus() {
for (pos = 0; pos = 0; pos -= 1) {// gaat van 180 graden naar 0 graden myservo.write(pos); // vertel servo om naar positie te gaan in variabele 'pos' vertraging (15); // wacht 15 ms totdat de servo de positie bereikt } }
Hier is de projectcode (ik zal eerlijk tegen je zijn, ik heb niet veel gedaan, ik heb zojuist het servogedeelte toegevoegd, bedankt aan de mensen die alle code hebben gemaakt!):
#include Password.h
#inclusief toetsenbord
/*
|| Eenvoudige wachtwoordinvoer met behulp van Matrix-toetsenbord || 4/5/2012 Updates Nathan Sobieck: [email protected] || *
/* is om het wachtwoord te valideren
//# is om wachtwoordpoging opnieuw in te stellen
/////////////////////////////////////////////////////////////////
#erbij betrekken
//https://www.arduino.cc/playground/uploads/Code/Password.zip #include //https://www.arduino.cc/playground/uploads/Code/Keypad.zip
Wachtwoord wachtwoord = Wachtwoord ("1234");
Servo-mijnservo; // maak een servo-object om een servo te besturen
#define servoPin 10
const byte RIJEN = 4; // Vier rijen
constbyte COLS = 4; // kolommen // Definieer de Keymap-tekentoetsen [ROWS][COLS] = { {'1', '2', '3', 'A'}, {'4', '5', '6', ' B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} };
byte rowPins [ROWS] = { 9, 8, 7, 6 }; // Sluit toetsenbord ROW0, ROW1, ROW2 en ROW3 aan op deze Arduino-pinnen.
byte colPins [COLS] = { 5, 4, 3, 2, }; // Sluit toetsenbord COL0, COL1 en COL2 aan op deze Arduino-pinnen.
// Maak het toetsenbord
Toetsenbord toetsenbord = Toetsenbord (makeKeymap (toetsen), rowPins, colPins, RIJEN, COLS);
ongeldige setup() {
mijnservo.attach(servoPin); // bevestigt de servo op pin 9 aan het servo-object
Serieel.begin(9600);
keypad.addEventListener(keypadEvent); // voeg een gebeurtenislistener toe voor dit toetsenbord
mijnservo.write(0);
}
lege lus() {
toetsenbord.getKey();
}
//zorg voor een aantal speciale evenementen
void keypadEvent (KeypadEvent eKey) { switch (keypad.getState ()) { case INGEDRUKT: switch (eKey) { case '*': checkPassword (); pauze; standaard: wachtwoord.append(eKey); } } }
ongeldige checkPassword() {
if (password.evaluate() == true) { Serial.println("Succes"); // Voeg code toe om uit te voeren als het werkt
mijnservo.write(180);
vertraging (3000);
mijnservo.write(0);
wachtwoord reset();
} else if (password.evaluate() == false) {
Serial.println("Fout");
mijnservo.write(0);
// voeg code toe om uit te voeren als het niet werkte
}
}
Stap 3: Wat betekent dit allemaal?
De code hierboven (de eerste) geeft een signaal aan de servo om te "vegen" of gewoon van 0 naar 180 graden te gaan. Of gewoon een halve cirkel draaien van links naar rechts of van rechts naar links. Als je meer details over de code wilt, kan ik je dat vertellen. Vraag het maar. Geen kwaad gedaan, gewoon een simpele kleine vraag. Kom op je kan het! Hoe dan ook, de code in het midden test elke knop van het toetsenbord. En de laatste van de code "ontgrendelt" gewoon met de servo wanneer je de toegangscode "1234" typt in, je raadt het al, het toetsenbord.
Stap 4: Problemen oplossen
V: Mijn toetsenbord werkt niet.
A: Onthoud dat de eerste pin 9 is, dus ga vanaf daar naar beneden. Zorg er ook voor dat u de arduino op de USB-poort van de computer aansluit en de Arduino programmeert.
V: Servo werkt niet.
A: Onthoud dat de servopin pin 10 is en dat je een gemeenschappelijke aarde nodig hebt. Als je rechtstreeks vanuit de Arduino verbinding maakt, onthoud dan dat de oranje pin (op de microservo) pin 10 is, de rode pin 5V is en de bruine pin is de GND-pin.
V: Arduino werkt niet:
A: Heb je het zelfs aangesloten? Dat klinkt als een persoonlijk probleem
Stap 5: Als je vragen hebt, stel ze dan gerust in het opmerkingengedeelte en vergeet niet om je te abonneren
Dag, bedankt voor het bekijken van mijn tutorial. Het was leuk.