El objetivo es usar los conectores inferiores de EchidnaShield tocándolos con los dedos a modo de piano para que suene una nota musical diferente y cambien las luces RGB .
Nota: Poner el interruptor en la posición "MKMK"
Usando eBlock puedes ejecutar el siguiente código sin realizar ningún cambio extra tanto en modo online ( necesario actualizar el firmware ) como subiéndolo a la placa.

#include "eblock.h"
void whenPin_A0(uint8_t evt);
void whenPin_A1(uint8_t evt);
void whenPin_A2(uint8_t evt);
void whenPin_A3(uint8_t evt);
void whenPin_A4(uint8_t evt);
void whenPin_A5(uint8_t evt);
void setup(){
Serial.begin(9600);
register_callback(5, whenPin_A0);
register_callback(6, whenPin_A1);
register_callback(7, whenPin_A2);
register_callback(8, whenPin_A3);
register_callback(9, whenPin_A4);
register_callback(10, whenPin_A5);
}
void loop(){
_loop();
}
void _loop(){
echidna_buttons_events();
echidna_pins_events();
}
void whenPin_A0(uint8_t evt)
{
e_pwm(9,100);e_pwm(5,0);e_pwm(6,0);
tone(10, 65,500);
}
void whenPin_A1(uint8_t evt)
{
e_pwm(9,200);e_pwm(5,0);e_pwm(6,0);
tone(10, 73,500);
}
void whenPin_A2(uint8_t evt)
{
e_pwm(9,0);e_pwm(5,100);e_pwm(6,0);
tone(10, 82,500);
}
void whenPin_A3(uint8_t evt)
{
e_pwm(9,0);e_pwm(5,200);e_pwm(6,0);
tone(10, 87,500);
}
void whenPin_A4(uint8_t evt)
{
e_pwm(9,0);e_pwm(5,0);e_pwm(6,100);
tone(10, 98,500);
}
void whenPin_A5(uint8_t evt)
{
e_pwm(9,0);e_pwm(5,0);e_pwm(6,200);
tone(10, 123,500);
}
void echidna_led(uint8_t pin, uint8_t state ){
if(pin==0){ //ALL pins
e_pin_set(11,state);
e_pin_set(12,state);
e_pin_set(13,state);
}else{
e_pin_set(pin,state);
};
}
void echidna_buttons_events(){
if( e_is_button_down(2) ) e_event_call(1);
if( e_is_button_up(2) ) e_event_call(2);
if( e_is_button_down(3) ) e_event_call(3);
if( e_is_button_up(3) ) e_event_call(4);
}
void echidna_pins_events(){
e_touch_level( 600 );
if( e_touching(A0) ) e_event_call(5);
if( e_touching(A1) ) e_event_call(6);
if( e_touching(A2) ) e_event_call(7);
if( e_touching(A3) ) e_event_call(8);
if( e_touching(A4) ) e_event_call(9);
if( e_touching(A5) ) e_event_call(10);
}
void register_callback( uint8_t event, void (*in_main_func)() ){
e_event( event, in_main_func);
}