Das letzte bestehende Problem meiner einstigen Frage ist nun gelöst.
Ich habe Elco angeschrieben. Die OnebyOne ist nur eine Demofunktion um die Reihenfolge der Ausgänge zu testen. PinGrouping wird hierbei nicht gesetzt.
Ich habe nun ein kleines Problem, ich denke, ich hab irgendwo nur wieder ein Zeichen verpatzt.
Die Funktion ohne das Switch funktioniert, jedoch wollte ich nun verschiedene Komibination mit dem Blinklicht erzeugen.
rgbModus[] soll die Werte aus der Switch Anweisung erhalten.
// RGB Shift Register
#include <ShiftPWM.h>
// Folgende 3 Zeilen auskommentieren,
// wenn die SPI Schnittstelle nicht genutzt werden soll.
//#define SHIFTPWM_NOSPI
//const int ShiftPWM_dataPin = 11;
//const int ShiftPWM_clockPin = 13;
const int ShiftPWM_latchPin = 8;
const bool ShiftPWM_invertOutputs = false;
const bool ShiftPWM_balanceLoad = false;
unsigned char maxHelligkeit = 255;
unsigned char pwmFrequenz = 75;
unsigned int numRegister = 3;
unsigned int numAusgaenge = numRegister * 8;
unsigned int numRgbLeds = numRegister * 8 / 3;
void setup() {
// RGB Shift Register
ShiftPWM.SetAmountOfRegisters(numRegister);
ShiftPWM.SetPinGrouping(4);
ShiftPWM.Start(pwmFrequenz, maxHelligkeit);
Serial.begin(9600);
delay(1000);
Serial.println("Arduino gestartet");
}
void loop() {
static int i;
if(Serial.available())
{
i = Serial.parseInt();
Serial.println(i);
}
blinklicht(100, i);
}
//Subfunktionen
void blinklicht(unsigned long wartezeit, unsigned int modus) {
unsigned long aktuelleZeit = millis();
static unsigned long vorherigeZeit;
static int j;
int rgbModus;
switch(modus) {
case 0:
rgbModus[] = {
0, 2, 4, 6, 1, 3, 5, 7 }; // RB RB RB RB
break;
case 1:
rgbModus[] = {
1, 3, 5, 7, 0, 2, 4, 6 }; // BR BR BR BR
break;
case 2:
rgbModus[] = {
0, 1, 4, 5, 2, 3, 6, 7 }; // RR BB RR BB
break;
case 3:
rgbModus[] = {
2, 3, 6, 7, 0, 1, 4, 5 }; // BB RR BB RR
break;
case 4:
rgbModus[] = {
0, 1, 2, 3, 4, 5, 6, 7 }; // RR RR BB BB
break;
case 5:
rgbModus[] = {
4, 5, 6, 7, 0, 1, 2, 3 }; // BB BB RR RR
break;
case 6:
rgbModus[] = {
2, 3, 4, 5, 0, 1, 6, 7 }; // BB RR RR BB
break;
case 7:
rgbModus[] = {
0, 1, 6, 7, 2, 3, 4, 5 }; // RR BB BB RR
break;
default:
modus = 0;
}
if(aktuelleZeit - vorherigeZeit > wartezeit) {
j = 1;
if(aktuelleZeit - vorherigeZeit > wartezeit * 2) {
j = 0;
vorherigeZeit = aktuelleZeit;
}
}
if(j == 1)
{
for(int k = 0; k < 4; k++) ShiftPWM.SetRGB(rgbModus[k], 255, 0, 0);
for(int k = 4; k < 8; k++) ShiftPWM.SetRGB(rgbModus[k], 0, 0, 0);
}
else
{
for(int k = 0; k < 4; k++) ShiftPWM.SetRGB(rgbModus[k], 0, 0, 0);
for(int k = 4; k < 8; k++) ShiftPWM.SetRGB(rgbModus[k], 0, 0, 255);
}
}
sketch_aug22a.ino: In function 'void blinklicht(long unsigned int, unsigned int)':
sketch_aug22a:52: error: expected primary-expression before ']' token
sketch_aug22a:52: error: expected primary-expression before '{' token
sketch_aug22a:52: error: expected `;' before '{' token
sketch_aug22a:56: error: expected primary-expression before ']' token
sketch_aug22a:56: error: expected primary-expression before '{' token
sketch_aug22a:56: error: expected `;' before '{' token
sketch_aug22a:60: error: expected primary-expression before ']' token
sketch_aug22a:60: error: expected primary-expression before '{' token
sketch_aug22a:60: error: expected `;' before '{' token
sketch_aug22a:64: error: expected primary-expression before ']' token
sketch_aug22a:64: error: expected primary-expression before '{' token
sketch_aug22a:64: error: expected `;' before '{' token
sketch_aug22a:69: error: expected primary-expression before ']' token
sketch_aug22a:69: error: expected primary-expression before '{' token
sketch_aug22a:69: error: expected `;' before '{' token
sketch_aug22a:73: error: expected primary-expression before ']' token
sketch_aug22a:73: error: expected primary-expression before '{' token
sketch_aug22a:73: error: expected `;' before '{' token
sketch_aug22a:78: error: expected primary-expression before ']' token
sketch_aug22a:78: error: expected primary-expression before '{' token
sketch_aug22a:78: error: expected `;' before '{' token
sketch_aug22a:82: error: expected primary-expression before ']' token
sketch_aug22a:82: error: expected primary-expression before '{' token
sketch_aug22a:82: error: expected `;' before '{' token
sketch_aug22a:100: error: invalid types 'int[int]' for array subscript
sketch_aug22a:101: error: invalid types 'int[int]' for array subscript
sketch_aug22a:105: error: invalid types 'int[int]' for array subscript
sketch_aug22a:106: error: invalid types 'int[int]' for array subscript