{"id":5202,"date":"2011-05-15T00:39:52","date_gmt":"2011-05-14T23:39:52","guid":{"rendered":"http:\/\/www.pesadillo.com\/pesadillo\/?p=5202"},"modified":"2011-03-19T17:40:10","modified_gmt":"2011-03-19T16:40:10","slug":"sensor-de-ultrasonidos-con-arduino","status":"publish","type":"post","link":"https:\/\/www.pesadillo.com\/pesadillo\/?p=5202","title":{"rendered":"Sensor de ultrasonidos con Arduino"},"content":{"rendered":"<p>Los sensores de ultrasonidos sirven, entre otras cosas, para detectar la distancia a la que se encuentran o pasan otros objetos. Su funciomaniento est\u00e1 basado en el sistema que emplean los murci\u00e9lagos para no chocar contra ning\u00fan objeto cuando vuelan en la oscuridad. Los murci\u00e9lagos emiten ultrasonidos. Dichos ultrasonidos rebotan contra los objetos que tienen delante y vuelven hacia el murci\u00e9lago que los eschucha con sus sensibles oidos. En funci\u00f3n del tiempo que tarda el sonido en rebotar y volver se calcula a la distancia a la que se encuentra dicho objeto.<\/p>\n<p>El sensor de distancia por ultrasonidos PING de Parallax es capaz de detectar objetos hasta a 3 metros de distancia. El sensor cuenta con tres PINES, dos para la alimentaci\u00f3n, y un tercero que se usa como entrada y salida digital.<\/p>\n<p>El PIN dedicado a realizar las mediciones tiene que ser reconfigurado de entrada a salida de acuerdo a la hoja de especificaciones del sensor PING. En primer lugar tenemos enviar un pulso al PIN del sensor que har\u00e1 que este emita un tono de ultrasonido y quedaremos a la espera del eco del mismo. Una vez que el tono es recibido de nuevo en el sensor, este env\u00eda un pulso a trav\u00e9s del mismo PIN. La amplitud del pulso determinar\u00e1 la distancia al objeto.<\/p>\n<p>El ejemplo que se muestra a continuaci\u00f3n fu\u00e9 montado por Marcus Hannerstig, mientras que el c\u00f3digo ha sido desarrollado por David Cuartielles. La placa est\u00e1 conectada como se explica, usando tan s\u00f3lo los cables de un viejo PC.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2011\/03\/PARALLAX_PING1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5203\" title=\"PARALLAX_PING[1]\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2011\/03\/PARALLAX_PING1.jpg\" alt=\"\" width=\"388\" height=\"308\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2011\/03\/PARALLAX_PING1.jpg 388w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2011\/03\/PARALLAX_PING1-300x238.jpg 300w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">\u00a0<\/p>\n<p style=\"text-align: left;\">\u00a0<\/p>\n<p><em>Detalle del conexionado del <a rel=\"nofollow\" href=\"http:\/\/www.parallax.com\/dl\/docs\/prod\/acc\/28015-PING-v1.2.pdf\" target=\"_blank\">sensor de distancia por ultrasonidos PING de Parallax<\/a><\/em><\/p>\n<p style=\"text-align: center;\"><em><a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2011\/03\/SENSOR_ULTRASONIDOS1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5204\" title=\"SENSOR_ULTRASONIDOS[1]\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2011\/03\/SENSOR_ULTRASONIDOS1.jpg\" alt=\"\" width=\"584\" height=\"647\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2011\/03\/SENSOR_ULTRASONIDOS1.jpg 584w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2011\/03\/SENSOR_ULTRASONIDOS1-270x300.jpg 270w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/em><\/p>\n<p style=\"text-align: center;\">\u00a0<\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>[php]<br \/>\nC\u00f3digo fuente<\/p>\n<p> \/* Sensor de Ultrasonidos<br \/>\n *&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n *<br \/>\n * Lee valores (00014-01199) de un sensor de ultrasonidos (hasta 3 metros)<br \/>\n * y escribe los valores en el puerto serie.<br \/>\n *<br \/>\n * http:\/\/www.xlab.se | http:\/\/www.0j0.org<br \/>\n * copyleft 2005 Mackie for XLAB | DojoDave for DojoCorp<br \/>\n *<br \/>\n *\/<\/p>\n<p> int ultraSoundSignal = 7;            \/\/ PIN de se\u00f1al de ultrasonidos<br \/>\n int val = 0;                         \/\/ Variable auxiliar<br \/>\n int ultrasoundValue = 0;             \/\/ Valor del senros de ultrasonidos<br \/>\n int timecount = 0;                   \/\/ Contador del eco<br \/>\n int ledPin = 13;                     \/\/ LED conectado al PIN 13<\/p>\n<p> void setup() {<br \/>\n  beginSerial(9600);                  \/\/ Configura la velocidad al puerto seria 9600  baudios<br \/>\n  pinMode(ledPin, OUTPUT);            \/\/ Configura el PIN del LED como salida digital.<br \/>\n }<\/p>\n<p> void loop() {<br \/>\n  timecount = 0;<br \/>\n  val = 0;<br \/>\n  pinMode(ultraSoundSignal, OUTPUT);   \/\/ Conmuta el PIN de la se\u00f1al a salida digital<\/p>\n<p> \/* Env\u00eda un pulso bajo-alto-bajo para lanzar el pulso de activaci\u00f3n del sensor<br \/>\n * &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n *\/<\/p>\n<p>  digitalWrite(ultraSoundSignal, LOW); \/\/ Env\u00eda un pulso bajo<br \/>\n  delayMicroseconds(2);                \/\/ Espera dos microsegundos<br \/>\n  digitalWrite(ultraSoundSignal, HIGH);\/\/ Env\u00eda un pulso alto<br \/>\n  delayMicroseconds(5);                \/\/ Espera 5 segundos<br \/>\n  digitalWrite(ultraSoundSignal, LOW); \/\/ Se queda en espera<\/p>\n<p> \/* En espera, escuchando el pulso de eco<br \/>\n * &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n *\/<\/p>\n<p>  pinMode(ultraSoundSignal, INPUT);    \/\/ Conmuta el PIN de la se\u00f1al a entrada digital<br \/>\n  val = digitalRead(ultraSoundSignal); \/\/ Recoge el valor del PIN de se\u00f1al<br \/>\n  while(val == LOW) {                  \/\/ Espera a que el PIN de se\u00f1al sea alto<br \/>\n    val = digitalRead(ultraSoundSignal);<br \/>\n  }<\/p>\n<p> while(val == HIGH) {                   \/\/ Espera a que el PIN de se\u00f1al sea bajo<br \/>\n   val = digitalRead(ultraSoundSignal);<br \/>\n   timecount = timecount +1;            \/\/ Cuenta el tiempo que dura el pulso alto (amplitud)<br \/>\n }<\/p>\n<p> \/* Escribe los valores resuktantes en el puerto serie<br \/>\n * &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n *\/<\/p>\n<p> ultrasoundValue = timecount;           \/\/ El contador es el valor obtenido por el sensor<\/p>\n<p> serialWrite(&#8216;A&#8217;);                      \/\/ Escribe en el puerto serie el valor obtenido<br \/>\n printInteger(ultrasoundValue);<br \/>\n serialWrite(10);<br \/>\n serialWrite(13);<\/p>\n<p> \/* Enciende el LED si se ha recibido un pulso de eco<br \/>\n * &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n *\/<\/p>\n<p> if(timecount &gt; 0){<br \/>\n   digitalWrite(ledPin, HIGH);<br \/>\n }<\/p>\n<p> \/* Delay del programa<br \/>\n * &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n *\/<\/p>\n<p>   delay(100);<br \/>\n }<\/p>\n<p>[\/php]<\/p>\n<p>Fuente: <a href=\"http:\/\/arduino.cc\/es_old\/Tutoriales\/SensorUltrasonidos\" target=\"_blank\">http:\/\/arduino.cc\/es_old\/Tutoriales\/SensorUltrasonidos<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los sensores de ultrasonidos sirven, entre otras cosas, para detectar la distancia a la que se encuentran o pasan otros objetos. Su funciomaniento est\u00e1 basado en el sistema que emplean los murci\u00e9lagos para no chocar contra ning\u00fan objeto cuando vuelan en la oscuridad. Los murci\u00e9lagos emiten ultrasonidos. Dichos ultrasonidos rebotan contra los objetos que tienen delante y vuelven hacia el [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[48,69],"class_list":["post-5202","post","type-post","status-publish","format-standard","hentry","category-electronica","tag-arduino","tag-electronica"],"_links":{"self":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts\/5202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5202"}],"version-history":[{"count":3,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts\/5202\/revisions"}],"predecessor-version":[{"id":5247,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts\/5202\/revisions\/5247"}],"wp:attachment":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}