erreur dans un code - besoin d'aide!

Bonjour, je suis vraiment tout nouveau et cherche à faire fonctionner une arduino mega pour faire un genre de batterie électronique. (12 capteurs piezo sur les entrées analogiques pour déclancher 12 notes midi)

J'ai trouvé ce code, mais il y a une erreur (Arduino : 1.8.5 (Mac OS X), Carte : "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

TEST_03_XYLOPHONE_FOR_TABLE:11: error: too many initializers for 'char [6]'
'A0','A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11'};
^
exit status 1
too many initializers for 'char [6]'

S'il y avait une âme charitable qui voulait se pencher sur mon problème ... ! Par avance merci !!! :slight_smile:

J'utilise 12 capteurs piezos sur les entrées analogique servant à "déclancher" 12 notes midi. les piezos ont une résistance de 1MΩ en parallèle.

voici le code complet:

//Xylophone
//Adapted for an ArduinoMega
//from Jenna deBoisblanc and Spiekenzie Labs initial code

//*******************************************************************************************************************
// User settable variables
//*******************************************************************************************************************

int pinRead;
char pinAssignments[6] ={
'A0','A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11'};
byte PadNote[16] = {
57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72}; // MIDI notes from 0 to 127 (Mid C = 60)
int PadCutOff[16] =
{
400,400,200,800,400,400,400,400,400,400,400,400,400,400,400,400}; // Minimum Analog value to cause a drum hit
int MaxPlayTime[16] = {
90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90}; // Cycles before a 2nd hit is allowed
#define midichannel 1; // MIDI channel from 0 to 15 (+1 in "real world")
boolean VelocityFlag = true; // Velocity ON (true) or OFF (false)

//*******************************************************************************************************************
// Internal Use Variables
//*******************************************************************************************************************
boolean activePad[16] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // Array of flags of pad currently playing
int PinPlayTime[16] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // Counter since pad started to play
byte status1;

int pin = 0;
int hitavg = 0;
//*******************************************************************************************************************
// Setup
//*******************************************************************************************************************
void setup()
{
Serial.begin(57600); // connect to the serial port 115200

}
//*******************************************************************************************************************
// Main Program
//*******************************************************************************************************************
void loop()
{
for(int pin=0; pin < 16; pin++) //
{
//int pin = 3;
// for (pinRead=0; pinRead < 16, pin++){
hitavg = analogRead(pinAssignments[pin]);
//Serial.println(hitavg);
// read the input pin

if((hitavg > PadCutOff[pin]))
{
if((activePad[pin] == false))
{
if(VelocityFlag == true)
{
// hitavg = 127 / ((1023 - PadCutOff[pin]) / (hitavg - PadCutOff[pin])); // With full range (Too sensitive ?)
hitavg = (hitavg / 8) -1 ; // Upper range
}
else
{
hitavg = 127;
}
MIDI_TX(144,PadNote[pin],hitavg); //note on

PinPlayTime[pin] = 0;
activePad[pin] = true;
}
else
{
PinPlayTime[pin] = PinPlayTime[pin] + 1;
}
}
else if((activePad[pin] == true))
{
PinPlayTime[pin] = PinPlayTime[pin] + 1;
if(PinPlayTime[pin] > MaxPlayTime[pin])
{
activePad[pin] = false;
MIDI_TX(144,PadNote[pin],0);
}
}
}
}

//*******************************************************************************************************************
// Transmit MIDI Message
//*******************************************************************************************************************
void MIDI_TX(byte MESSAGE, byte PITCH, byte VELOCITY)
{
status1 = MESSAGE + midichannel;
Serial.write(status1);
Serial.write(PITCH);
Serial.write(VELOCITY);

}

Kooghar:
Bonjour,

'soir
Lire/comprendre çà
et y remédier rapidement :grin:

avant le bakapoubel

(tic... tac...)

je dirai même plus...... lire ça pour savoir comment présenter le code dans les messages

Il y a un smiley dans votre code....

Sinon le compilateur vous a donné le problème:

error: too many initializers for 'char [6]'
'A0','A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11'};

Et même le numéro de la ligne incriminée (11)...

Si vous êtes paresseux, vous pouvez retirer le 6 de

 char pinAssignments[6] ={
  'A0','A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11'};

ce qui vous donnera

 char pinAssignments[] ={
  'A0','A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11'};

(C++ est assez malin pour bien dimensionner les tableaux d'après les valeurs initiales).
Il subsiste au moins un loup:
si c'est une correspondance entre des touches et 16 notes, le compte n'est pas bon
si ce sont des références à des entrées analogiques, je ne mettrais pas de quotes '
si ce sont des charactères, la simple quote ' désigne un caractère, pas deux

Le compte n'est vraiment pas bon....
et vous devriez mettre erreur au pluriel dans votre titre....(et mettre ce code entre balises, comme déjà indiqué, pour que des yeux charitables puissent saisir les défauts dans toute leur ampleur)