I got alot from radioshack, and rest of internet.
heres my code:
const int switchPin = 2; // switch connected to digital pin 2
int pot1 = 0; // pot1 connected to analog 0
int pot2 = 1; // pot2 connected to analog 1
int pot3 = 2; // pot3 connected to analog 2
int val1 = 0;
int val2 = 0;
int val3 = 0;
int motor1Pin = 5; // h bridge pin connected digital 5
int motor2Pin = 6; // h bridge pin connected to digital 6
int motor3Pin = 10; // hbridge pin connected to digital 10
int enablePin = 9; //h bridge enable pin connected to digital 9
int enablePin1 = 12; // hbridge enable pin connected to digital 12
void setup()
{
Serial.begin(9600);
pinMode(switchPin, INPUT);
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(enablePin, OUTPUT);
digitalWrite(enablePin, HIGH);
digitalWrite(enablePin1, HIGH);
}
void loop()
{
if (digitalRead(switchPin) == HIGH) {
val1 = analogRead(pot1);
val1 = map(val1, 0, 1023, 0, 255);
analogWrite(motor1Pin, val1);
Serial.print(val1);
Serial.print(" Motor 1: ");
val2 = analogRead(pot2);
val2 = map(val2, 0, 1023, 0, 255);
analogWrite(motor2Pin, val2);
Serial.print(val2);
Serial.print(" Motor 2: ");
val3 = analogRead(pot3);
val3 = map(val3, 0, 1023, 0, 255);
analogWrite(motor3Pin, val3);
Serial.println(val3);
Serial.print(" Motor 3: ");
}
else {
delay(1000);
analogWrite(motor1Pin, 100);
delay(2000);
analogWrite(motor1Pin, 124);
delay(2000);
analogWrite(motor2Pin, 100);
analogWrite(motor2Pin, 200);
analogWrite(motor3Pin, 155);
delay(2000);
analogWrite(motor1Pin, 200);
analogWrite(motor3Pin, 0);
analogWrite(motor2Pin, 167);
delay(2000);
analogWrite(motor3Pin, 0);
analogWrite(motor2Pin, 130);
analogWrite(motor1Pin, 180);
delay (2000);
analogWrite(motor3Pin, 109);
analogWrite(motor1Pin, 190);
analogWrite(motor2Pin, 205);
delay (2000);
analogWrite(motor1Pin, 115);
delay (100);
analogWrite(motor3Pin, 160);
analogWrite(motor1Pin, 0);
analogWrite(motor3Pin, 135);
delay (2000);
analogWrite(motor3Pin, 140);
analogWrite(motor2Pin, 200);
analogWrite(motor1Pin, 190);
delay (2000);
analogWrite(motor1Pin, 100);
analogWrite(motor2Pin, 0);
analogWrite(motor3Pin, 0);
delay(100);
analogWrite(motor2Pin, 152);
analogWrite(motor1Pin, 0);
analogWrite(motor3Pin, 115);
delay(100);
analogWrite(motor1Pin, 199);
analogWrite(motor2Pin, 140);
analogWrite(motor3Pin, 178);
delay(2000);
analogWrite(motor3Pin, 100);
analogWrite(motor1Pin, 0);
analogWrite(motor2Pin, 0);
delay(100);
analogWrite(motor1Pin, 240);
analogWrite(motor2Pin, 200);
analogWrite(motor3Pin, 120);
delay(2000);
analogWrite(motor1Pin, 170);
delay(100);
analogWrite(motor2Pin, 200);
analogWrite(motor3Pin, 130);
delay(2000);
analogWrite(motor1Pin, 0);
analogWrite(motor2Pin, 0);
analogWrite(motor3Pin, 0);
delay(100);
analogWrite(motor3Pin, 105);
analogWrite(motor2Pin, 105);
analogWrite(motor1Pin, 235);
delay(2000);
}
}
Now say If I get a certain affect with the state of the pots, I can read that value and implement it in the else {
.
Now i completely understand PWM.
Total cost I'm going to say about 100 bucks give or take alot I had
I bought my atmega chips for like 3 bux a piece
the box with motors from ap digital was 50
phr803t sled was 13
rckstr driver was like what 15?
aixiz module was like 5 bucks
roughly around 100 to build
an RGV version will be my next version if I can fit a board with relays etc to switch on/off the rgb lasers.
I still have enough PWM pins for upgrades... If I wanted I still could add another mirror/motor/pot.
So, thatd be 4 motors and mirrors with 4 pots
Eagle Layout: