Sisukord:
- Samm: ühendage klaviatuur juhtmega
- Samm: lisage mikroservo
- Samm: muutke koodi, et kasutada servo klaviatuuri
Video: Servo positoneerimine klahvistikuga: 3 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
Selles juhendis loome projekti, mis juhib mikro-servot klaviatuuriga, mis töötab koos Arduino Unoga.
Kasutatud materjalid:
Arduino Uno
Leivalaud
4x4 klaviatuur
Mikroservo
Samm: ühendage klaviatuur juhtmega
Kõige esimene mõte, mida peate tegema, on ühendada Arduino toiteplaat ja maandusliin oma leivaplaadil
- Ühendage 5V pin toiteliiniga (punane)
- Ühendage maandusnõel (GND) maandusrööpaga (sinine)
Nüüd, kui leivaplaadil on võimsus ja see on maandatud, võime hakata komponente ühendama.
Klaviatuuri ühendamine on lihtne, kuid peate teadma klaviatuuri ja arduino nööpnõelad. See tuleb kasuks, kui pöörame tähelepanu oma koodile.
Ärge unustage juhtmete kasutamisel alustada vasakult!
- Esimene tihvt läheb 13 -le
- Teine tihvt läheb 12 -le
- Kolmas tihvt läheb 11 -le
- Neljas tihvt läheb 10 -le
- Viies tihvt 9 -ni
- Kuues pin 8 -ni
- Seitsmes pin kuni 7
- Kaheksas pin kuni 6
Klaviatuuri ühendamisel ärge unustage hoida digitaalset pwm -nööpi lahti. Me vajame seda mikroservo jaoks
Enne koodi juurde jõudmist veenduge, et olete klaviatuuri kogu installinud. Selle leiate oma visandist, seejärel vahekaardilt Eskiis, sealhulgas kogu. Ilma selleta ei saa te klaviatuuri kasutada.
Nüüd pöördume koodi poole ja veenduge, et klaviatuur töötab ja annab külastatud väärtused
Kiirmärkused: veenduge, et klaviatuuri kontrollimiseks on olemas if -avaldus, vastasel juhul see ei tööta. Olge ettevaatlik ka viivituste suhtes, sest need segavad klahvistikult registreeritud nuppe
#kaasake
const baidiridad = 4; // neli rida, kuna klahvistik on täis
const baidi veerud = 4; // neli veergu, sama nagu eespool
char nupud [read] [veerud] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
bait ridaP [read] = {13, 12, 11, 10}; // klaviatuuri rea nööpnõelad
baidiveerudP [veerud] = {9, 8, 7, 6}; // klahvistiku veergpoldid
Klaviatuuripadi = Klaviatuur (makeKeymap (nupud), rida P, veerudP, read, veerud); // klahvistiku loomine
tühine seadistus () {
Seriaalne algus (9600); }
void loop () {
char nupp Vajutatud = pad.getKey (); // võta sümbol klaviatuurilt, kui (buttonPressed) // näita, millist nuppu klahvistikul vajutati {Serial.println (buttonPressed); }}
Samm: lisage mikroservo
Nüüd lisame servomootori. Seda on meie praegusele projektile tõesti lihtne lisada, kuna mikroserveril on ainult kolm juhet.
- Pruun traat läheb leivaplaadi maandusrööpale
- Punane läheb Power rööpale
- Oranž läheb Arduino nööpnõelale 3. Pidage meeles, et mikroserveril peab Arduino peal olema PWM -pin. Selle põhjuseks on TIMER2 kasutav servo
Nüüd veenduge, et ühendasime mikroservo õigesti ja et see liigub
#sisalda #sisalda "Servo.h"
const baidiridad = 4; // neli rida, kuna klahvistik on täis
const baidi veerud = 4; // neli veergu, sama nagu eespool
char nupud [read] [veerud] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
bait ridaP [read] = {13, 12, 11, 10}; // klaviatuuri rea nööpnõelad
baidiveerudP [veerud] = {9, 8, 7, 6}; // klaviatuuri veergpoldid
Klaviatuuripadi = Klaviatuur (makeKeymap (nupud), rida P, veerudP, read, veerud); // klahvistiku loomine
ServovoolServo; // luua servoobjekt servo juhtimiseks
// enamikule tahvlitele saab luua kaksteist servo -objekti
int pos = 0; // muutuja servoasendi salvestamiseks
tühine seadistus () {
Seriaalne algus (9600); currentServo.attach (3); // kinnitab tihvti 9 servo servoobjekti külge
}
void loop () {
char nupp Vajutatud = pad.getKey (); // võta sümbol klaviatuurilt, kui (buttonPressed) // näita, millist nuppu klahvistikul vajutati {Serial.println (buttonPressed); }
currentServo.write (95);
}
Samm: muutke koodi, et kasutada servo klaviatuuri
Tea, et muudame oma koodi nii, et kui vajutame klahvistiku teatud nuppu, liigub servo teatud asendisse. Kõigepealt oluline asi. Servoasend 0 jaoks oli imelik. Kuna mul oli pideva pöörlemise servo, siis kui see jõudis 0 lähedale, hakkas servo lihtsalt pöörlema. Number, mille ma koodi sisestasin, oli nii madal kui võimalik, ilma et seda juhtuks. Igatahes, siin on minu viimane kood:
#kaasama #kaasama
const baidiridad = 4; // neli rida, kuna klahvistik on täis
const baidi veerud = 4; // neli veergu, sama nagu eespool
char nupud [read] [veerud] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
bait ridaP [read] = {13, 12, 11, 10}; // klaviatuuri rea nööpnõelad
baidiveerudP [veerud] = {9, 8, 7, 6}; // klaviatuuri veergpoldid
Klaviatuuripadi = Klaviatuur (makeKeymap (nupud), rida P, veerudP, read, veerud); // klahvistiku loomine
Servo myServo; //
tühine seadistus () {
Seriaalne algus (9600); myServo.attach (5); // kinnitab tihvti 9 servo servoobjektile}
void loop () {
char võti = pad.getKey (); // võta sümbol klaviatuurilt if (key == '0') {myServo.write (11); Serial.println ("0"); viivitus (15); } if (võti == '1') {myServo.write (12); Serial.println ("1"); viivitus (15); } if (võti == '2') {myServo.write (24); Serial.println ("2"); viivitus (15); } if (võti == '3') {myServo.write (36); Serial.println ("3"); viivitus (15); }
kui (võti == '4')
{myServo.write (48); Serial.println ("4"); viivitus (15); }
kui (võti == '5')
{myServo.write (60); Serial.println ("5"); viivitus (15); }
kui (võti == '6')
{myServo.write (72); Serial.println ("6"); viivitus (15); }
kui (võti == '7')
{myServo.write (84); Serial.println ("7"); viivitus (15); }
kui (võti == '8')
{myServo.write (96); Serial.println ("8"); viivitus (15); }
kui (võti == '9')
{myServo.write (108); Serial.println ("9"); viivitus (15); }
kui (võti == '*')
{myServo.write (120); Serial.println ("*"); viivitus (15); }
kui (võti == '#')
{myServo.write (132); Serial.println ("#"); viivitus (15); }
kui (võti == 'A')
{myServo.write (146); Serial.println ("A"); viivitus (15); }
kui (võti == 'B')
{myServo.write (158); Serial.println ("B"); viivitus (15); }
kui (võti == 'C')
{myServo.write (170); Serial.println ("C"); viivitus (15); }
kui (võti == 'D')
{myServo.write (180); Serial.println ("D"); viivitus (15); }}
Soovitan:
Ühe nupuga servo vedrustuse lukustus: 3 sammu
Ühe nupuga servovedrustuse lukustus: täisvedrustusega mägirattad tagavad sujuva sõidu, kuid nõuavad sageli ülesmäge pedaalimisel vedrustuse lukustamist. Vastasel korral surub vedrustus pedaalidel seistes kokku, raisates seda vaeva. Jalgrataste tootjad teavad seda ja pakuvad
Interneti -servo: 3 sammu
Internet Servo: SISSEJUHATUS Mulle meeldib oma aias linde toita, kuid kahjuks kasutab ka must rott seda ära. Nii et ma mõtlesin välja viisi, kuidas rottidel lindude toitu mitte süüa. Must rott on aktiivne ainult pimedas, nii et peame bi sulgema
Heliandur ja servo: reaktiivne liikumine: 4 sammu
Heliandur ja servo: reaktiivne liikumine: kõigepealt peate selle vooluahela kokkupanemiseks kokku koguma asjakohased materjalid
Servo robotkäepide: 4 sammu
Servo Robot Arm: See on lihtne servobotti käsi, mis suudab objekte üles võtta ja paigutada selleks ettenähtud kohta. See projekt võtab kokkupanekuks suurema osa ajast, kuna on oluline veenduda, et käsi on stabiilne ja võimeline täitma ülesandeid ilma
Hack Your Servo V1.00 - muutke oma servo võimsaks lineaarseks ajamiks: 7 sammu
Hack Your Servo V1.00 - muutke oma servo võimsaks lineaarseks ajamiks: tingimusel, et teil on tööriistad ja servo, saate selle paari dollari eest ehitada. Täiturmehhanism ulatub kiirusega umbes 50 mm/min. See on üsna aeglane, kuid väga võimas. Vaadake minu videot postituse lõpus, kus väike ajam