Min Halloween ljusshow (4 / 4 steg)
Steg 4: Programvara och Arduino kod
#define NCH 5 / / ändra detta: summan av pwm och digital stift (antal kanaler från vixen)
#define NPWM 3 / / ändra detta: antalet PWM stift du använder
#define NDIG 2 / / ändra detta: antalet digitala stift du använder... göra säker NPWM + NDIG = NCH
int stift [NCH] = {3,5,6, 2,4}; ÄNDRA detta för din fysiska stift... pwm först sedan normal digital stift (set för UNO för närvarande)
int data [NCH]; att buffra inkommande data
void setup()
{
Serial.BEGIN(38400); ÄNDRA detta: för olika seriell snabbar på Vixen
för (int jag = 0; jag < NCH; i ++) pinMode (stift [i], produktionen);
}
void readSerialBuffer() {för (int jag = 0; jag < NCH; i ++) data [i] = Serial.read();}
void outputToPins() {
för (int jag = 0; jag < NPWM; i ++) analogWrite (stift [i], data[i]); första pwm
för (int jag = NPWM; jag < NCH; i ++) / / nu digitala utgångar
om (data [i] < 127) digitalWrite (stift [i], låg); annat digitalWrite (stift [i], hög);
}
void loop()
{
om (Serial.available() > = NCH) {
readSerialBuffer();
outputToPins();
}
}
Jag var tvungen att se till det exakta antalet kanaler jag skulle använda i Vixen är setup i skissen. Jag hade också att se till att överföringshastigheten matchat på Vixen och Arduino skiss. Jag hade Vixen utdata till Arduino via generiska seriell utgången. Slutligen hade jag att se till att den seriella produktionen matchade den seriella porten på Arduino.