DIY 18 poort Servo Controller (verouderde) (1 / 2 stap)

Stap 1: Achtergrond/Prototype


In plaats van met behulp van een legitieme PWM heb ik een gehackte versie van het met een (3 daadwerkelijk) uitvoer vergelijken en een chip met perifere pin selecteren

omdat servo's (typicaly) tussen 1ms en 2ms werken, begrijp ja ik er zijn variaties op de werkelijke periode voor elke servo maar je krijgt het idee. het instellen is zodanig dat de uitvoer van de 3 compairs alleen op een specifieke pin voor 2ms zijn voordat ze worden verplaatst naar de volgende pin. deze cyclus gaat door tot er geen meer servo pennen links en vijanden aan een "dummy" staat, en vervolgens na de 20ms verstreken de systeem wordt opnieuw opgestart de servo-control. Ik heb onder staan die kan niet gezegd dat helemaal recht maar ohwell, slecht wat voorbeeldcode die laat zien hechten dat bedoel ik.

Ik heb 2 ontwerpen gepost, 1 op het breadboard was de orriginal bewijs van concept voordat ik ontwierp de Raad van bestuur

het uiteindelijke ontwerp vraagt om een 5v regelgever de servo's, en een 3v regelgever voor de pic24fj64gb004 en alles daartussen

=======================================================================================
Onderstaande code
=======================================================================================
VOID __attribute__ ((interrupt, no_auto_psv)) _T1Interrupt(void) / / 20ms
{
de begininstellingen voor een interrup inschakelen
clock2ms = 0;
initialiseren/Reset de 2ms timer
Init2msTimer();
_T2IF = 1;
_T1IF = 0; de interrupt-markering wissen
}

VOID __attribute__ ((interrupt, no_auto_psv)) _T2Interrupt(void) / / 2ms
{
0-5 vertegenwoordigen de 6 servo's per uitgang vergelijk pinnen
elk geval beweegt de uitvoer te vergelijken op de respectieve pinnen
Laat de servo-pin
de uitvoer vergelijk waarde ingesteld op servo curpos
standaard vertegenwoordigt dat alle 6 servo sets hebben zijn onderhouden en uitschakelen van de timer
/ * geval x:
* output vergelijken voor respectieve pin inschakelen
* inschakelen servo pin
* set output waarde vergelijken
-de uitschakelen van uitvoer vergelijken op voorgaande pin
*
*/

switch(clock2ms)
{
Case 0:
configureren van de pin
OC verplaatsen naar de servopp
S1G1PP = OC1_PPS;
S2G1PP = OC2_PPS;
S3G1PP = OC3_PPS;

Configureren van de OC
OC1CON1 = 0X0002;
OC2CON1 = 0X0002;
OC3CON1 = 0X0002;
laden van de waarde in het OC
OC1R = OneMs;
OC2R = OneMs + OneMs/2;
OC3R = 2 * OneMs;
breken;
Case 1:
S1G1PP = NO_OC;
S2G1PP = NO_OC;
S3G1PP = NO_OC;

configureren van de pin
OC verplaatsen naar de servopp
S1G2PP = OC1_PPS;
S2G2PP = OC2_PPS;
S3G2PP = OC3_PPS;

Configureren van de OC
OC1CON1 = 0X0002;
OC2CON1 = 0X0002;
OC3CON1 = 0X0002;
laden van de waarde in het OC
OC1R = OneMs;
OC2R = OneMs + OneMs/2;
OC3R = 2 * OneMs;
breken;
Case 2:
S1G2PP = NO_OC;
S2G2PP = NO_OC;
S3G2PP = NO_OC;

configureren van de pin
OC verplaatsen naar de servopp
S1G3PP = OC1_PPS;
S2G3PP = OC2_PPS;
S3G3PP = OC3_PPS;

Configureren van de OC
OC1CON1 = 0X0002;
OC2CON1 = 0X0002;
OC3CON1 = 0X0002;
laden van de waarde in het OC
OC1R = OneMs;
OC2R = OneMs + OneMs/2;
OC3R = 2 * OneMs;
breken;

standaard:
Verwijder de OC uit laatste servo-groep om het te gebruiken.
S1G3PP = NO_OC;
S2G3PP = NO_OC;
S3G3PP = NO_OC;
Disable2msTimer();

breken;
}

clock2ms ++;
_T2IF = 0; de interrupt-markering wissen
}

Gerelateerde Artikelen

Verwijder Servo Controller voor eindeloze beurt DIY project snel en eenvoudig

Verwijder Servo Controller voor eindeloze beurt DIY project snel en eenvoudig

Hier wordt getoond hoe te verwijderen een servo controller eindeloze beurt om mogelijk te maken.Gewoon kijken naar de video en geniet van
Stoom torentje Tank R/C PIC Servo Controller

Stoom torentje Tank R/C PIC Servo Controller

Een Microchip PIC-gebaseerde servo-controller biedt veel van de mogelijkheden van digitale servo's voor onder $9!De controllers vangen de r/c ontvanger output, optioneel manipuleren van de monsters en regenereren nieuwe servo besturingsseinen. Als zo
Arduino mini USB 24 kanaal servo controller boord

Arduino mini USB 24 kanaal servo controller boord

Arduino mini USB 24 kanaal servo controller boord gebruiken voor tweevoeter robot en kruipt robot controllerSteun van het meest recente Windows8 64 bit systeem, steun linuxsysteem (xp, vista, win7 ondersteuning)Dit is de onlangs bijgewerkte controlle
Seriële Servo Controller w/Arduino - controle tot 12 Servos tegelijk met behulp van de Arduino en een USB-verbinding

Seriële Servo Controller w/Arduino - controle tot 12 Servos tegelijk met behulp van de Arduino en een USB-verbinding

ik ga u laten zien hoe je Arduino gebruik maximaal 12 servo's tegelijk met minimale jitter control.  Met behulp van een eenvoudige seriële interface kunt u de positie van maximaal 12 servo kanalen.  Maximaal 10 momentopname posities kan worden opgesl
DIY Dome poort voor elke actiecamera

DIY Dome poort voor elke actiecamera

Hallo iedereen!In dit instructable cool ik ga u tonen hoe te maken van een Dome poort voor elke actie camera uitgaven slechts 1$. Het is een echt eenvoudig en snel project dat ongeveer één uur werk duurt (inbegrepen de saaie tijd die nodig is om te l
DIY 3D-Printer Servo Robot (BarnabasBot)

DIY 3D-Printer Servo Robot (BarnabasBot)

3D print je eigen kleine robot die kan worden aangedreven door 3 standaard 9 g hobby servo's. Dit is een geweldig hulpmiddel om kinderen kennismaken met robotica. U kunt uw robot met behulp van littleBits, Arduino, Raspberry PI, LEGO Mindstorms-- of
Beheersing van de servo's met behulp van de WS-32 Servo Controller en Arduino Uno

Beheersing van de servo's met behulp van de WS-32 Servo Controller en Arduino Uno

er zijn twee manieren via welke u kunt servo's een SSC-32 servo controller gebruikt. Je kunt het doen rechtstreeks vanuit de lynx WS-32 Terminal of via seriële opdrachten verzonden vanaf een arduino board. Hier, gaan we kijken hoe de controle van de
LED PWM met slimme Servo Controller

LED PWM met slimme Servo Controller

In deze demo ga ik u tonen hoe een kleur LED verbinden met de slimme Servo-Controller.De Smart Controller Servo kan hoge snelheid PWM-signalen die geschikt is voor het besturen van de LED's zijn output. Voor hoogvermogen LED's moet u transistoren of
Bouwen van een USB-6 servo controller

Bouwen van een USB-6 servo controller

Hallo, ik was op zoek naar een servo-controller en vond dit. Ik dacht dat anderen net als ik zou vinden het interessant zijn om te bouwen. Echter, zelfs niet proberen dit te doen indien u geen kennis in de bouw van circuitboards. Het is bassicly een
Arduino gebaseerde seriële servo-controller

Arduino gebaseerde seriële servo-controller

dit is een eenvoudige seriële controller voor meerdere servo's gebaseerd op de Arduino. (mijn eerste instructable ook :))Het meeste werk in dit vandaan krijgen van de software om te praten met de arduino en het maken van een protocol voor de gegevens
DIY externe poort Opener

DIY externe poort Opener

Ten eerste heeft uw poort te worden gemonteerd op een stevige post, omdat de kracht van de opener veel meer dan een statische poort is. Ik opteerde om te beton alle terminal berichten en maken hoeken aten de poort-gebied.OnderdelenLineaire Actuator (
Een Servo-Controller verwijderen

Een Servo-Controller verwijderen

servomotoren zijn erg leuk als u wilt gemakkelijk interface een motorreductor met een micro-controller. Nochtans, soms, u wilt een mooie beetje gericht motor en niet wilt worden gehinderd met controlecircuits om te rijden. Op momenten als dit is het
DIY Virtual DJ midi-controller voor USB-

DIY Virtual DJ midi-controller voor USB-

Hallo jongens, ik ben Gulshan Seetohul uit Mauritius eiland en in dit instructable zal u tonen hoe maak je een diy midi-controller voor virtual dj.Heb ik besloten om dit als midi (via usb en converter software)-controllers voor virtual dj... onbetaal
Gekoppelde LED-Servo-controller met behulp van Arduino

Gekoppelde LED-Servo-controller met behulp van Arduino

Hallo iedereen, dit is mijn eerste DIY-project met behulp van de Arduino en een intrede in de Gemeenschap van de maker. Sinds ik keek naar de TED video door Massimo Banzi, ik zat te wachten voor deze dag te publiceren mijn Arduino project. Dit is een