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! 😀