I keep getting this error and I don't know why.
mcpButtonState is an array, and I would like to change one of its values using a line like this:
mcpButtonState(thisPin) = 0;
(it's inside of a for loop looping trough all my pins). This is my complete code:
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h
#include <Wire.h>
#include "Adafruit_MCP23017.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
Adafruit_MCP23017 mcp;
int mcpButtonPins[] = {0,1,2,3,4};
int mcpButtonCount = 5;
int mcpButtonState[5];
int analogButtonPins[] = {0};
int analogButtonCount = 1;
int analogButtonState[1];
int potiPin = A2;
int soundVolume = 15;
void setup() {
mySoftwareSerial.begin(9600);
//Serial.begin(115200);
mcp.begin();
for (int thisPin = 0; thisPin < mcpButtonCount; thisPin++)
{
mcp.pinMode(thisPin, INPUT);
mcp.pullUp(thisPin, HIGH);
mcpButtonState(thisPin) = 0;
}
//ANALOG BUTTON SETUP
}
void loop() {
int potiValue = analogRead(potiPin);
int newVolume = (potiValue / 1023 * 30);
if(newVolume != soundVolume)
{
soundVolume = newVolume;
myDFPlayer.volume(soundVolume);
}
for (int thisPin = 0; thisPin < mcpButtonCount; thisPin++)
{
if(mcp.digitalRead(thisPin) == 0 and int mcpButtonState(thisPin) == 0)
{
mcpButtonState(thisPin) = 1;
myDFPlayer.play((thisPin + 1));
}
else if(mcp.digitalRead(thisPin) == 0 and int mcpButtonState(thisPin) == 1){}
else {
mcpButtonState(thisPin) = 0;
}
}
//ANALOG BUTTON PLAYING
}