PING))) Per Arduino

Se è giusto quello che ho capito del tuo programma, la freqout ti permette di scrivere sul pin che ti interessa un "onda" quadra della frequenza e del tempo stabilito che ti interessa,se questo che ho capito è esatto allora non ci siamo molto con i valori dell'hperiod(non capisco assolutamente da dove viene fuori quel 500000) e dei cycles.
Se devi fare quello che ho capito io to serve una formula che dovresti saperla già: f = 1/T con frequenza e T il periodo (o ciclo per capirci in un clock la durata in tempo tra due fronti di salita).
con questa ti tiri fuori il tempo di un cliclo, lo dividi per 2 e ottieni il tempo del delay tra la scrittura di uno stato di uscita del pin. fai ciclare tutto per il "periodo" che gli passi alla funzione diviso per il peridodo dell'onda (T).
spero di essere d'aiuto.
un altro suggerimento: se non lo hai fatto di tua spontanea volontà stai attento nel loop() quando usi i primi tre if, se lo hai fatto perchè Ping_Around() possa essere eseguito 3 volte se IR1 e IR2 sono uguali a zero va bene, ma se devi escludere i casi ( entrambi zero, o uno solo dei due a zero) usa "else" altrimenti esegui cose che non vorresti.
spero di essere stato d'aiuto almeno in qualcosa.