Created
April 24, 2017 10:44
-
-
Save py4object/e2e9401db79e0790c8e84d87869495d4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Grove - EMG Sensor demo code | |
// This demo will need a Grove - Led Bar to show the motion | |
// Grove - EMG Sensor connect to A0 | |
// Grove - LED Bar connect to D8, D9 | |
// note: it'll take about serval seconds to detect static analog value | |
// when you should hold your muscle static. You will see led bar from level 10 turn to | |
// level 0, it means static analog value get ok | |
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); | |
// } | |
// | |
// } | |
// | |
// sum /= 1000; | |
// | |
// static_analog_dta = sum; | |
} | |
int level = 5; | |
int level_buf = 5; | |
void loop() | |
{ | |
int val = getAnalog(A0); // get Analog value | |
int level2; | |
// Serial.println("working"); | |
Serial.println(val); | |
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; | |
} | |
delay(10); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment