Saltatu nabigazioa

Neurgailuen trataera

KOP lengoaia kontaktuen arteko erlazioak definitzeko oso egokia da (HIGH/LOW) baina, zer egin behar dugu sarrera analogikoekin?

Gure kasuan, distantziaren neurketa zenbaki oso bat izango da (cm-tan) eta jakin behar duguna zera da: distantzia minimotik gora ala behera dago? Horretarako barne marka bat definituko dugu robotaren sentsore bakoitzarentzat eta funtzio bat programatuko dugu marka horien balioak ezartzeko. Distantzia mugatik behera badago, HIGH egoeran jarriko dugu eta bestela LOW.

long distR; // Distantzia
long distL; // Distantzia

#define dist_min 8  // cm-tan

unsigned int oztopoaR = LOW;  // Aldagai hau HIGH izango da oztopo bat gertu badago (dist_min baino gertuago)
unsigned int oztopoaL = LOW;  // Aldagai hau HIGH izango da oztopo bat gertu badago (dist_min baino gertuago)

void IrakurriDistantziak()
{
  distR = ultrasonicR.Ranging(CM);
  distL = ultrasonicL.Ranging(CM);

  if (distR <= 8 )
    oztopoaR = HIGH;
  else
    oztopoaR = LOW;
  
  if (distL <= 8 )
    oztopoaL = HIGH;
  else
    oztopoaL = LOW;
}