I am using this setup for EMG control that involves a Grove LED Bar.
https://www.seeedstudio.com/blog/2019/12/27/what-is-emg-sensor-myoware-and-how-to-use-with-arduino/
#include <LED_Bar.h>
LED_Bar bar(9, 8);
int max_analog_dta = 300; // max analog data
int min_analog_dta = 100; // min analog data
int static_analog_dta = 0; // static analog data
// get analog value
int getAnalog(int pin)
{
long sum = 0;
for(int i=0; i<32; i++)
{
sum += analogRead(pin);
}
int dta = sum>>5;
max_analog_dta = dta>max_analog_dta ? dta : max_analog_dta; // if max data
min_analog_dta = min_analog_dta>dta ? dta : min_analog_dta; // if min data
return sum>>5;
}
void setup()
{
Serial.begin(115200);
long sum = 0;
for(int i=0; i<=10; i++)
{
for(int j=0; j<100; j++)
{
sum += getAnalog(A0);
delay(1);
}
bar.setLevel(10-i);
}
sum /= 1100;
static_analog_dta = sum;
Serial.print("static_analog_dta = ");
Serial.println(static_analog_dta);
}
int level = 5;
int level_buf = 5;
void loop()
{
int val = getAnalog(A0); // get Analog value
int level2;
if(val>static_analog_dta) // larger than static_analog_dta
{
level2 = 5 + map(val, static_analog_dta, max_analog_dta, 0, 5);
}
else
{
level2 = 5 - map(val, min_analog_dta, static_analog_dta, 0, 5);
}
// to smooth the change of led bar
if(level2 > level)
{
level++;
}
else if(level2 < level)
{
level--;
}
if(level != level_buf)
{
level_buf = level;
bar.setLevel(level);
}
delay(10);
}
There was no LED_Bar, so I went to the product Grove EMG Bar, the one mentioned to be purchased and went to their git library where their code is
#ifndef Grove_LED_Bar_H
#define Grove_LED_Bar_H
#include <Arduino.h>
enum LedType {
LED_TYPE_SHIFT = 16,
LED_BAR_10 = 0 << LED_TYPE_SHIFT | 10,
LED_CIRCULAR_24 = 0 << LED_TYPE_SHIFT | 24,
LED_MAX_COUNT = 0 << LED_TYPE_SHIFT | 24,
//LED_NEW_DEVICE = 1 << LED_TYPE_SHIFT | 10,
LED_TYPE_MASK = (1 << LED_TYPE_SHIFT) - 1, //indicated there at most 65535 leds
};
namespace Origin {
class LedDevice {
protected:
uint32_t pinClock;
uint32_t pinData;
uint32_t countOfShows;
LedType type;
bool reverseShow;
uint8_t led[LED_MAX_COUNT];
public:
LedDevice(uint32_t pinClock, uint32_t pinData, bool reverseShow, LedType type);
uint32_t countOfLed();
void send(uint16_t bits);
void send();
void reverse();
void latch();
};
}
class Grove_LED_Bar : Origin::LedDevice {
public:
Grove_LED_Bar(uint32_t pinClock, uint32_t pinData, bool greenToRed, LedType type) :
Origin::LedDevice(pinClock, pinData, greenToRed, type) {
}
void begin() {}
void setGreenToRed(bool greenToRed);
void setLevel(float level);
void setLed(uint32_t ledNo, float brightness);
void toggleLed(uint32_t ledNo);
void setBits(uint32_t value);
void setLedNum(uint32_t count);
uint32_t getBits();
};
#endif
so I changed the LED_Bar in the first script to
#include <Grove_LED_Bar.h>
Grove_LED_Bar (9, 8);
and it gives me the error
expected unqualified-id before numeric constant
not sure what to do