Simple temperature measurement using the DS18B20 and NUCLEO-F334R8 For more info see here: http://www.emcu.it/NUCLEOevaBoards/mBed/QSG-Mbed-Library.pdf
main.cpp@0:8f239b2d2a0e, 2015-12-27 (annotated)
- Committer:
- emcu
- Date:
- Sun Dec 27 02:12:03 2015 +0000
- Revision:
- 0:8f239b2d2a0e
Simple temperature measurement using the DS18B20 and NUCLEO-F334R8; By: www.emcu.it
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emcu | 0:8f239b2d2a0e | 1 | |
emcu | 0:8f239b2d2a0e | 2 | /** |
emcu | 0:8f239b2d2a0e | 3 | |
emcu | 0:8f239b2d2a0e | 4 | NUCLEO-F334R8 |
emcu | 0:8f239b2d2a0e | 5 | DS18B20 |
emcu | 0:8f239b2d2a0e | 6 | |
emcu | 0:8f239b2d2a0e | 7 | By: www.emcu.it |
emcu | 0:8f239b2d2a0e | 8 | Date: Dec.2015 |
emcu | 0:8f239b2d2a0e | 9 | Version: 1.0 |
emcu | 0:8f239b2d2a0e | 10 | Name: F334-DS18B20 |
emcu | 0:8f239b2d2a0e | 11 | NOTE: For more info see here: http://www.emcu.it/NUCLEOevaBoards/mBed/QSG-Mbed-Library.pdf |
emcu | 0:8f239b2d2a0e | 12 | |
emcu | 0:8f239b2d2a0e | 13 | THE SOFTWARE AND HARDWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
emcu | 0:8f239b2d2a0e | 14 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
emcu | 0:8f239b2d2a0e | 15 | FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS |
emcu | 0:8f239b2d2a0e | 16 | OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
emcu | 0:8f239b2d2a0e | 17 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
emcu | 0:8f239b2d2a0e | 18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
emcu | 0:8f239b2d2a0e | 19 | |
emcu | 0:8f239b2d2a0e | 20 | UART Configuration (It is necessary for see the results, we suggest to use TeraTerm on PC) |
emcu | 0:8f239b2d2a0e | 21 | Baud Rate: 9600 |
emcu | 0:8f239b2d2a0e | 22 | Data Bit: 8 |
emcu | 0:8f239b2d2a0e | 23 | Parity: NONE |
emcu | 0:8f239b2d2a0e | 24 | Stop Bit: 1 |
emcu | 0:8f239b2d2a0e | 25 | Flow Control: NONE |
emcu | 0:8f239b2d2a0e | 26 | |
emcu | 0:8f239b2d2a0e | 27 | This SW is ready to use on the NUCLEO-F334R8. |
emcu | 0:8f239b2d2a0e | 28 | Connect to the NUCLEO-F334R8 the DS18B20 sensor (see the schematic below). |
emcu | 0:8f239b2d2a0e | 29 | The temperature sampling time is 1 sec. |
emcu | 0:8f239b2d2a0e | 30 | |
emcu | 0:8f239b2d2a0e | 31 | DS18B20 front view |
emcu | 0:8f239b2d2a0e | 32 | __________ |
emcu | 0:8f239b2d2a0e | 33 | | | |
emcu | 0:8f239b2d2a0e | 34 | | DS | |
emcu | 0:8f239b2d2a0e | 35 | | 18B20 | |
emcu | 0:8f239b2d2a0e | 36 | | | |
emcu | 0:8f239b2d2a0e | 37 | |__________| |
emcu | 0:8f239b2d2a0e | 38 | | | | |
emcu | 0:8f239b2d2a0e | 39 | 1 2 3 |
emcu | 0:8f239b2d2a0e | 40 | GND DQ VCC (3V3) |
emcu | 0:8f239b2d2a0e | 41 | | | |______________ to VCC (3.3V on the NUCLEO-F334R8) |
emcu | 0:8f239b2d2a0e | 42 | | | _|_ |
emcu | 0:8f239b2d2a0e | 43 | | | | | |
emcu | 0:8f239b2d2a0e | 44 | | | | | 4K7 |
emcu | 0:8f239b2d2a0e | 45 | | | | | |
emcu | 0:8f239b2d2a0e | 46 | | | -|- |
emcu | 0:8f239b2d2a0e | 47 | | |___|______________ to A1 (on the NUCLEO-F334R8) |
emcu | 0:8f239b2d2a0e | 48 | | |
emcu | 0:8f239b2d2a0e | 49 | | |
emcu | 0:8f239b2d2a0e | 50 | |______________________ to GND (on the NUCLEO-F334R8) |
emcu | 0:8f239b2d2a0e | 51 | |
emcu | 0:8f239b2d2a0e | 52 | This SW is just for only one DS18B20 |
emcu | 0:8f239b2d2a0e | 53 | This SW is a derivative of:: https://developer.mbed.org/users/Sissors/code/DS1820_HelloWorld/ |
emcu | 0:8f239b2d2a0e | 54 | On the: https://developer.mbed.org/users/Sissors/code/DS1820_HelloWorld/ there is a multi sensor (DS18B20) example. |
emcu | 0:8f239b2d2a0e | 55 | |
emcu | 0:8f239b2d2a0e | 56 | */ |
emcu | 0:8f239b2d2a0e | 57 | |
emcu | 0:8f239b2d2a0e | 58 | #define DATA_PIN A1 |
emcu | 0:8f239b2d2a0e | 59 | |
emcu | 0:8f239b2d2a0e | 60 | #include "mbed.h" |
emcu | 0:8f239b2d2a0e | 61 | #include "DS1820.h" |
emcu | 0:8f239b2d2a0e | 62 | |
emcu | 0:8f239b2d2a0e | 63 | // Define the PC serial Port |
emcu | 0:8f239b2d2a0e | 64 | Serial pc(SERIAL_TX, SERIAL_RX); |
emcu | 0:8f239b2d2a0e | 65 | |
emcu | 0:8f239b2d2a0e | 66 | DS1820 probe(DATA_PIN); |
emcu | 0:8f239b2d2a0e | 67 | |
emcu | 0:8f239b2d2a0e | 68 | |
emcu | 0:8f239b2d2a0e | 69 | int main() |
emcu | 0:8f239b2d2a0e | 70 | { |
emcu | 0:8f239b2d2a0e | 71 | pc.printf("\n\r\n\rBy: www.emcu.it - simple temperature measurement using the DS18B20\n\r"); |
emcu | 0:8f239b2d2a0e | 72 | while(1) |
emcu | 0:8f239b2d2a0e | 73 | { |
emcu | 0:8f239b2d2a0e | 74 | probe.convertTemperature(true, DS1820::all_devices); //Start temperature conversion, wait until ready |
emcu | 0:8f239b2d2a0e | 75 | pc.printf("The temperature is %3.3f Celsius\r\n", probe.temperature()); |
emcu | 0:8f239b2d2a0e | 76 | wait(1); |
emcu | 0:8f239b2d2a0e | 77 | } |
emcu | 0:8f239b2d2a0e | 78 | } |