Innholdsfortegnelse:
- Trinn 1: Koble til tastaturet
- Trinn 2: Tilsett mikroservoen
- Trinn 3: Endre kode for å bruke tastaturet på servoen
Video: Servoposisjonering med tastatur: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
I denne instruksen vil vi lage et prosjekt som skal kontrollere en Micro-Servo med et tastatur som kjører den med en Arduino Uno.
Materialer som brukes:
Arduino Uno
Brødbrett
Tastatur 4x4
Mikro-servo
Trinn 1: Koble til tastaturet
Den aller første tanken du trenger å gjøre er å koble strømskinnen og jordingsskinnen på brødbrettet fra Arduino
- Koble 5V -pinnen til strømskinnen (rød)
- Koble en jordingsstift (GND) til jordingsskinnen (blå)
Nå som brødbrettet har strøm og er jordet, kan vi begynne å koble til komponentene våre.
Det er enkelt å koble til tastaturet, men du må ta hensyn til pinnene på tastaturet og arduinoen. Det vil komme godt med når vi retter oppmerksomheten mot koden vår.
Husk å starte til venstre når du bruker ledningene!
- Første pin går til 13
- Den andre pinnen går til 12
- Tredje pin går til 11
- Fjerde pinne går til 10
- Femte pinne til 9
- Sjette pin til 8
- Syvende pin til 7
- Åttende pin til 6
Når du kobler tastaturet, må du huske å holde en digital pwm -pinne åpen. Vi trenger det for mikroservoen
Før vi kommer til koden, må du kontrollere at du har installert tastaturbiblioteket. Det finnes i skissen din, deretter skisse -fanen, inkluder bibliotek. Du kan ikke bruke tastaturet uten det.
La oss nå slå til koden og sørge for at tastaturet fungerer og gir verdiene som er deltatt
Raske notater: Sørg for at du har if -setningen for å kontrollere tastaturet, ellers fungerer det ikke. Vær også forsiktig med forsinkelser, de vil rote med at knapper blir registrert fra tastaturet
#inkludere
const byte rader = 4; // fire rader siden tastaturet er fullt
const byte kolonner = 4; // fire kolonner, samme som ovenfor
bleknapper [rader] [kolonner] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
byte radP [rader] = {13, 12, 11, 10}; // radpinner på tastaturet
byte kolonnerP [kolonner] = {9, 8, 7, 6}; // kolonnestifter på tastaturet
Tastatur = Tastatur (makeKeymap (knapper), rowP, kolonnerP, rader, kolonner); // opprett tastatur
ugyldig oppsett () {
Serial.begin (9600); }
void loop () {
char buttonPressed = pad.getKey (); // få røya fra tastaturet hvis (buttonPressed) // vis hvilken knapp som ble trykket på tastaturet {Serial.println (buttonPressed); }}
Trinn 2: Tilsett mikroservoen
La oss nå legge til servomotoren. Denne er veldig enkel å legge til i vårt nåværende prosjekt siden mikroserveren bare har tre ledninger.
- Brun ledning går til jordingsskinne på brødbrettet
- Rødt går til Power rail
- Orange går til Pin 3 på Arduino. Husk at mikroserveren må ha en PWM -pin på Arduino. Dette skyldes at servoen bruker TIMER2
La oss bare sørge for at vi koblet mikroservoen riktig og at den beveger seg
#include #include "Servo.h"
const byte rader = 4; // fire rader siden tastaturet er fullt
const byte kolonner = 4; // fire kolonner, samme som ovenfor
bleknapper [rader] [kolonner] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
byte radP [rader] = {13, 12, 11, 10}; // radpinner på tastaturet
byte kolonnerP [kolonner] = {9, 8, 7, 6}; // kolonnestifter på tastaturet
Tastatur = Tastatur (makeKeymap (knapper), rowP, kolonnerP, rader, kolonner); // opprett tastatur
Servo currentServo; // lage servoobjekt for å kontrollere en servo
// tolv servoobjekter kan opprettes på de fleste tavler
int pos = 0; // variabel for å lagre servoposisjonen
ugyldig oppsett () {
Serial.begin (9600); currentServo.attach (3); // fester servoen på pinne 9 til servoobjektet
}
void loop () {
char buttonPressed = pad.getKey (); // få røya fra tastaturet hvis (buttonPressed) // vis hvilken knapp som ble trykket på tastaturet {Serial.println (buttonPressed); }
currentServo.write (95);
}
Trinn 3: Endre kode for å bruke tastaturet på servoen
Vet at vi skal endre koden slik at når vi trykker på en bestemt knapp på tastaturet, flytter servoen til en bestemt posisjon. En ting av betydning først. Servoposisjonen for 0 var rar. Siden jeg hadde en kontinuerlig rotasjonsservo, når den kom nær 0, begynte servoen å snurre. Tallet jeg la inn i koden var så lavt jeg kunne gå uten at det skjedde. Uansett, her er min siste kode:
#include #include
const byte rader = 4; // fire rader siden tastaturet er fullt
const byte kolonner = 4; // fire kolonner, samme som ovenfor
bleknapper [rader] [kolonner] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
byte radP [rader] = {13, 12, 11, 10}; // radpinner på tastaturet
byte kolonnerP [kolonner] = {9, 8, 7, 6}; // kolonnestifter på tastaturet
Tastatur = Tastatur (makeKeymap (knapper), rowP, kolonnerP, rader, kolonner); // opprett tastatur
Servo myServo; //
ugyldig oppsett () {
Serial.begin (9600); myServo.attach (5); // fester servoen på pinne 9 til servoobjektet}
void loop () {
char key = pad.getKey (); // få røya fra tastaturet hvis (key == '0') {myServo.write (11); Serial.println ("0"); forsinkelse (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); forsinkelse (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); forsinkelse (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); forsinkelse (15); }
hvis (nøkkel == '4')
{myServo.write (48); Serial.println ("4"); forsinkelse (15); }
hvis (nøkkel == '5')
{myServo.write (60); Serial.println ("5"); forsinkelse (15); }
hvis (nøkkel == '6')
{myServo.write (72); Serial.println ("6"); forsinkelse (15); }
hvis (nøkkel == '7')
{myServo.write (84); Serial.println ("7"); forsinkelse (15); }
hvis (nøkkel == '8')
{myServo.write (96); Serial.println ("8"); forsinkelse (15); }
hvis (nøkkel == '9')
{myServo.write (108); Serial.println ("9"); forsinkelse (15); }
hvis (nøkkel == '*')
{myServo.write (120); Serial.println ("*"); forsinkelse (15); }
hvis (nøkkel == '#')
{myServo.write (132); Serial.println ("#"); forsinkelse (15); }
hvis (nøkkel == 'A')
{myServo.write (146); Serial.println ("A"); forsinkelse (15); }
hvis (nøkkel == 'B')
{myServo.write (158); Serial.println ("B"); forsinkelse (15); }
hvis (nøkkel == 'C')
{myServo.write (170); Serial.println ("C"); forsinkelse (15); }
hvis (nøkkel == 'D')
{myServo.write (180); Serial.println ("D"); forsinkelse (15); }}
Anbefalt:
HotKeys -tastatur med tilpassede profiler: 14 trinn (med bilder)
HotKeys -tastatur med tilpassede profiler: Jeg håper du har det bra midt i denne pandemien. Vær trygg. Vær sterk. #COVID19 For å være en industriell designer, må jeg få tilgang til mer enn 7-8 programvare som inkluderer Solidworks, Photoshop, Illustrator, Keyshot, Indesign, etc. daglig og ja få
4x4 -tastatur med Arduino og prosessering: 4 trinn (med bilder)
4x4 -tastatur med Arduino og prosessering: Liker du ikke LCD -skjermer? Vil du få prosjektene til å se tiltalende ut? Her er løsningen. I denne instruksjonsboken kan du frigjøre deg selv fra problemene med å bruke en LCD -skjerm for å vise innhold fra Arduino og også gjøre prosjektet ditt
Tastaturknapp Servoposisjonering: 3 trinn
Tastaturknapp Servoposisjonering: I denne instruksjonsboken vil man kunne trykke på en knapp på tastaturet, og avhengig av hvilket tegn som ble trykket, vil servomotoren dreie en viss grad. Programmet vil løpe kontinuerlig hver gang en knapp trykkes
Hurtig og skittent tastatur (tomt tastatur): 3 trinn
Quick and Dirty Das Keyboard (Blank Keyboard): A Das Keyboard is the name of the most popular keyboard with no inscriptions on the keys (blank keyboard). Das -tastaturet selges for $ 89,95. Denne instruksen vil guide deg selv om du lager en selv med et gammelt tastatur du har liggende
Rengjøring av Apple Aluminium-tastatur . eller annet mykt tastatur: 5 trinn
Rengjøring av Apple Aluminiumstastatur …. eller annet mykt tastatur: Så rent som du eller jeg kan prøve å beholde våre eple-tastaturer i aluminium, blir de skitten etter et år eller så. Denne instruksen er å hjelpe deg med å rense den. Vær forsiktig, for jeg er ikke ansvarlig hvis tastaturet går i stykker mens du gjør dette …. SUKKER F