Sharp GP2Y0A41SK0F és GP2Y0A21SK0F szenzor használata

Sharp GP2Y0A41SK0F és GP2Y0A21SK0F analóg, infra távolságmérő szenzorok 4-40cm az első valamint 10-80cm távolságig működik az utóbbi. Arduinoval nagyon könnyen használható egyetlen analóg bemenet szükséges hozzá. Pontossága +-2cm. Akadály kerülő robot készítéséhez alkalmas, vagy egyéb fotocellás alkalmazásokhoz. Kezdőknek ajánlom pofonegyszerű használata miatt.

Bekötés:

A szenzor 3 lábbal rendelkezik, általában egy 20cm vezetékkel jön az egyik végén csatlakozóval.

1.(sárga vezeték) jel – Arduino A0 bemenetére (vagy egyéb analóg bementre)

2.(fekete vezeték)test – GND

3.(piros vezeték) +5V – +5V

Program:

Használni nagyon egyszerű, ezért is ajánlom kezdőknek. Akár több darabot is csatlakoztathatsz belőle egyetlen Arduinohoz. (analóg bemenetek számától függően)

 int  szenzor = A0; //szenzor bemenet
 int tavolsag;

void setup() {
          Serial.begin(9600); // soros port be
}
void loop(){

         tavolsag=meres(szenzor); //mérés funkció meghívása
//megjegyzés: vedd több mérés átlagát ha nagy pontosságot szeretnél
         Serial.println(tavolsag);//távplság kiíratás
         delay(1000);//lassítás másodpercenként 1 mérés

}

 //távolság a szenzortól funkció
int meres(int x){
   float volt = analogRead(x)*0.0048828125;  //szenzor értéke * (5/1024)
   if(volt==0){ //a szenzor sem tökéletes
               volt=1;
              }
  /////////////////////GP2Y0A41SK0F szenzor esetén 4-40cm/////////////////////
  //másik szenzor esetén ezt a kódrészletet távolítsd el
   int t2 = 13*pow(volt, -1); //szenzor adatlap alapján a távolság számítása 
   
   if(t2>40 ){ //ne kapjunk furcsa értékeket ha 40cm távolság felett van az érzékelendő tárgy

              t2=40;
             }
/* //////////////GP2Y0A21YK0F szenzor esetén 10-80cm//////////////
//másik szenzor esetén ezt a kódrészletet távolítsd el
 int t2 = 29.988*pow(volt, -1.173); //szenzor adatlap alapján a távolság számítása 
   
   if(t2>80 ){ //ne kapjunk furcsa értékeket ha 40cm távolság felett van az érzékelendő tárgy

              t2=80;
             }
*/

return t2; //eredmény visszaadása
}

Jó méricskélést mindenkinek! 😀

Megosztás: