Sadržaj:
- Korak 1: Povežite tastaturu
- Korak 2: Dodajte mikro servo
- Korak 3: Izmijenite kôd da biste koristili tastaturu na Servo -u
Video: Servo pozicioniranje s tastaturom: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
U ovom uputstvu ćemo kreirati projekt koji će kontrolirati Micro-Servo sa tastaturom koja radi sa Arduino Uno.
Korišteni materijali:
Arduino Uno
Breadboard
4x4 tastatura
Mikro-servo
Korak 1: Povežite tastaturu
Prva pomisao koju trebate učiniti je ožičenje razvodnika i uzemljenja na vašoj ploči s vašeg Arduina
- Priključite pin 5V na razvodnik (crveno)
- Priključite pin za uzemljenje (GND) na šinu za uzemljenje (plava)
Sada kada matična ploča ima snagu i je uzemljena, možemo početi ožičavati naše komponente.
Ožičenje tastature je jednostavno, ali morate uzeti u obzir iglice na tastaturi i arduinu. To će nam dobro doći kada skrenemo pažnju na naš kôd.
Ne zaboravite početi s lijeve strane kada koristite svoje žice!
- Prvi pin ide na 13
- Drugi pin ide na 12
- Treći pin ide na 11
- Četvrti pin ide na 10
- Peti pin na 9
- Šesti pin do 8
- Sedmi pin na 7
- Osmi pin na 6
Prilikom povezivanja tastature ne zaboravite držati digitalni pwm pin otvoren. Trebat će nam za mikro servo
Prije nego što dođemo do koda, provjerite jeste li instalirali biblioteku tastature. Može se pronaći na skici, zatim na kartici skice, uključujući biblioteku. Bez nje nećete moći da koristite tastaturu.
Sada se okrenimo kodu i uvjerimo se da tastatura radi i daje vrijednosti koje posjećuje
Brze napomene: Provjerite imate li if naredbu za provjeru tastature, inače neće raditi. Takođe budite oprezni sa kašnjenjima, oni će se petljati u dugmad koja se registruju sa tastature
#include
redovi bajtova const = 4; // četiri reda jer je tastatura puna
const byte kolone = 4; // četiri kolone, isto kao gore
dugmad char [redovi] [kolone] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
bajtni redP [redovi] = {13, 12, 11, 10}; // redne pinove tastature
bajtni stupciP [kolone] = {9, 8, 7, 6}; // pinovi stupaca tastature
Tastatura = tastatura (makeKeymap (dugmad), rowP, columnsP, redovi, kolone); // kreiranje tastature
void setup () {
Serial.begin (9600); }
void loop () {{100} {101}
char buttonPressed = pad.getKey (); // dobivamo znak sa tastature if (buttonPressed) // prikazuje koje dugme je pritisnuto na tastaturi {Serial.println (buttonPressed); }}
Korak 2: Dodajte mikro servo
Sada dodajmo servo motor. Ovaj je zaista lako dodati našem trenutnom projektu jer mikro server ima samo tri žice.
- Smeđa žica ide do uzemljenja na ploči
- Crveno ide do Power rail -a
- Narančasta ide na Pin 3 na Arduinu. Zapamtite da mikro server mora imati PWM pin na Arduinu. To je zbog servo korištenja TIMER2
Sada samo provjerimo da li smo mikro servo ožičili ispravno i da se kreće
#include #include "Servo.h"
redovi bajtova const = 4; // četiri reda jer je tastatura puna
const byte kolone = 4; // četiri kolone, isto kao gore
dugmad char [redovi] [kolone] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
bajtni redP [redovi] = {13, 12, 11, 10}; // redne pinove tastature
bajtni stupciP [kolone] = {9, 8, 7, 6}; // pinovi stupaca tastature
Tastatura = tastatura (makeKeymap (dugmad), rowP, columnsP, redovi, kolone); // kreiranje tastature
Servo strujaServo; // kreiranje servo objekta za upravljanje servo pogonom
// na većini ploča može se stvoriti dvanaest servo objekata
int pos = 0; // varijabla za spremanje servo pozicije
void setup () {
Serial.begin (9600); currentServo.attach (3); // priključuje servo na pin 9 na servo objekt
}
void loop () {{100} {101}
char buttonPressed = pad.getKey (); // dobijamo znak sa tastature if (buttonPressed) // prikazuje koje dugme je pritisnuto na tastaturi {Serial.println (buttonPressed); }
currentServo.write (95);
}
Korak 3: Izmijenite kôd da biste koristili tastaturu na Servo -u
Znajte da ćemo promijeniti kôd tako da se, kada pritisnemo određeno dugme na tastaturi, servo pomakne na određeni položaj. Prvo važna stvar. Servo pozicija za 0 je bila čudna. Pošto sam imao servo sa kontinuiranom rotacijom, kad god bi se približio 0, servo se počeo okretati. Broj koji sam stavio u kôd bio je najniži što sam mogao da uradim, a da se to ne dogodi. U svakom slučaju, evo mog konačnog koda:
#include #include
redovi bajtova const = 4; // četiri reda jer je tastatura puna
const byte kolone = 4; // četiri kolone, isto kao gore
dugmad char [redovi] [kolone] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
bajtni redP [redovi] = {13, 12, 11, 10}; // redne pinove tastature
bajtni stupciP [kolone] = {9, 8, 7, 6}; // pinovi stupaca tastature
Tastatura = tastatura (makeKeymap (dugmad), rowP, columnsP, redovi, kolone); // kreiranje tastature
Servo myServo; //
void setup () {
Serial.begin (9600); myServo.attach (5); // priključuje servo na pin 9 na servo objekt}
void loop () {{100} {101}
char ključ = pad.getKey (); // dobivamo char sa tipkovnice if (key == '0') {myServo.write (11); Serial.println ("0"); kašnjenje (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); kašnjenje (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); kašnjenje (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); kašnjenje (15); }
if (ključ == '4')
{myServo.write (48); Serial.println ("4"); kašnjenje (15); }
if (ključ == '5')
{myServo.write (60); Serial.println ("5"); kašnjenje (15); }
if (ključ == '6')
{myServo.write (72); Serial.println ("6"); kašnjenje (15); }
if (ključ == '7')
{myServo.write (84); Serial.println ("7"); kašnjenje (15); }
if (ključ == '8')
{myServo.write (96); Serial.println ("8"); kašnjenje (15); }
if (ključ == '9')
{myServo.write (108); Serial.println ("9"); kašnjenje (15); }
if (ključ == '*')
{myServo.write (120); Serial.println ("*"); kašnjenje (15); }
if (ključ == '#')
{myServo.write (132); Serial.println ("#"); kašnjenje (15); }
if (ključ == 'A')
{myServo.write (146); Serial.println ("A"); kašnjenje (15); }
if (ključ == 'B')
{myServo.write (158); Serial.println ("B"); kašnjenje (15); }
if (ključ == 'C')
{myServo.write (170); Serial.println ("C"); kašnjenje (15); }
if (ključ == 'D')
{myServo.write (180); Serial.println ("D"); kašnjenje (15); }}
Preporučuje se:
Moderan i nov i lakši primjer ormarića s Arduino Matrix tastaturom 4x4: 3 koraka
Moderan i nov i lakši primjer ormarića s Arduino matričnom tipkovnicom 4x4: Još jedan primjer korištenja matrice LCD tipkovnice 4x4 sa I2C krugom
Klavir sa tastaturom: 3 koraka
Klavir sa tastaturom: Ovaj vodič će pokazati kako stvoriti osnovni klavir sa 8 nota koristeći tastaturu 4x4 i pasivni zujalicu. U ovom projektu tipke od 1 do 8 svirat će note na klaviru, a tipke A-D će reproducirati unaprijed postavljene melodije
DoReMiQuencer - Programabilni MIDI sekvencer sa tastaturom: 7 koraka
DoReMiQuencer - Programabilni MIDI sekvencer sa tastaturom: Ovaj uređaj je stvoren za upotrebu sa VCVRack -om, virtualnim modularnim sintisajzerom koji je stvorio VCV, ali može poslužiti kao MIDI kontroler opće namjene. On služi kao MIDI sekvencer ili tastatura, ovisno o odabranom načinu rada. MIDI bilješke preslikane na ke
Korištenje Arduino Uno za XYZ pozicioniranje 6 DOF robotske ruke: 4 koraka
Korištenje Arduino Uno za XYZ pozicioniranje 6 DOF robotske ruke: Ovaj projekt govori o implementaciji kratke i relativno jednostavne Arduino skice za pružanje XYZ inverznog kinematičkog pozicioniranja. Napravio sam 6 servo robotsku ruku, ali što se tiče pronalaženja softvera za njeno pokretanje, nije bilo mnogo toga osim custa
Apple stalak za miš sa tipkovnicom/tastaturom: 4 koraka
Stalak za ogrtače od Apple-miša/tipkovnice: Imate li u svom ormaru nekoliko onih groznih Appleovih miš-pakova? Vrijeme je da napravite stalak za kapute. Vrijeme izgradnje je ~ 2 sata, plus vrijeme sušenja ljepila. Trebat će vam: dva paška miša dva komada klinova (1 do 1,5 inča, vaš izbor) četiri šrafa za drvo dva nosača