Stap 4: Software en Arduino Code
#define NCH 5 / / dit veranderen: de som van de pwm en digitale pins (aantal kanalen van de "Vixen")
#define NPWM 3 / / dit wijzigen: het aantal PWM pins u gebruiken
#define NDIG 2 / / dit veranderen: het aantal digitale pennen u... Zorg ervoor dat NPWM + NDIG = NCH
int pinnen [NCH] = {3,5,6, 2,4}; DIT wijzigen voor uw fysieke PINNEN... pwm eerste dan normale digitale pinnen (set voor UNO momenteel)
int gegevens [NCH]; buffer van binnenkomende gegevens
VOID Setup
{
Serial.begin(38400); ALTER dit: voor verschillende seriële snelheden op de "Vixen"
for (int i = 0; ik < NCH; i ++) pinMode (pinnen [i], OUTPUT);
}
VOID readSerialBuffer() {voor (int i = 0; ik < NCH; i ++) gegevens [i] = Serial.read();}
ongeldig outputToPins() {}
for (int i = 0; ik < NPWM; i ++) analogWrite (pins [i], data[i]); eerste pwm
for (int i = NPWM; ik < NCH; i ++) / / nu digitale uitgangen
Als (gegevens [i] < 127) digitalWrite (pinnen [i], laag); anders digitalWrite (pinnen [i], hoge);
}
void loop
{
Als (Serial.available() > = NCH) {}
readSerialBuffer();
outputToPins();
}
}
Ik moest ervoor zorgen dat het exacte aantal kanalen die ik was van plan om te gebruiken in de "Vixen" is ingesteld in de schets. Ik had ook om ervoor te zorgen dat de Baud-rate gematched op de "Vixen" en de Arduino schets. Ik had de "Vixen" output naar de Arduino via de generieke seriële uitgang. Tot slot had ik om ervoor te zorgen dat de uitgang voor seriële gematched de seriële poort van de Arduino.