Ejemplo de programación de un semáforo con Echidna Shield y eBlock tanto en modo online como en modo compilado
Antes nos aseguramos de haber instalado el firmware que permite usar la placa en modo online
Sólo hay que cambiar el bloque inicial y subirlo a la placa
#include "eblock.h" void setup(){ Serial.begin(9600); echidna_led(13, 0); echidna_led(12, 0); echidna_led(11, 1); _delay(1); echidna_led(11, 0); for(int __i__=0;__i__<6;++__i__) { echidna_led(12, 2); _delay(0.5); } echidna_led(13, 1); } void loop(){ _loop(); } void _loop(){ echidna_buttons_events(); } 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 register_callback( uint8_t event, void (*in_main_func)() ){ e_event( event, in_main_func); } void _delay(float seconds){ long endTime = millis() + seconds * 1000; while(millis() < endTime)_loop(); }