bien, para poder usar el sensor de ultrasonido remplaza esto desde el visor de codigo fuente de icaro (todavia no hice un bloque para esto):
#include <stdlib.h>
#include <string.h>
#ifndef __USB__
void epap_in() { return; }
void epap_out() { return; }
void epapin_init() { return; }
void epapout_init() { return; }
#endif
#define Trig 8 //Defino el terminal 8 como trigger o disparador
#define Echo 9 //Defino el 9 como el de recepcion del eco
int Dato;//Dato sin procesar equivalente a la distancia a medir en centimetros
void setup(){
pinmode(Trig, OUTPUT);//Disparador como salida
pinmode(Echo, INPUT);//Eco como entrada
Dato=0;//Inicio dato en 0
TRISB=0;//Configuro puerto B como salida
}
int ping()
{
Dato=0;
//Pin del eco en bajo
while (digitalread(Echo) == LOW)
{
digitalwrite(Trig, HIGH);//Activa el disparador
Delayus(50);//Espera 50 microsegundos (minimo 10)
digitalwrite(Trig, LOW);//Desactiva el disparador
}
//Pin de eco en alto hasta que llegue el eco
while (digitalread(Echo) == HIGH)
{
Dato++;//El contador se incrementa hasta llegar el eco
Delayus(58);//Tiempo en recorrer dos centimetros 1 de ida 1 de vuelta
}
return Dato;
}
void loop() {
PORTB=ping(); //manda todo el valor al puerto B
}
para conectarlo físicamente a la placa, tenes que usar el pin de datos del servo_4 y servo_5 (servo_4= trigger y servo_5=echo). podes aprovechar la alimentación de los pines para servos.
todavia no lo transforme en un bloque de icaro, por que queria armar mejor la función, pero anda perfecto :-D