Philippines
Offline
Newbie
Karma: 0
Posts: 29
|
 |
« on: December 16, 2012, 04:31:03 am » |
hi everyone  i need help im making my project with servo motors and waveshield. im having problem with waveshield when the servo motor is attach to arduino.. the sound is not working..  but when i remove the servo motors to my circuit the sounds work. i have 2 supply, one for servo motors and 1 for the whole circuit.. i used gizduino x arduino http://www.e-gizmo.com/KIT/gizDuino%20X.html and wave shield from ebay. http://www.ebay.com/itm/Wave-Sound-Shield-Module-V1-0-Arduino-Compatible-/270941553333?pt=LH_DefaultDomain_0&hash=item3f156002b5my source code // waveshield int RST = 3; int CLK = 9; int DAT = 8; // left repulsor int rightPin = 16; int ledPin = 6; int button = 0;
//Right repulsor int leftPin = 20; int ledPin2 = 4; int button2 = 0; //servo #include <Servo.h> //flaps int swpinservo = 22; Servo left; Servo right; //light int boosterled = 11;
//helm #include <Bounce.h> #define BUTTON 14 #define LED 13 Servo helmet; int ledValue = LOW; Bounce bouncer = Bounce( BUTTON, 5 );
void pew(){ //light dimming in analogWrite(ledPin, 5); delay(300); analogWrite(ledPin, 10); delay(300); analogWrite(ledPin, 15); delay(300); analogWrite(ledPin, 20); delay(300); analogWrite(ledPin, 25); delay(200); analogWrite(ledPin, 30); delay(200); analogWrite(ledPin, 35); delay(200); analogWrite(ledPin, 40); delay(200); analogWrite(ledPin, 45); delay(400); analogWrite(ledPin, 50); delay(300); analogWrite(ledPin, 255); delay(100); analogWrite(ledPin, 0); delay(100); analogWrite(ledPin, 255); delay(100);
analogWrite(ledPin,20); delay(200); }
void pewew(){ //light dimming out analogWrite(ledPin, 20); delay(300); analogWrite(ledPin, 18); delay(300); analogWrite(ledPin, 16); delay(300); analogWrite(ledPin, 14); delay(300); analogWrite(ledPin, 12); delay(300); analogWrite(ledPin, 10); delay(300); analogWrite(ledPin, ; delay(300); analogWrite(ledPin, 6); delay(300); analogWrite(ledPin, 4); delay(300); analogWrite(ledPin, 2); delay(300);
analogWrite(ledPin,0); }
void setup() { // wave shield pinMode(RST, OUTPUT); pinMode(CLK, OUTPUT); pinMode(DAT, OUTPUT); digitalWrite(RST, HIGH); digitalWrite(CLK, HIGH); digitalWrite(DAT, HIGH); digitalWrite(RST, LOW); delay(5); digitalWrite(RST, HIGH); delay(300);
// right repulsor pinMode(rightPin, INPUT); pinMode(ledPin, OUTPUT); digitalWrite(button, LOW); /* Set button initially as LOW */ //left repulsor pinMode(leftPin, INPUT); pinMode(ledPin2, OUTPUT); digitalWrite(button2, LOW); /* Set button initially as LOW */ //servo flaps left.attach(7); right.attach(5); pinMode(swpinservo, INPUT); pinMode(boosterled, OUTPUT); //status position left.write(128); right.write(44); //helmet pinMode(BUTTON,INPUT); pinMode(LED,OUTPUT); helmet.attach(1); helmet.write(0);
}
void loop() {
//right repulosr if(digitalRead(rightPin) == HIGH && button == 0){ delay(100); button = 1; //sound send(0x0001); delay(100); send(0xfff7); delay(600); //light pew(); send(0xfffe);// pause
} else if(digitalRead(rightPin) == LOW && button == 1){ button = 0; pewew(); send(0x0003); delay(350);
send(0xfff7);
} //left repulsor if(digitalRead(leftPin) == HIGH && button2 == 0){ delay(200); / button2 = 1; //sound send(0x0002); delay(100); //light analogWrite(ledPin2, 5); delay(100); analogWrite(ledPin2, 20); delay(100); analogWrite(ledPin2, 40); delay(100); analogWrite(ledPin2, 50); delay(100); analogWrite(ledPin2, 70); delay(100); analogWrite(ledPin2, 255); delay(100); analogWrite(ledPin2, 0); delay(100); analogWrite(ledPin2, 255); delay(100); analogWrite(ledPin2,60); //stop delay( 200); send(0xfff7);//set voice volumn to 7 delay(300); send(0xfffe);// pause
} else if(digitalRead(leftPin) == LOW && button2 == 1){ button2 = 0; analogWrite(ledPin2, 20); delay(100);
analogWrite(ledPin2, 12); delay(100);
analogWrite(ledPin2, 6); delay(100); analogWrite(ledPin2, 0);
} //------- air flaps function if (digitalRead(swpinservo) == HIGH) { delay(50); left.write(50); right.write(125); delay(200); digitalWrite(boosterled,HIGH); }
else{ left.write(128); right.write(44); digitalWrite(boosterled,LOW); } //--------------- helmet function if ( bouncer.update() ) { if ( bouncer.read() == HIGH) { if ( ledValue == LOW ) { delay(10); helmet.write(4); delay(700); ledValue = HIGH; } else { helmet.write(175); ledValue = LOW; } digitalWrite(LED,ledValue); } }
}
//function of wave shield data void send(int data) { digitalWrite(CLK, LOW); delay(2); for (int i=15; i>=0; i--) { delayMicroseconds(50); if((data>>i)&0x0001 >0) { digitalWrite(DAT, HIGH); //Serial.print(1); } else { digitalWrite(DAT, LOW); // Serial.print(0); } delayMicroseconds(50); digitalWrite(CLK, HIGH); delayMicroseconds(50); if(i>0) digitalWrite(DAT, LOW); else digitalWrite(DAT, HIGH); delayMicroseconds(50); if(i>0) digitalWrite(CLK, LOW); else digitalWrite(CLK, HIGH); } delay(20); } |
|