Animatronic Singing Pumpkins (6 / 8 steg)
Steg 6: programmering
Okej, så inställningarna är nu komplett. Nu är det dags att göra dem prata. Kontrollera att du har både Arduino och Vixen installerat på din dator. Att veta grunderna i arduino språket hjälper mycket.Du kommer att behöva starta en Vixen profil speciellt för denna applikation. Jag föreslår 8 kanaler, som är vad.
En gång setup, justera programmet vinklar till din pumpor, som nämnts i mitt program. Standard är 45.
Här är det Program som jag kör, men känn dig fri att experimentera med din egen:
/*
Denna kod körs vixen via arduino, usining stift 3, 5 och 6 med
3 separata servon; stift 9, 10 och 11 används för 3 LED kretsar med PWM;
stift 12, 13 är extra digital stift.
*/
#include < Servo.h >
Servo Pumpkin1;
Servo Pumpkin2;
Servo Pumpkin3;
int pos = 0;
int KAN1 = 3; PWM-Servo 1
int KAN2 = 5; PWM-Servo 2
int Chan3 = 6; PWM-Servo 3
int Chan4 = 9; PWM-ljus 1
int Chan5 = 10; PWM-ljus 2
int Chan6 = 11; PWM-ljus 3
int Chan7 = 12; extra
int Chan8 = 13. extra
int jag = 0; Loop counter
int incomingByte [8]. matrisen att lagra 25 värdena från den seriella porten
int värde1;
int värde2;
int val3;
setup stiften / ingångar och utgångar
void setup()
{
Serial.BEGIN(9600); ställa in följetong på 9600 bps
pinMode (KAN1, OUTPUT);
Pumpkin1.attach(3);
pinMode (KAN2, OUTPUT);
Pumpkin2.attach(5);
pinMode (Chan3, OUTPUT);
Pumpkin3.attach(6);
pinMode (Chan4, OUTPUT);
pinMode (Chan5, OUTPUT);
pinMode (Chan6, OUTPUT);
pinMode (Chan7, OUTPUT);
pinMode (Chan8, OUTPUT);
}
void loop()
{/ / 8 kanaler kommer in till Arduino
om (Serial.available() > = 8) {
Läs den äldsta byten i följetong buffert:
för (int jag = 0; jag < 9; i ++) {
Läs varje byte
incomingByte [i] = Serial.read();
}
Pumpkin1
värde1 = incomingByte [0];
värde1 = karta (värde1, 0, 255, 0, 45); Ändra det sista numret enligt hur långt du vill pumpa att öppna.
Pumpkin1.write(val1);
Delay(15);
Pumpkin2
värde2 = incomingByte [1].
värde2 = karta (värde2, 0, 255, 0, 45); Ändra det sista numret enligt hur långt du vill pumpa att öppna.
Pumpkin2.write(val2);
Delay(15);
Pumpkin3
val3 = incomingByte [2].
val3 = karta (val3, 0, 255, 0, 45); Ändra det sista numret enligt hur långt du vill pumpa att öppna.
Pumpkin3.write(val3);
Delay(15);
analogWrite (Chan4, incomingByte[3]); Ljus 1
analogWrite (Chan5, incomingByte[4]); Ljus 2
analogWrite (Chan6, incomingByte[5]); Ljus 3
digitalWrite (Chan7, incomingByte[6]); Extras
digitalWrite (Chan8, incomingByte[7]); Extras
}
}