Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

ServoTimer2-bibliotheek gebruiken (eenvoudig uit te leggen) Servo Sweep

Componenten en benodigdheden

Servo's (Tower Pro MG996R)
× 1
Arduino UNO
× 1
Jumperdraden (algemeen)
× 1
UTSOURCE elektronische onderdelen
× 1

Over dit project

Inleiding

Ik heb onlangs geprobeerd een humanoïde robot te maken, wat betekent dat ik moet omgaan met servomotoren. Alles werkte net zo goed net voordat ik probeerde de robot te laten praten. Toen ik de TMRpcm-bibliotheek moest gebruiken. Maar er zijn bibliotheken zoals

#TMRpcm.h#VirtualWire.h 

zijn bibliotheken die de Timer1 van Arduino gebruiken. Het lijkt erop dat je niet twee apparaten tegelijk kunt gebruiken als ze allebei dezelfde timer gebruiken... Dus als mijn robot praat, werken de servo's niet. Omdat The Servo.h en de TMRpcm beide werken op Arduino TImer1. Wat een puinhoop is. Als je ze allebei wilt laten werken, moet je een andere bibliotheek voor servo's gebruiken. Wat is de ServoTimer2-bibliotheek? Dit gebruikt de Timer2 op Arduino... Helaas heb ik op internet geen tutorials gevonden om te begrijpen hoe deze ServoTimer2-bibliotheek echt werkt en hoe deze in code te gebruiken. Dus heb ik besloten om een ​​tutorial te maken zodat mensen zoals ik het beter kunnen begrijpen. We gebruiken één servomotor met deze bibliotheek en maken een eenvoudige servo-sweepcode

Je kunt de video bekijken om het beter te begrijpen.

Stap 1:Onderdelen en montage:

Het belangrijkste onderdeel is een servomotor.

Ik gebruik een micro-servo sg90, elk model is in orde.

Neem vervolgens een servo-arm zoals op foto 2 en lijm deze op een hard karton (dit is alleen om een ​​goede zichtbaarheid van de graad te krijgen) en voeg vervolgens de arm toe aan de servomotor zoals in foto 4.

Stap 2:Download en voeg de ServoTimer2-bibliotheek toe aan Arduino

Allereerst moet je de bibliotheek downloaden van hier https://github.com/nabontra/ServoTimer2 en deze in de Arduino-bibliotheekmap plakken.

Ga dan naar schets>bibliotheek opnemen>zip.bestand toevoegen vanuit de bibliotheekmap.

Nu ben je klaar om te gaan.

Stap 3:Bouw het eenvoudige circuit

Dit is het gemakkelijkste gedeelte

  • Servo rode draad naar Arduino vcc (5v)
  • grijs - Gnd
  • Oranje-digitaal 6

Stap 4:De code.

Voordat we de ServoTimer2-code leren kennen, kijken we terug naar de Servo.h-bibliotheek.

(de motor draait van 0 graden tot 90 graden - wacht 1 sec- en vervolgens tot 180 graden - wacht 1 sec)

#includeServo servo1;void setup() {servo1.attach(6); // plaats hier je setup-code om een ​​keer uit te voeren}void loop() { // plaats je hoofdcode hier, om herhaaldelijk uit te voeren:servo1.write(0);delay(1000);servo1.write(90);delay( 1000);servo1.write(180);vertraging(1000);} 

Zoals je in deze bibliotheek kunt zien, moesten we, als we een servo naar een bepaalde positie wilden draaien, gewoon de graad schrijven en de servo zou het prima doen. Maar in de ServoTimer2-bibliotheek moeten we de pulsbreedte van de servo schrijven en de servo gaat daarmee naar die positie. Meestal betekent 1500 90 graden. De maximale pulsbreedte is 2250 en het minimum is 750. Dat zou betekenen dat 750 voor 0 graden is en 2250 voor 180 graden. Maar laat me je vertellen, dit varieert van servo tot servo. Stuur gewoon uw waarden in en kijk wat er gebeurt. Maak je geen zorgen, dit zal je servomotor niet beschadigen of beschadigen.

Nu ga ik dezelfde code maken voor ServoTimer 2 en zo krijg je wat de verschillen zijn.

#include"ServoTimer2.h"ServoTimer2 servo1;void setup() {servo1.attach(6); }void loop() { // plaats hier je hoofdcode, om herhaaldelijk uit te voeren:servo1.write(750); // min pulsbreedte voor 0 graden vertraging (1000); servo1.write (1500); // pulsbreedte voor 90 graden vertraging (1000); servo1.write (2250); //max. pulsbreedte voor ongeveer 180 graden vertraging (1000);} 

Zet nu gewoon de Arduino aan en kijk met een gradenschaal voor welke waarde hoeveel de servo roteert. En door dit te doen, kunt u uw project laten slagen. Veel plezier met Making.o 2700 om het voor elkaar te krijgen.

Stap 5:Schakel de Arduino als laatste in en experimenteer

Zet nu gewoon de Arduino aan en kijk met een gradenschaal voor welke waarde hoeveel de servo roteert. En als u hiermee koopt, kunt u uw project laten slagen. Veel plezier met maken.

Code

  • Servo seep.code
  • ServoTimer2.sweep.code
Servo seep.codeC/C++
#includeServo servo1;void setup() {servo1.attach(6); // plaats hier je setup-code om een ​​keer uit te voeren}void loop() { // plaats je hoofdcode hier, om herhaaldelijk uit te voeren:servo1.write(0);delay(1000);servo1.write(90);delay( 1000);servo1.write(180);delay(1000);}
ServoTimer2.sweep.codeC/C++
#include"ServoTimer2.h"ServoTimer2 servo1;void setup() {servo1.attach(6); }void loop() { // plaats hier je hoofdcode, om herhaaldelijk uit te voeren:servo1.write(750); // min pulsbreedte voor 0 graden vertraging (1000); servo1.write (1500); // pulsbreedte voor 90 graden vertraging (1000); servo1.write (2250); //max. pulsbreedte voor ongeveer 180 graden vertraging (1000);}

Schema's

ServoTimer2.sweep.code
https://github.com/ashraf-minhaj/Arduino-ServoTimer2-basic-sweep-/tree/code-sweep

Productieproces

  1. Hoe gebruiken we molybdeen?
  2. Een functie gebruiken in VHDL
  3. Hoe maak je een Arduino+Raspberry Pi-robotplatform
  4. Simple Pi Robot
  5. Hoe maak je glasvezel
  6. realloc() Functie in C Library:Hoe te gebruiken? Syntaxis en voorbeeld
  7. free() Functie in C-bibliotheek:Hoe te gebruiken? Leer met voorbeeld
  8. Hoe gemakkelijk is het om een ​​thermistor te gebruiken?!
  9. Hoe maak je een Cutaway-animatie in Solidworks
  10. Hoe maak je een prototype?
  11. Hoe een snijmolen te gebruiken