<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Talking to Ultrasonic Distance Sensor HC-SR04 using nRF51822</title><link>/nordic/nordic-blog/b/blog/posts/talking-to-ultrasonic-distance-sensor-hc-sr04-usin</link><description>Communicating with Ultrasonic Distance Sensor HC-SR04 using nRF51-DK (nRF51822/nRF51422), and transmitting measured distance over BLE UART.
http://electronut.in/nrf51-hcsr04/</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><item><title>RE: Talking to Ultrasonic Distance Sensor HC-SR04 using nRF51822</title><link>https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/talking-to-ultrasonic-distance-sensor-hc-sr04-usin</link><pubDate>Fri, 14 Aug 2020 07:20:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:98d252d6-a51f-42a7-8141-2652c8e98c5a</guid><dc:creator>Parag_Pande</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;hello sir,&lt;/p&gt;
&lt;p&gt;I followed the same steps as explained by you to interface Hc SR 04. The only difference in my case is I am using nRF52832 and want to print the distance on serial monitor. But couldnot able to get it. Please help me. This is my code for refrence:-[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:e51408a8-2995-4404-ad3e-656b31cdafed:type=text&amp;text=%2F%2A%2A%0D%0A%20%2A%20Copyright%20%28c%29%202014%20-%202019%2C%20Nordic%20Semiconductor%20ASA%0D%0A%20%2A%0D%0A%20%2A%20All%20rights%20reserved.%0D%0A%20%2A%0D%0A%20%2A%20Redistribution%20and%20use%20in%20source%20and%20binary%20forms%2C%20with%20or%20without%20modification%2C%0D%0A%20%2A%20are%20permitted%20provided%20that%20the%20following%20conditions%20are%20met%3A%0D%0A%20%2A%0D%0A%20%2A%201.%20Redistributions%20of%20source%20code%20must%20retain%20the%20above%20copyright%20notice%2C%20this%0D%0A%20%2A%20%20%20%20list%20of%20conditions%20and%20the%20following%20disclaimer.%0D%0A%20%2A%0D%0A%20%2A%202.%20Redistributions%20in%20binary%20form%2C%20except%20as%20embedded%20into%20a%20Nordic%0D%0A%20%2A%20%20%20%20Semiconductor%20ASA%20integrated%20circuit%20in%20a%20product%20or%20a%20software%20update%20for%0D%0A%20%2A%20%20%20%20such%20product%2C%20must%20reproduce%20the%20above%20copyright%20notice%2C%20this%20list%20of%0D%0A%20%2A%20%20%20%20conditions%20and%20the%20following%20disclaimer%20in%20the%20documentation%20and%2For%20other%0D%0A%20%2A%20%20%20%20materials%20provided%20with%20the%20distribution.%0D%0A%20%2A%0D%0A%20%2A%203.%20Neither%20the%20name%20of%20Nordic%20Semiconductor%20ASA%20nor%20the%20names%20of%20its%0D%0A%20%2A%20%20%20%20contributors%20may%20be%20used%20to%20endorse%20or%20promote%20products%20derived%20from%20this%0D%0A%20%2A%20%20%20%20software%20without%20specific%20prior%20written%20permission.%0D%0A%20%2A%0D%0A%20%2A%204.%20This%20software%2C%20with%20or%20without%20modification%2C%20must%20only%20be%20used%20with%20a%0D%0A%20%2A%20%20%20%20Nordic%20Semiconductor%20ASA%20integrated%20circuit.%0D%0A%20%2A%0D%0A%20%2A%205.%20Any%20software%20provided%20in%20binary%20form%20under%20this%20license%20must%20not%20be%20reverse%0D%0A%20%2A%20%20%20%20engineered%2C%20decompiled%2C%20modified%20and%2For%20disassembled.%0D%0A%20%2A%0D%0A%20%2A%20THIS%20SOFTWARE%20IS%20PROVIDED%20BY%20NORDIC%20SEMICONDUCTOR%20ASA%20%22AS%20IS%22%20AND%20ANY%20EXPRESS%0D%0A%20%2A%20OR%20IMPLIED%20WARRANTIES%2C%20INCLUDING%2C%20BUT%20NOT%20LIMITED%20TO%2C%20THE%20IMPLIED%20WARRANTIES%0D%0A%20%2A%20OF%20MERCHANTABILITY%2C%20NONINFRINGEMENT%2C%20AND%20FITNESS%20FOR%20A%20PARTICULAR%20PURPOSE%20ARE%0D%0A%20%2A%20DISCLAIMED.%20IN%20NO%20EVENT%20SHALL%20NORDIC%20SEMICONDUCTOR%20ASA%20OR%20CONTRIBUTORS%20BE%0D%0A%20%2A%20LIABLE%20FOR%20ANY%20DIRECT%2C%20INDIRECT%2C%20INCIDENTAL%2C%20SPECIAL%2C%20EXEMPLARY%2C%20OR%0D%0A%20%2A%20CONSEQUENTIAL%20DAMAGES%20%28INCLUDING%2C%20BUT%20NOT%20LIMITED%20TO%2C%20PROCUREMENT%20OF%20SUBSTITUTE%0D%0A%20%2A%20GOODS%20OR%20SERVICES%3B%20LOSS%20OF%20USE%2C%20DATA%2C%20OR%20PROFITS%3B%20OR%20BUSINESS%20INTERRUPTION%29%0D%0A%20%2A%20HOWEVER%20CAUSED%20AND%20ON%20ANY%20THEORY%20OF%20LIABILITY%2C%20WHETHER%20IN%20CONTRACT%2C%20STRICT%0D%0A%20%2A%20LIABILITY%2C%20OR%20TORT%20%28INCLUDING%20NEGLIGENCE%20OR%20OTHERWISE%29%20ARISING%20IN%20ANY%20WAY%20OUT%0D%0A%20%2A%20OF%20THE%20USE%20OF%20THIS%20SOFTWARE%2C%20EVEN%20IF%20ADVISED%20OF%20THE%20POSSIBILITY%20OF%20SUCH%20DAMAGE.%0D%0A%20%2A%0D%0A%20%2A%2F%0D%0A%2F%2A%2A%20%40file%0D%0A%20%2A%20%40defgroup%20uart_example_main%20main.c%0D%0A%20%2A%20%40%7B%0D%0A%20%2A%20%40ingroup%20uart_example%0D%0A%20%2A%20%40brief%20UART%20Example%20Application%20main%20file.%0D%0A%20%2A%0D%0A%20%2A%20This%20file%20contains%20the%20source%20code%20for%20a%20sample%20application%20using%20UART.%0D%0A%20%2A%0D%0A%20%2A%2F%0D%0A%0D%0A%23include%20%3Cstdbool.h%3E%0D%0A%23include%20%3Cstdint.h%3E%0D%0A%23include%20%3Cstdio.h%3E%0D%0A%23include%20%3Cmath.h%3E%20%0D%0A%23include%20%22app_uart.h%22%0D%0A%23include%20%22app_error.h%22%0D%0A%23include%20%22nrf_delay.h%22%0D%0A%23include%20%22nrf.h%22%0D%0A%23include%20%22bsp.h%22%0D%0A%23if%20defined%20%28UART_PRESENT%29%0D%0A%23include%20%22nrf_uart.h%22%0D%0A%23endif%0D%0A%23if%20defined%20%28UARTE_PRESENT%29%0D%0A%23include%20%22nrf_uarte.h%22%0D%0A%23endif%0D%0A%0D%0A%0D%0A%2F%2F%23define%20ENABLE_LOOPBACK_TEST%20%20%2F%2A%2A%3C%20if%20defined%2C%20then%20this%20example%20will%20be%20a%20loopback%20test%2C%20which%20means%20that%20TX%20should%20be%20connected%20to%20RX%20to%20get%20data%20loopback.%20%2A%2F%0D%0A%0D%0A%23define%20MAX_TEST_DATA_BYTES%20%20%20%20%20%2815U%29%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%3C%20max%20number%20of%20test%20bytes%20to%20be%20used%20for%20tx%20and%20rx.%20%2A%2F%0D%0A%23define%20UART_TX_BUF_SIZE%20256%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%3C%20UART%20TX%20buffer%20size.%20%2A%2F%0D%0A%23define%20UART_RX_BUF_SIZE%20256%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%3C%20UART%20RX%20buffer%20size.%20%2A%2F%0D%0A%0D%0A%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%0D%0A%0D%0Avoid%20gpio_toggle%28void%29%3B%0D%0Avoid%20trig_pulse%28void%29%3B%0D%0Afloat%20compute_distance%28void%29%3B%0D%0A%0D%0A%23define%20pinTrig%205%0D%0A%23define%20pinEcho%207%0D%0A%23define%20InPin%201%0D%0A%23define%20OutPin%200%0D%0A%0D%0Afloat%20countToUs%20%3B%20%0D%0Afloat%20distance%20%3B%20%0D%0Auint32_t%20tCount%20%3B%0D%0A%0D%0A%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%0D%0A%0D%0Avoid%20uart_error_handle%28app_uart_evt_t%20%2A%20p_event%29%0D%0A%7B%0D%0A%20%20%20%20if%20%28p_event-%3Eevt_type%20%3D%3D%20APP_UART_COMMUNICATION_ERROR%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20APP_ERROR_HANDLER%28p_event-%3Edata.error_communication%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20else%20if%20%28p_event-%3Eevt_type%20%3D%3D%20APP_UART_FIFO_ERROR%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20APP_ERROR_HANDLER%28p_event-%3Edata.error_code%29%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0A%0D%0A%23ifdef%20ENABLE_LOOPBACK_TEST%0D%0A%2F%2A%20Use%20flow%20control%20in%20loopback%20test.%20%2A%2F%0D%0A%23define%20UART_HWFC%20APP_UART_FLOW_CONTROL_ENABLED%0D%0A%0D%0A%2F%2A%2A%20%40brief%20Function%20for%20setting%20the%20%40ref%20ERROR_PIN%20high%2C%20and%20then%20enter%20an%20infinite%20loop.%0D%0A%20%2A%2F%0D%0Astatic%20void%20show_error%28void%29%0D%0A%7B%0D%0A%0D%0A%20%20%20%20bsp_board_leds_on%28%29%3B%0D%0A%20%20%20%20while%20%28true%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Do%20nothing.%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0A%0D%0A%2F%2A%2A%20%40brief%20Function%20for%20testing%20UART%20loop%20back.%0D%0A%20%2A%20%20%40details%20Transmitts%20one%20character%20at%20a%20time%20to%20check%20if%20the%20data%20received%20from%20the%20loopback%20is%20same%20as%20the%20transmitted%20data.%0D%0A%20%2A%20%20%40note%20%20%40ref%20TX_PIN_NUMBER%20must%20be%20connected%20to%20%40ref%20RX_PIN_NUMBER%29%0D%0A%20%2A%2F%0D%0Astatic%20void%20uart_loopback_test%28%29%0D%0A%7B%0D%0A%20%20%20%20uint8_t%20%2A%20tx_data%20%3D%20%28uint8_t%20%2A%29%28%22%5Cr%5CnLOOPBACK_TEST%5Cr%5Cn%22%29%3B%0D%0A%20%20%20%20uint8_t%20%20%20rx_data%3B%0D%0A%0D%0A%20%20%20%20%2F%2F%20Start%20sending%20one%20byte%20and%20see%20if%20you%20get%20the%20same%0D%0A%20%20%20%20for%20%28uint32_t%20i%20%3D%200%3B%20i%20%3C%20MAX_TEST_DATA_BYTES%3B%20i%2B%2B%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20uint32_t%20err_code%3B%0D%0A%20%20%20%20%20%20%20%20while%20%28app_uart_put%28tx_data%5Bi%5D%29%20%21%3D%20NRF_SUCCESS%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20nrf_delay_ms%2810%29%3B%0D%0A%20%20%20%20%20%20%20%20err_code%20%3D%20app_uart_get%28%26rx_data%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20if%20%28%28rx_data%20%21%3D%20tx_data%5Bi%5D%29%20%7C%7C%20%28err_code%20%21%3D%20NRF_SUCCESS%29%29%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20show_error%28%29%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20return%3B%0D%0A%7D%0D%0A%23else%0D%0A%2F%2A%20When%20UART%20is%20used%20for%20communication%20with%20the%20host%20do%20not%20use%20flow%20control.%2A%2F%0D%0A%23define%20UART_HWFC%20APP_UART_FLOW_CONTROL_DISABLED%0D%0A%23endif%0D%0A%0D%0A%0D%0A%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%0D%0A%0D%0Avoid%20gpio_toggle%28void%29%0D%0A%7B%0D%0A%20%20NRF_GPIO-%3EOUT%20%3D%20%281%20%3C%3C%20pinTrig%29%20%3B%0D%0A%20%20nrf_delay_ms%282000%29%3B%0D%0A%20%20NRF_GPIO-%3EOUT%20%3D%20%280%20%3C%3C%20pinTrig%29%20%3B%0D%0A%20%20nrf_delay_ms%282000%29%3B%0D%0A%7D%0D%0A%0D%0Avoid%20trig_pulse%28void%29%0D%0A%7B%0D%0A%20%2F%2F%20send%2012us%20trigger%20pulse%0D%0A%2F%2F%20%20%20%20_%0D%0A%2F%2F%20__%7C%20%7C__%0D%0Anrf_gpio_pin_clear%28pinTrig%29%3B%0D%0Anrf_delay_us%2820%29%3B%0D%0Anrf_gpio_pin_set%28pinTrig%29%3B%0D%0Anrf_delay_us%2812%29%3B%0D%0Anrf_gpio_pin_clear%28pinTrig%29%3B%0D%0Anrf_delay_us%2820%29%3B%0D%0A%7D%0D%0A%0D%0A%0D%0A%2F%2F%20set%20up%20and%20start%20Timer1%0D%0Avoid%20start_timer%28void%29%0D%0A%7B%20%20%20%0D%0A%20%20NRF_TIMER1-%3EMODE%20%3D%20TIMER_MODE_MODE_Timer%3B%20%20%0D%0A%20%20NRF_TIMER1-%3ETASKS_CLEAR%20%3D%201%3B%0D%0A%20%20%2F%2F%20set%20prescalar%20n%0D%0A%20%20%2F%2F%20f%20%3D%2016%20MHz%20%2F%202%5E%28n%29%0D%0A%20%20uint8_t%20prescaler%20%3D%200%3B%0D%0A%20%20%20%20NRF_TIMER1-%3EPRESCALER%20%3D%20prescaler%3B%0D%0A%20%20%20%20NRF_TIMER1-%3EBITMODE%20%3D%20TIMER_BITMODE_BITMODE_16Bit%3B%0D%0A%0D%0A%20%20%2F%2F%2016%20MHz%20clock%20generates%20timer%20tick%20every%201%2F%2816000000%29%20s%20%3D%2062.5%20nano%20s%0D%0A%20%20%2F%2F%20With%20compare%20enabled%2C%20the%20interrupt%20is%20fired%20every%3A%2062.5%20%2A%20comp1%20nano%20s%0D%0A%20%20%2F%2F%20%3D%200.0625%2Acomp1%20micro%20seconds%0D%0A%20%20%2F%2F%20multiply%20this%20by%202%5E%28prescalar%29%0D%0A%0D%0A%20%20uint16_t%20comp1%20%3D%20500%3B%0D%0A%20%20%2F%2F%20set%20compare%0D%0A%20%20%20%20NRF_TIMER1-%3ECC%5B1%5D%20%3D%20comp1%3B%0D%0A%0D%0A%20%20%2F%2F%20set%20conversion%20factor%0D%0A%20%20countToUs%20%3D%200.0625%2Acomp1%2A%281%20%3C%3C%20prescaler%29%3B%0D%0A%0D%0A%20%20printf%28%22timer%20tick%20%3D%20%25f%20us%5Cn%22%2C%20countToUs%29%3B%0D%0A%0D%0A%20%20%2F%2F%20enable%20compare%201%0D%0A%20%20%20%20NRF_TIMER1-%3EINTENSET%20%3D%0D%0A%20%20%20%20%28TIMER_INTENSET_COMPARE1_Enabled%20%3C%3C%20TIMER_INTENSET_COMPARE1_Pos%29%3B%0D%0A%0D%0A%20%20%2F%2F%20use%20the%20shorts%20register%20to%20clear%20compare%201%0D%0A%20%20NRF_TIMER1-%3ESHORTS%20%3D%20%28TIMER_SHORTS_COMPARE1_CLEAR_Enabled%20%3C%3C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER_SHORTS_COMPARE1_CLEAR_Pos%29%3B%0D%0A%0D%0A%20%20%2F%2F%20enable%20IRQ%0D%0A%20%20NVIC_EnableIRQ%28TIMER1_IRQn%29%3B%0D%0A%0D%0A%20%20%2F%2F%20start%20timer%0D%0A%20%20NRF_TIMER1-%3ETASKS_START%20%3D%201%3B%0D%0A%7D%0D%0A%0D%0A%2F%2F%20Timer%201%20IRQ%20handler%0D%0A%2F%2F%20just%20increment%20count%0D%0Avoid%20TIMER1_IRQHandler%28void%29%0D%0A%7B%0D%0A%20%20%20%20if%20%28NRF_TIMER1-%3EEVENTS_COMPARE%5B1%5D%20%26%26%0D%0A%20%20%20%20%20%20NRF_TIMER1-%3EINTENSET%20%26%20TIMER_INTENSET_COMPARE1_Msk%29%20%7B%0D%0A%0D%0A%20%20%20%20%2F%2F%20clear%20compare%20register%20event%0D%0A%20%20%20%20NRF_TIMER1-%3EEVENTS_COMPARE%5B1%5D%20%3D%200%3B%0D%0A%0D%0A%20%20%20%20tCount%2B%2B%3B%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0A%0D%0A%0D%0A%2F%2F%20Reverses%20a%20string%20%27str%27%20of%20length%20%27len%27%20%0D%0Avoid%20reverse%28char%2A%20str%2C%20int%20len%29%20%0D%0A%7B%20%0D%0A%20%20%20%20int%20i%20%3D%200%2C%20j%20%3D%20len%20-%201%2C%20temp%3B%20%0D%0A%20%20%20%20while%20%28i%20%3C%20j%29%20%7B%20%0D%0A%20%20%20%20%20%20%20%20temp%20%3D%20str%5Bi%5D%3B%20%0D%0A%20%20%20%20%20%20%20%20str%5Bi%5D%20%3D%20str%5Bj%5D%3B%20%0D%0A%20%20%20%20%20%20%20%20str%5Bj%5D%20%3D%20temp%3B%20%0D%0A%20%20%20%20%20%20%20%20i%2B%2B%3B%20%0D%0A%20%20%20%20%20%20%20%20j--%3B%20%0D%0A%20%20%20%20%7D%20%0D%0A%7D%20%0D%0A%20%20%0D%0A%2F%2F%20Converts%20a%20given%20integer%20x%20to%20string%20str%5B%5D.%20%20%0D%0A%2F%2F%20d%20is%20the%20number%20of%20digits%20required%20in%20the%20output.%20%20%0D%0A%2F%2F%20If%20d%20is%20more%20than%20the%20number%20of%20digits%20in%20x%2C%20%20%0D%0A%2F%2F%20then%200s%20are%20added%20at%20the%20beginning.%20%0D%0Aint%20intToStr%28int%20x%2C%20char%20str%5B%5D%2C%20int%20d%29%20%0D%0A%7B%20%0D%0A%20%20%20%20int%20i%20%3D%200%3B%20%0D%0A%20%20%20%20while%20%28x%29%20%7B%20%0D%0A%20%20%20%20%20%20%20%20str%5Bi%2B%2B%5D%20%3D%20%28x%20%25%2010%29%20%2B%20%270%27%3B%20%0D%0A%20%20%20%20%20%20%20%20x%20%3D%20x%20%2F%2010%3B%20%0D%0A%20%20%20%20%7D%20%0D%0A%20%20%0D%0A%20%20%20%20%2F%2F%20If%20number%20of%20digits%20required%20is%20more%2C%20then%20%0D%0A%20%20%20%20%2F%2F%20add%200s%20at%20the%20beginning%20%0D%0A%20%20%20%20while%20%28i%20%3C%20d%29%20%0D%0A%20%20%20%20%20%20%20%20str%5Bi%2B%2B%5D%20%3D%20%270%27%3B%20%0D%0A%20%20%0D%0A%20%20%20%20reverse%28str%2C%20i%29%3B%20%0D%0A%20%20%20%20str%5Bi%5D%20%3D%20%27%5C0%27%3B%20%0D%0A%20%20%20%20return%20i%3B%20%0D%0A%7D%20%0D%0A%20%20%0D%0A%2F%2F%20Converts%20a%20floating-point%2Fdouble%20number%20to%20a%20string.%20%0D%0Avoid%20ftoa%28float%20n%2C%20char%2A%20res%2C%20int%20afterpoint%29%20%0D%0A%7B%20%0D%0A%20%20%20%20%2F%2F%20Extract%20integer%20part%20%0D%0A%20%20%20%20int%20ipart%20%3D%20%28int%29n%3B%20%0D%0A%20%20%0D%0A%20%20%20%20%2F%2F%20Extract%20floating%20part%20%0D%0A%20%20%20%20float%20fpart%20%3D%20n%20-%20%28float%29ipart%3B%20%0D%0A%20%20%0D%0A%20%20%20%20%2F%2F%20convert%20integer%20part%20to%20string%20%0D%0A%20%20%20%20int%20i%20%3D%20intToStr%28ipart%2C%20res%2C%200%29%3B%20%0D%0A%20%20%0D%0A%20%20%20%20%2F%2F%20check%20for%20display%20option%20after%20point%20%0D%0A%20%20%20%20if%20%28afterpoint%20%21%3D%200%29%20%7B%20%0D%0A%20%20%20%20%20%20%20%20res%5Bi%5D%20%3D%20%27.%27%3B%20%2F%2F%20add%20dot%20%0D%0A%20%20%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Get%20the%20value%20of%20fraction%20part%20upto%20given%20no.%20%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20of%20points%20after%20dot.%20The%20third%20parameter%20%20%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20is%20needed%20to%20handle%20cases%20like%20233.007%20%0D%0A%20%20%20%20%20%20%20%20fpart%20%3D%20fpart%20%2A%20pow%2810%2C%20afterpoint%29%3B%20%0D%0A%20%20%0D%0A%20%20%20%20%20%20%20%20intToStr%28%28int%29fpart%2C%20res%20%2B%20i%20%2B%201%2C%20afterpoint%29%3B%20%0D%0A%20%20%20%20%7D%20%0D%0A%7D%20%0D%0A%0D%0A%2F%2A%0D%0Astatic%20void%20gpio_init%28void%29%0D%0A%7B%0D%0A%20%20%20ret_code_t%20err_code%20%3B%0D%0A%20%20%20%0D%0A%20%20%20err_code%20%3D%20nrf_drv_gpiote_init%28%29%20%3B%0D%0A%20%20%20APP_ERROR_CHECK%28err_code%29%20%3B%0D%0A%0D%0A%20%20%20nrf_drv_gpiote_out_config_t%20out_config%20%3D%20GPIOTE_CONFIG_OUT_SIMPLE%28false%29%20%3B%20%0D%0A%0D%0A%20%20%20err_code%20%3D%20nrf_drv_gpiote_out_init%28DEBUG_PIN_OUT%20%2C%20%26out_config%29%20%3B%0D%0A%20%20%20APP_ERROR_CHECK%28err_code%29%20%3B%0D%0A%0D%0A%20%20%20nrf_drv_gpiote_out_set%28DEBUG_PIN_OUT%29%20%3B%20%0D%0A%0D%0A%20%20%20nrf_drv_gpiote_in_config_t%20in_config%20%3D%20GPIOTE_CONFIG_IN_SENSE_HITOLO%28true%29%3B%0D%0A%20%20%20in_config.pull%20%3D%20NRF_GPIO_PIN_PULLUP%20%3B%0D%0A%0D%0A%20%20%20err_code%20%3D%20nrf_drv_gpiote_in_init%28DEBUG_PIN_IN%20%2C%20%26in_config%20%2C%20in_pin_handler%29%20%3B%20%0D%0A%20%20%20%20APP_ERROR_CHECK%28err_code%29%20%3B%0D%0A%0D%0A%0D%0A%0D%0A%7D%0D%0A%2A%2F%0D%0A%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%0D%0A%0D%0A%2F%2A%2A%0D%0A%20%2A%20%40brief%20Function%20for%20main%20application%20entry.%0D%0A%20%2A%2F%0D%0Aint%20main%28void%29%0D%0A%7B%0D%0A%2F%2A%20%20%2F%2F%20%20bsp_board_init%28BSP_INIT_LEDS%29%3B%0D%0A%20%20%20nrf_gpio_cfg_output%28pinTrig%29%3B%20%20%20%2F%2F%20pin%20no.%205%0D%0A%20%20%20nrf_gpio_cfg_output%28OutPin%29%3B%20%20%20%20%2F%2F%20pin%20no.%200%0D%0A%20%20%20nrf_gpio_cfg_input%28InPin%20%2C%20BUTTON_PULL%29%20%3B%20%20%2F%2F%20pin%20no.%201%0D%0A%20%20%20%20%0D%0A%20%2F%2F%20%20%20NRF_GPIO-%3EDIRSET%20%3D%200x00000020%20%3B%0D%0A%20%20%20%20nrf_gpio_pin_clear%28pinTrig%29%3B%0D%0A%20%20%20%20nrf_gpio_pin_clear%28OutPin%29%3B%0D%0A%20%20%20while%28true%29%0D%0A%20%20%20%7B%0D%0A%20%20%20%20%20gpio_toggle%28%29%20%3B%20%0D%0A%20%20%20%20while%28%21nrf_gpio_pin_read%28InPin%29%29%0D%0A%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20nrf_gpio_pin_set%28OutPin%29%3B%0D%0A%20%20%20%20%20%7D%0D%0A%20%20%20%7D%0D%0A%0D%0A%2A%2F%0D%0A%0D%0A%20%20%20%20uint32_t%20err_code%3B%0D%0A%0D%0A%20%20%20%20bsp_board_init%28BSP_INIT_LEDS%29%3B%0D%0A%0D%0A%20%20%20%20const%20app_uart_comm_params_t%20comm_params%20%3D%0D%0A%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20RX_PIN_NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20TX_PIN_NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20RTS_PIN_NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20CTS_PIN_NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20UART_HWFC%2C%0D%0A%20%20%20%20%20%20%20%20%20%20false%2C%0D%0A%23if%20defined%20%28UART_PRESENT%29%0D%0A%20%20%20%20%20%20%20%20%20%20NRF_UART_BAUDRATE_115200%0D%0A%23else%0D%0A%20%20%20%20%20%20%20%20%20%20NRF_UARTE_BAUDRATE_115200%0D%0A%23endif%0D%0A%20%20%20%20%20%20%7D%3B%0D%0A%0D%0A%20%20%20%20APP_UART_FIFO_INIT%28%26comm_params%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20UART_RX_BUF_SIZE%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20UART_TX_BUF_SIZE%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20uart_error_handle%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20APP_IRQ_PRIORITY_LOWEST%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20err_code%29%3B%0D%0A%0D%0A%20%20%20%20APP_ERROR_CHECK%28err_code%29%3B%0D%0A%0D%0A%23ifndef%20ENABLE_LOOPBACK_TEST%0D%0A%20%20%20%20printf%28%22%5Cr%5CnUART%20example%20started.%5Cr%5Cn%22%29%3B%0D%0A%20%20%20%0D%0A%20%20%20%20distance%20%3D%200%20%3B%0D%0A%20%20%20%20nrf_gpio_cfg_output%28pinTrig%29%3B%0D%0A%20%20%20%20nrf_gpio_cfg_input%28pinEcho%20%2C%20BUTTON_PULL%29%20%3B%0D%0A%20%20%20%20nrf_gpio_pin_clear%28pinTrig%29%3B%0D%0A%20%20%20%20printf%28%22Interfacing%20of%20HC-SR-04%20with%20nRF52%3A-%22%29%20%3B%20%0D%0A%0D%0A%20%20%20%2F%2F%20char%20res%5B20%5D%3B%20%0D%0A%20%20%20%20char%20test%5B20%5D%3B%0D%0A%20%20%2F%2F%20%20float%20n%20%3D%20233.007%3B%20%0D%0A%20%20%20%20%0D%0A%20%20%20%0D%0A%20%20%20%0D%0A%20%20%20%20while%28true%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20printf%28%22inside%20loop%22%29%3B%0D%0A%20%20%20%20%20%20trig_pulse%28%29%20%3B%0D%0A%20%20%20%20%20%20printf%28%22After%20trig%20pulse%22%29%3B%0D%0A%20%20%20%20%2F%2F%20%20printf%28%22%5C%22res%3D%25s%5C%22%5Cn%22%2C%20res%29%3B%0D%0A%20%20%20%20%2F%2F%20%20nrf_delay_ms%281000%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%2F%2F%20listen%20for%20echo%20and%20time%20it%0D%0A%20%20%2F%2F%20%20%20%20%20%20%20____________%0D%0A%20%20%2F%2F%20_____%7C%20%20%20%20%20%20%20%20%20%20%20%20%7C___%0D%0A%0D%0A%20%20%2F%2F%20wait%20till%20Echo%20pin%20goes%20high%0D%0A%20%20while%28%21nrf_gpio_pin_read%28pinEcho%29%29%3B%0D%0A%20%20%2F%2F%20reset%20counter%0D%0A%20%20tCount%20%3D%200%3B%0D%0A%20%20%2F%2F%20wait%20till%20Echo%20pin%20goes%20low%0D%0A%20%20while%28nrf_gpio_pin_read%28pinEcho%29%29%3B%0D%0A%0D%0A%20%20%2F%2F%20calculate%20duration%20in%20us%0D%0A%20%20float%20duration%20%3D%20countToUs%2AtCount%3B%0D%0A%0D%0A%20%20%2F%2F%20dist%20%3D%20duration%20%2A%20speed%20of%20sound%20%2A%201%2F2%0D%0A%20%20%2F%2F%20dist%20in%20cm%20%3D%20duration%20in%20us%20%2A%2010%5E-6%20%2A%20340.29%20%2A%20100%20%2A%201%2F2%0D%0A%20%20float%20distance%20%3D%20duration%2A0.017%3B%0D%0A%20%20ftoa%28distance%2C%20test%2C%204%29%3B%20%0D%0A%20%20printf%28%22%5C%22test%3D%25s%5C%22%5Cn%22%2C%20test%29%3B%0D%0A%20%20nrf_delay_ms%281000%29%3B%0D%0A%0D%0A%20%20%7D%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%20%20%20%20while%20%28true%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20uint8_t%20cr%3B%0D%0A%20%20%20%20%20%20%20%20while%20%28app_uart_get%28%26cr%29%20%21%3D%20NRF_SUCCESS%29%3B%0D%0A%20%20%20%20%20%20%20%20while%20%28app_uart_put%28cr%29%20%21%3D%20NRF_SUCCESS%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20if%20%28cr%20%3D%3D%20%27q%27%20%7C%7C%20cr%20%3D%3D%20%27Q%27%29%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20printf%28%22%20%5Cr%5CnExit%21%5Cr%5Cn%22%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20while%20%28true%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Do%20nothing.%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%23else%0D%0A%0D%0A%20%20%20%20%2F%2F%20This%20part%20of%20the%20example%20is%20just%20for%20testing%20the%20loopback%20.%0D%0A%20%20%20%20while%20%28true%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20uart_loopback_test%28%29%3B%0D%0A%20%20%20%20%7D%0D%0A%23endif%0D%0A%7D%0D%0A%0D%0A%0D%0A%2F%2A%2A%20%40%7D%20%2A%2F%0D%0A]&lt;/p&gt;&lt;img src="https://devzone.nordicsemi.com/aggbug?PostID=828&amp;AppID=4&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Talking to Ultrasonic Distance Sensor HC-SR04 using nRF51822</title><link>https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/talking-to-ultrasonic-distance-sensor-hc-sr04-usin</link><pubDate>Sun, 02 Feb 2020 10:38:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:98d252d6-a51f-42a7-8141-2652c8e98c5a</guid><dc:creator>Seo agency dubai</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span&gt;Nice Article. Thank you very much for sharing this awesome post with us. Keep Posting.&lt;/span&gt;&lt;/p&gt;&lt;img src="https://devzone.nordicsemi.com/aggbug?PostID=828&amp;AppID=4&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Talking to Ultrasonic Distance Sensor HC-SR04 using nRF51822</title><link>https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/talking-to-ultrasonic-distance-sensor-hc-sr04-usin</link><pubDate>Wed, 22 Jul 2015 03:39:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:98d252d6-a51f-42a7-8141-2652c8e98c5a</guid><dc:creator>Mahesh Venkitachalam</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Thanks Fabien!&lt;/p&gt;
&lt;img src="https://devzone.nordicsemi.com/aggbug?PostID=828&amp;AppID=4&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Talking to Ultrasonic Distance Sensor HC-SR04 using nRF51822</title><link>https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/talking-to-ultrasonic-distance-sensor-hc-sr04-usin</link><pubDate>Tue, 21 Jul 2015 20:09:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:98d252d6-a51f-42a7-8141-2652c8e98c5a</guid><dc:creator>Fabien Comte</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Nice tutorial.&lt;/p&gt;
&lt;img src="https://devzone.nordicsemi.com/aggbug?PostID=828&amp;AppID=4&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>