Sensor de distancia Arduino IR
Durante mucho tiempo he estado tratando de crear algún tipo de robot, para lograr que necesito un montón de diferentes sensores. Uno de los grandes problemas para mí fue un sensor de distancia.
He encontrado sensor ultrasónico PING, pero es casi imposible conseguir una en mi condado. Así que he estado buscando una solución barata. He decidido utilizar LEDs IR 2x un receptor y un transmisor. Transmisor transmite la luz IR invisible humana rebota del objeto y devuelve al receptor. Receptor que está conectado a un pin analógico en el Arduino. Al principio me he hecho las mediciones y luego he hecho ecuación basada en la que se puede obtener la distancia en centímetros.
int IRSense = A0; int IRTrans = 2; int valueAmbient = 0; void setup() { pinMode(IRSense, INPUT); pinMode(IRTrans, OUTPUT); Serial.begin(9600); digitalWrite(IRTrans,LOW); } void ambient() { digitalWrite(IRTrans,HIGH); delay(20); valueAmbient = analogRead(IRSense); delay(20); } void loop() { ambient(); digitalWrite(IRTrans,LOW); delay(20); int value = analogRead(IRSense); int value2 = round(value - valueAmbient); int dist = (((value2+15.0)/(value2*(value2+100.0)))*2000.0); Serial.print(dist); Serial.print("cm."); Serial.println(""); delay(20); } Code for Processing : import processing.serial.*; Serial Port; String distance =""; String data =""; int index = 0; PFont font; void setup() { size(500,500); Port = new Serial(this, "COM3", 9600); Port.bufferUntil('.'); font = loadFont("AgencyFB-Bold-200.vlw"); textFont(font, 200); } void draw() { background(0,0,0); fill(200,0,0); text(distance,50,300); } void serialEvent (Serial port) { data = port.readStringUntil('.'); data = data.substring(0, data.length() - 1); distance = data; }
Fuente: http://legwinskij.blogspot.com.es/2011/03/arduino-ir-distance-sensor.html
Tuitear 3.254 Veces leído 0 comentarios |
18 septiembre 2014 en Electronica | tags: Arduino, Circuitos electrónicos, Electronica |