Sharp GP2Y0A21 analoogkaugussensor31. Oct '13
Sissejuhatus
Käesolev kaugussensor on väga lihtsa ülesehitusega. Sensori toitepinge on 5V ning sensori väljundiks on pinge vahemikus 0V kuni 3.2V, mis tähendab et seda võib vabalt kasutada ka 3.3V toitepingega prototüüpimisplaatidega (nt mbed):
Tüüpilisel sumorobotil on kaks säärast kaugussensorit vastase asukoha tuvastamiseks:
Sensori datasheet-ist leiab pinge ning kauguse vahelise seose graafiku:
Kõige lihtsamas näites kasutame kaugussensorit, et käega ust avada:
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
const char LCD_AUML = 0xE1;
boolean garaaziuks_kinni = false;
void setup() {
lcd.begin(16, 2);
}
void loop() {
int value = analogRead(A1);
float voltage = value * 5 / 1023.0;
int distance = 6762 / (value - 9) - 4;
if (distance < 15) {
garaaziuks_kinni = !garaaziuks_kinni;
}
lcd.setCursor(0, 0);
lcd.print(voltage, 2);
lcd.print("V -> ");
lcd.print(distance);
lcd.print("cm");
lcd.print(" ");
lcd.setCursor(0, 1);
if (garaaziuks_kinni) {
lcd.print("kinni");
} else {
lcd.print("lahti");
}
if (voltage < 0.4) {
lcd.print(" ");
lcd.print("ebat");
lcd.print(LCD_AUML);
lcd.print("pne");
}
lcd.print(" ");
delay(500);
}
Harjutused:
Täienda koodi nii, et pikemat aega kätt sensori ees hoides ei tehtaks ust kinni ja lahti mitu korda.
Viited
Kasutatud materjalid ja viited: