Go to Post I understand that I'm in the minority when it comes to these things, so when the coverage switches to one these stories I exercise my right to change the channel. - Karthik [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #1   Spotlight this post!  
Unread 27-04-2015, 21:43
VijayAT VijayAT is offline
Registered User
FRC #4901
 
Join Date: Apr 2015
Location: United States
Posts: 1
VijayAT is an unknown quantity at this point
Victor 888 by Arduino Uno R3

This is not an FRC or FIRST related project.

I'm using a Victor 888 and an Arduino Uno R3 to power a BAG motor through PWM. I'm using a FIRST battery.

I found this sample code on Arduino's forums:
#include <SoftwareServo.h>

SoftwareServo servo1;
SoftwareServo servo2;

void setup()
{
pinMode(9,OUTPUT);
servo1.attach(2);
servo1.setMaximumPulse(2200);
servo2.attach(4);
servo2.setMaximumPulse(2200);
Serial.begin(9600);
Serial.print("Ready");
}

void loop()
{
static int value = 0;
static char CurrentServo = 0;

if ( Serial.available()) {
char ch = Serial.read();
switch(ch) {
case 'A':
servo1.attach(2);
CurrentServo='A';
digitalWrite(13,LOW);
break;
case 'B':
servo2.attach(4);
CurrentServo='B';
digitalWrite(13,HIGH);
break;
case '0' ... '9':
value=(ch-'0')*20;
if (CurrentServo=='A')
{
servo1.write(value);
}
else if (CurrentServo=='B')
{
servo2.write(value);
}
break;
}
}
SoftwareServo::refresh();
}

and this from another Chief Delphi post:

//Simple VEX Pro Victor 888 Driver

unsigned short pin = 9;

signed int dutyCycle = 0;
unsigned int highus = 1500;
unsigned int lowus = 1000;

void setup() {
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
Serial.begin(9600);
}

void loop() {
digitalWrite(pin, HIGH);
delayMicroseconds(highus);
digitalWrite(pin, LOW);
delayMicroseconds(lowus);

if (Serial.available() > 0) {
highus = 5*Serial.parseInt() + 1500;
lowus = 1000;
Serial.print("DS: "+dutyCycle);
}
}

I have a VEX Pro VersaPlanetary 10:1 Gearbox and I need the motor to run at 600 RPM, so I can get 60 RPM from the gearbox. I've also looked through Arduino's servo library. Any advice?
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 01:44.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi