arduino-based embedded data logger using labview

54
Arduino-Based Embedded Data Logger using LabVIEW 2015 Amornthep Phunsin Fb.com/LabviewEmbedded4Arduino 5/22/2015

Upload: others

Post on 12-Jan-2022

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arduino-Based Embedded Data Logger using LabVIEW

Arduino-Based Embedded Data Logger using LabVIEW

2015

Amornthep Phunsin Fb.com/LabviewEmbedded4Arduino

5/22/2015

Page 2: Arduino-Based Embedded Data Logger using LabVIEW

Arduino-Based Embedded Data Logger using LabVIEWTM

āļ­āļĄāļĢāđ€āļ—āļž āļœāļ™āļŠāļ™

(Version 1.0.2, May 2015)

āļšāļ—āļ„āļ§āļēāļĄāļ™āļˆāļ°āļ™ āļēāđ€āļŠāļ™āļ­āļāļēāļĢāļžāļ’āļ™āļēāļ­āļ›āļāļĢāļ“ Data Logger āđ‚āļ”āļĒāđƒāļŠāđ„āļĄāđ‚āļ„āļĢāļ„āļ­āļ™āđ‚āļ—āļĢāļĨāđ€āļĨāļ­āļĢ Arduino

āļĢāļ§āļĄāļāļšāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ§āļĒāļ āļēāļĐāļē LabVIEW āļŠāļēāļĄāļēāļĢāļ–āļšāļ™āļ—āļāļŠāļāļāļēāļ“āļˆāļēāļāđ€āļ‹āļ™āđ€āļ‹āļ­āļĢāļ āļēāļĒāļ™āļ­āļāđ„āļ”āļŦāļĨāļēāļĒ

āļŠāļ™āļ” āļ­āļēāļ— āđ€āļ‹āļ™āđ€āļ‹āļ­āļĢāļ­āļ“āļŦāļ āļĄāļ—āļēāļ‡āļ­āļ•āļŠāļēāļŦāļāļĢāļĢāļĄ Thermocouple āļŠāļēāļĄāļēāļĢāļ–āļšāļ™āļ—āļāđ€āļ§āļĨāļē āđāļĨāļ°āļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļĨāļ‡

SD Card āđ€āļžāļ­āļ™ āļēāļĄāļēāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

Page 3: Arduino-Based Embedded Data Logger using LabVIEW

āļŠāļēāļĢāļšāļ

āļšāļ—āļ™ āļē ................................................................................................................................................ 4

āļ— āļēāļ„āļ§āļēāļĄāļĢāļˆāļ Arduino Compatible Compiler for LabVIEW ................................................................ 7

āļ‚āļ­āļ”āļ‚āļ­āļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļĢāļ§āļĄāļāļšāļšāļ­āļĢāļ” Arduino ............................................................... 8

āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āļ—āļĢāļ­āļ‡āļĢāļšāļāļēāļĢāļ„āļ­āļĄāđ‚āļžāļĨāđāļĨāļ°āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ”āđ‚āļ›āļĢāđāļāļĢāļĄ ......................................................... 9

āļāļēāļĢāļ•āļ”āļ•āļ‡ Arduino compatible compiler for LabVIEW .................................................................... 10

āļāļēāļĢāļˆāļ”āļāļēāļĢāļžāļ™āļ—āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino .......................................................................... 13

āđƒāļšāļ‡āļēāļ™āļ— 1. āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļžāļ­āļĢāļ• Digital I/O āđāļŠāļ”āļ‡āļœāļĨāļ—āļēāļ‡ LED āđāļĨāļ° Buzzer ............................................. 17

āđƒāļšāļ‡āļēāļ™āļ— 2. āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļžāļ­āļĢāļ• Analog Port āļ­āļēāļ™āļ„āļēāļ­āļ“āļŦāļ āļĄāļˆāļēāļ LM35 ................................................ 18

āđƒāļšāļ‡āļēāļ™āļ— 3.āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļĢāļ§āļĄāļāļš LCD 16x2 āļœāļēāļ™āļžāļ­āļĢāļ• I2C Interface ..................................................... 20

āđƒāļšāļ‡āļēāļ™āļ— 4.āļ‚āļ™āļ•āļ­āļ™āļāļēāļĢ Compile Code āđāļĨāļ° Download āļĨāļ‡āļšāļ­āļĢāļ” Arduino ......................................... 23

āđƒāļšāļ‡āļēāļ™āļ— 5.āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļŸāļ‡āļāļŠāļ™ Debug Tool āđāļĨāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ—āļĢāļžāļĒāļēāļāļĢ (RAM) ........................................ 25

āđƒāļšāļ‡āļēāļ™āļ— 6. āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļĢāļ§āļĄāļāļš Real-Time Clock (RTC) āļ”āļ§āļĒ I2C Interface ........................................ 27

āđƒāļšāļ‡āļēāļ™āļ— 7. āļāļēāļĢāđ€āļ‚āļĒāļ™āļ‚āļ­āļĄāļĨ RTC āļĨāļ‡ SD Card (SPI Interface) ........................................................... 31

āđƒāļšāļ‡āļēāļ™āļ— 8. āđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļēāļ™āļ„āļēāļ­āļ“āļŦāļ āļĄāļˆāļēāļ Thermocouple āļˆāļēāļ MAX6675 āļœāļēāļ™āļžāļ­āļĢāļ• SPI ........... 35

āđƒāļšāļ‡āļēāļ™āļ— 9. āļāļēāļĢāļŠāļĢāļēāļ‡ Thermocouple Data Logger āļ‰āļšāļšāļŠāļĄāļšāļĢāļ“ ...................................................... 38

āļšāļ—āļŠāļĢāļ› ............................................................................................................................................ 44

āļšāļ—āļŠāļ‡āļ—āļēāļĒ ........................................................................................................................................ 45

Page 4: Arduino-Based Embedded Data Logger using LabVIEW

āļšāļ—āļ™ āļē

āļ­āļ™āļ”āļšāđāļĢāļāļ•āļ­āļ‡āļĒāļ­āļĄāļĢāļšāļ§āļēāļāļĢāļ°āđāļŠāļ™āļĒāļĄāđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāđ„āļĄāđ‚āļ„āļĢāļ„āļ­āļ™āđ‚āļ—āļĢāļĨāđ€āļĨāļ­āļĢ Arduino āļ—āļ‡āđ€āļĄāļ­āļ‡āļ™āļ­āļāđāļĨāļ°

āđ€āļĄāļ­āļ‡āđ„āļ—āļĒāļĄāļēāđāļĢāļ‡āđāļšāļšāļ‰āļ”āđ„āļĄāļ­āļĒāļˆāļĢāļ‡āđ† āđ„āļĄāđ€āļ‰āļžāļēāļ°āļāļšāļ™āļāļžāļ’āļ™āļēāđƒāļ™āļ§āļ‡āļāļēāļĢāļ­āđ€āļĨāļāļ—āļĢāļ­āļ™āļāļŠāđ€āļ—āļēāļ™āļ™ āđāļ•āļĒāļ‡āđāļžāļĢāļŦāļĨāļēāļĒ

āđƒāļ™āļ§āļ‡āļāļ§āļēāļ‡āđ„āļ›āļĒāļ‡āļ™āļāđ€āļĢāļĒāļ™ āļ™āļāļĻāļāļĐāļē āđāļĨāļ°āļœ āļ—āļĄāđ„āļĄāļĄāļžāļ™āļāļēāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ āļ—āļāļ„āļ™āļŦāļ™āļĄāļēāļŠāļ™āđƒāļˆāļ„āļ”āļ›āļĢāļ°āļ”āļĐāļ

āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āđ€āļ›āļ™āļ‚āļ­āļ‡āļ•āļ§āđ€āļ­āļ‡ āđāļ•āđ€āļ”āļĄāđ€āļĢāļēāļĄāļāđ„āļ”āļĒāļ™āļ™āļāļžāļ’āļ™āļēāđ€āļĢāļĒāļāļāļĨāļĄāļ‚āļ­āļ‡āļ•āļ™āđ€āļ­āļ‡āļ§āļē “DIY” āđāļ•āļ›āļˆāļˆāļšāļ™āđ€āļĢāļĄāļĄāļāļēāļĢāđƒāļŠ

āļ„ āļēāļ§āļē “Maker” āđ€āļĢāļĒāļāđāļ—āļ™āļ•āļ§āđ€āļ­āļ‡āļāļ™āļĄāļēāļāļ‚āļ™ āļ‹āļ‡āđ€āļ›āļ™āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļžāļ’āļ™āļēāđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ—āļœāļŠāļĄāļœāļŠāļēāļ™āļ—āļ‡āļ‹āļ­āļĢāļŸāđāļ§āļĢ

āđāļĨāļ°āļŪāļēāļĢāļ”āđāļ§āļĢāđ€āļ‚āļēāļ”āļ§āļĒāļāļ™

āđ€āļ™āļ­āļ‡āļ”āļ§āļĒāļŪāļēāļĢāļ”āđāļ§āļĢāđƒāļ™āđāļžāļĨāļ•āļŸāļ­āļĢāļĄ Arduino āļĄāļĢāļēāļ„āļēāļ–āļ āđāļĨāļ°āļ‹āļ­āļĢāļŸāđāļ§āļĢāļ—āđƒāļŠāļžāļ’āļ™āļēāļāđƒāļŠāļŸāļĢ āļˆāļ‡āļ— āļēāđƒāļŦ

āļ—āļāļ„āļ™āđ€āļ‚āļēāļ–āļ‡āđ€āļ„āļĢāļ­āļ‡āļĄāļ­āđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļ­āļĒāļēāļ‡āđ€āļ—āļēāđ€āļ—āļĒāļĄāļāļ™ āļ—āļāļ„āļ™āļĄāļ‡āđ€āļ™āļ™āļžāļ’āļ™āļēāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āđƒāļŦāļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļž

āļĄāļēāļāļ‚āļ™ āđ‚āļ”āļĒāļĄāļ•āļ­āļ‡āļāļ‡āļ§āļĨāđ€āļĢāļ­āļ‡āļ•āļ™āļ—āļ™āđƒāļ™āļāļēāļĢāļžāļ’āļ™āļē āļˆāļ‡āļ— āļēāđƒāļŦāļ•āļĨāļ­āļ”āļĢāļ°āļĒāļ°āđ€āļ§āļĨāļēāļāļ§āļē 10 āļ› āļ•āļ‡āđāļ•āđ‚āļ›āļĢāđ€āļˆāļ„

Arduino āļ–āļ­āļ āļēāđ€āļ™āļ”āļ‚āļ™āđ€āļĄāļ­āļ› 2005 āļĄāļāļēāļĢāļžāļ’āļ™āļēāļ•āļ­āļĒāļ­āļ”āđāļšāļšāļāļēāļ§āļāļĢāļ°āđ‚āļ”āļ” āđ‚āļ”āļĒāļĄāļ­āļ‡āļ„āļāļĢāđƒāļŦāļāđ†āļ—āļŦāļ™āļĄāļē

āļŠāļ™āļšāļŠāļ™āļ™āļ­āļĒāļēāļ‡āļĄāļēāļāļĄāļēāļĒ āļˆāļ™āļ–āļ­āđ„āļ”āļ§āļēāđ€āļ›āļ™āļāļēāļĢāđ€āļĢāļĄāļ•āļ™āļ›āļŽāļ§āļ•āļāļēāļĢāļžāļ’āļ™āļēāđ„āļĄāđ‚āļ„āļĢāļ„āļ­āļ™āđ‚āļ—āļĢāļĨāđ€āļĨāļ­āļĢāđƒāļ™āļĻāļ•āļ§āļĢāļĢāļĐāļ— 21

āđ€āļĨāļĒāļ—āđ€āļ”āļĒāļ§

āļ”āļ§āļĒāļ„āļ§āļēāļĄāļ— Arduino āđ€āļ›āļ™āđāļžāļĨāļ•āļŸāļ­āļĢāļĄāđ‚āļ­āđ€āļžāļ™āļ‹āļ­āļĢāļŠāļ—āļ‡āļĢāļ°āļšāļš āļ— āļēāđƒāļŦāļĄāļœāļœāļĨāļ•āļˆ āļēāļ™āļ§āļ™āļĄāļēāļ āđ€āļžāļĄāđ€āļ•āļĄ

āļŸāļ‡āļāļŠāļ™āļ•āļēāļ‡āđ†āļ‚āļ­āļ‡āļ•āļ™āđ€āļ­āļ‡āļĨāļ‡āļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ āđāļĨāļ°āļœāļĨāļ•āļšāļ­āļĢāļ” Arduino āļ‚āļ­āļ‡āļ•āļ™āđ€āļ­āļ‡āļ­āļ­āļāļĄāļēāļˆ āļēāļŦāļ™āļēāļĒ āđ‚āļ”āļĒāđ€āļĢāļĒāļāļ§āļē

“Arduino-Compatible” āļŦāļĢāļ­ “Clone” āļˆāļ‡āļĒāļ‡āļ— āļēāđƒāļŦāļāļēāļĢāļžāļ’āļ™āļēāļ•āļ­āļĒāļ­āļ”āļ”āļēāļ™āļŪāļēāļĢāļ”āđāļ§āļĢāđ€āļ•āļšāđ‚āļ•āļ­āļĒāļēāļ‡āļĢāļ§āļ”āđ€āļĢāļ§

āļ­āļāļāļēāļāļāļ‡āļŦāļ™āļ‡āļ„āļ­āļ‹āļ­āļĢāļŸāđāļ§āļĢāļ—āđƒāļŠāļžāļ’āļ™āļē āļ‹āļ‡āđāļ•āđ€āļ”āļĄāļˆāļ°āļĄāđ€āļžāļĒāļ‡ Arduino IDE āļ—āļĢāļ­āļ‡āļĢāļšāļ āļēāļĐāļē C/C++

āļ‹āļ‡āđ€āļ›āļ™ Text Programming āđ€āļžāļĒāļ‡āļ­āļĒāļēāļ‡āđ€āļ”āļĒāļ§ āļāđ€āļĢāļĄāļĄāļŦāļĨāļēāļĒāđ†āļšāļĢāļĐāļ—āļžāļ’āļ™āļē IDE āđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ§āļĒāļ āļēāļĐāļē

āļāļĢāļēāļŸāļŸāļ Graphical Programming āļ­āļĒāļēāļ‡āđāļžāļĢāļŦāļĨāļēāļĒ āļ­āļēāļ— Ardublock, VISUINO āđāļĨāļ° LabVIEW āļ‹āļ‡āļ‚āļ­āļ”

āļ‚āļ­āļ‡āļ āļēāļĐāļēāđāļšāļšāļāļĢāļēāļŸāļŸāļāļ„āļ­ āđ€āļĢāļĒāļ™āļĢāđ„āļ”āļĢāļ§āļ”āđ€āļĢāļ§ āļ— āļēāļ„āļ§āļēāļĄāđ€āļ‚āļēāđƒāļˆāđ‚āļ„āļ”āđ„āļ”āļ‡āļēāļĒ āļ— āļēāđƒāļŦāļœ āđ€āļĢāļĄāļ•āļ™āļĻāļāļĐāļē Arduino āđ€āļ›āļ™

āđ€āļĢāļ­āļ‡āļ—āļ‡āļēāļĒāļ‚āļ™āđ„āļ›āļ­āļ

Page 5: Arduino-Based Embedded Data Logger using LabVIEW

āļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄāđāļšāļšāļāļĢāļēāļŸāļŸāļāļŠ āļēāļŦāļĢāļš Arduino

LabVIEW āļ„āļ­ āļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āđ€āļ‚āļĒāļ™āđƒāļ™āļĢāļ›āđāļšāļšāļāļĢāļēāļŸāļŸāļ (Graphical Programming Language)

āļ‹āļ‡āļĄāļ„āļ§āļēāļĄāđāļ•āļāļ•āļēāļ‡āļˆāļēāļāļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļ§āđ„āļ›āļ—āđ€āļ‚āļĒāļ™āļ”āļ§āļĒāļ‚āļ­āļ„āļ§āļēāļĄ (Text Programming Language) āđ‚āļ”āļĒ

āļˆāļ”āđ€āļĢāļĄāļ•āļ™āļ‚āļ­āļ‡ LabVIEW āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™āļĄāļēāđ€āļžāļ­āļ•āļ­āļšāđ‚āļˆāļ—āļĒāļžāļ’āļ™āļēāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āđ€āļžāļ­āļ„āļ§āļšāļ„āļĄāļ­āļ›āļāļĢāļ“āđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļ§āļ”

āđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđƒāļ™āđƒāļ™āļ‡āļēāļ™āļ§āļĻāļāļĢāļĢāļĄ āđ‚āļ”āļĒāļĄāđ„āļ­āđ€āļ”āļĒāļ§āļēāđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āđ€āļ›āļĢāļĒāļšāđ„āļ”āļāļšāđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļ§āļ”āđ€āļŠāļĄāļ­āļ™

āļšāļ™āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ (Virtual Instruments) āđ‚āļ”āļĒāļœāđƒāļŠāļ‡āļēāļ™āļŠāļēāļĄāļēāļĢāļ–āļ„āļ§āļšāļ„āļĄāļāļēāļĢāļ— āļēāļ‡āļēāļ™āđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļ§āļ”āđ„āļ”āļˆāļēāļ

āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļˆāļēāļāļˆāļ”āđ€āļ”āļ™āļ—āđ€āļ›āļ™āļ āļēāļĐāļēāļāļĢāļēāļŸāļŸāļāđƒāļ™āļĒāļ„āđāļĢāļāđ† āļˆāļ‡āļĄāļāļēāļĢāļžāļ’āļ™āļēāļ­āļĒāļēāļ‡āļ•āļ­āđ€āļ™āļ­āļ‡ āļˆāļ™āļ— āļēāđƒāļŦāļĄāļāļēāļĢāđƒāļŠ

āļ‡āļēāļ™āđāļžāļĢāļŦāļĨāļēāļĒāđƒāļ™āļŦāļĨāļēāļĒāđ†āļ­āļ•āļŠāļēāļŦāļāļĢāļĢāļĄ āļˆāļ™āđ„āļ›āļ–āļ‡āļāļēāļĢāļžāļ’āļ™āļēāđƒāļ™āļĢāļ°āļšāļšāļŠāļĄāļ­āļ‡āļāļĨāļāļ‡āļ•āļ§āđƒāļ™āļŪāļēāļĢāļ”āđāļ§āļĢāļ‚āļ™āļēāļ”āđ€āļĨāļ

āļ­āļēāļ— Arduino āļ‹āļ‡āđ€āļĢāļēāļˆāļ°āđ€āļˆāļēāļ°āļĨāļāļ§āļ˜āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļžāļĢāļ­āļĄāļ•āļ§āļ­āļĒāļēāļ‡āđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™ Data Logger āđƒāļ™āļ‡āļēāļ™

āļ­āļ•āļŠāļēāļŦāļāļĢāļĢāļĄāđ€āļžāļ­āđƒāļŠāļ‡āļēāļ™āļˆāļĢāļ‡āđƒāļ™āļšāļ—āļ„āļ§āļēāļĄāļ™

āđƒāļ™āļšāļ—āļ„āļ§āļēāļĄāļ™āļœ āđ€āļ‚āļĒāļ™āđƒāļŠāļ‹āļ­āļĢāļŸāđāļ§āļĢ LabVIEW āđ€āļ›āļ™āļ‹āļ­āļĢāļŸāđāļ§āļĢāļŦāļĨāļāļĢāļ§āļĄāļāļš Toolkit āļ‚āļ­āļ‡āļšāļĢāļĐāļ—

Aledyne-TSXperts āļŠāļ­āļ§āļē “Arduinoâ„Ē Compatible Compiler for LabVIEW” (āļŠāļ­āļĒāļ­āļ„āļ­ ACC4LV) āļ‹āļ‡

āđ€āļ›āļ™āļ‹āļ­āļĢāļŸāđāļ§āļĢāļĒāļ­āļĒāļ—āļ— āļēāļŦāļ™āļēāļ—āđāļ›āļĨāļ‡āđ‚āļ„āļ” LabVIEW āđƒāļŦāđ€āļ›āļ™āļ āļēāļĐāļēāļĢāļ°āļ”āļšāļĨāļēāļ‡āļ—āļŠāļēāļĄāļēāļĢāļ–āđ‚āļ›āļĢāđāļāļĢāļĄāļĨāļ‡āļšāļ™

āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āđ„āļ”āđ‚āļ”āļĒāļ•āļĢāļ‡ āļ‹āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļĄāļ­āļĢāđ„āļĄāļ•āļ­āļ‡āļĄāļ„āļ§āļēāļĄāļĢāļ”āļēāļ™āļ āļēāļĐāļē C/C++ āđ€āļĨāļĒāđāļĄāđāļ•āļ™āļ­āļĒ āļ–āļ­āđ„āļ”āļ§āļē

āđ€āļ›āļ™āļāļēāļĢāļ›āļŽāļ§āļ•āļ§āļ‡āļāļēāļĢāļ™āļāļžāļ’āļ™āļē LabVIEW āđƒāļ™āļ‡āļēāļ™āļĢāļ°āļšāļšāļŠāļĄāļ­āļ‡āļāļĨāļāļ‡āļ•āļ§āļ‚āļ™āļēāļ”āđ€āļĨāļ āļ—āļ— āļēāđƒāļŦāļ™āļāļžāļ’āļ™āļēāđ€āļĢāļĒāļ™āļĢ

LabVIEW āđ€āļžāļĒāļ‡āļ āļēāļĐāļēāđ€āļ”āļĒāļ§āļāļŠāļēāļĄāļēāļĢāļ–āļžāļ’āļ™āļēāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āđƒāļ™āļ‡āļēāļ™āļĢāļ°āļšāļš Embedded-Based āđāļĨāļ° PC-

Based āđ„āļ”āļžāļĢāļ­āļĄāđ†āļāļ™

Page 6: Arduino-Based Embedded Data Logger using LabVIEW

āļŦāļ™āļēāļ•āļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ “Arduinoâ„Ē Compatible Compiler for LabVIEW”

āļĢāļēāļĒāļāļēāļĢāļŪāļēāļĢāļ”āđāļ§āļĢ āđāļĨāļ°āļ­āļ›āļāļĢāļ“āļ—āđƒāļŠāđƒāļ™āļšāļ—āļ„āļ§āļēāļĄāļ™ āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āļ§āļĒ

āļšāļ­āļĢāļ” Arduino-Compatible Uno R3 āđ„āļĄāđ‚āļ„āļĢāļ„āļ­āļ™āđ‚āļ—āļĢāļĨāđ€āļĨāļ­āļĢ

āļšāļ­āļĢāļ” Data Logger Shield āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒ SD Card āđāļĨāļ° Real-Time Clock (RTC)

āļšāļ­āļĢ LCD Display 16x2 āđ€āļŠāļ­āļĄāļ•āļ­āđāļšāļš I2C

āļšāļ­āļĢāļ” MAX6675 Thermocouple Type-K Module

āļĢāļēāļĒāļāļēāļĢāļ‹āļ­āļĢāļŸāđāļ§āļĢāļ—āđƒāļŠāļžāļ’āļ™āļēāđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™āļšāļ—āļ„āļ§āļēāļĄāļ™ āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āļ§āļĒ

LabVIEW āđ€āļ§āļ­āļĢāļŠāļ™ 2014

NI-VISA Driver āđ€āļ§āļ­āļĢāļŠāļ™ 14.0.1

Arduinoâ„Ē Compatible Compiler for LabVIEW āđ€āļ§āļ­āļĢāļŠāļ™ 1.0.0.15

Arduino IDE āđ€āļ§āļ­āļĢāļŠāļ™ 1.6.4

Page 7: Arduino-Based Embedded Data Logger using LabVIEW

āđ‚āļ”āļĒāļ‹āļ­āļĢāļŠāđ‚āļ„āļ”āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļ‡āļŦāļĄāļ”āđƒāļ™āļšāļ—āļ„āļ§āļēāļĄāļ™ āļœāļ­āļēāļ™āļŠāļēāļĄāļēāļĢāļ–āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ”āļŸāļĢ āļˆāļēāļāđ€āļ§āļšāđ„āļ‹āļ•

http://support.qwavesys.com āļŦāļĢāļ­ FB: “LabVIEW Embedded for Arduino” āđ€āļ›āļ™āļŠāļĄāļŠāļ™āļ™āļāļžāļ’āļ™āļē

LabVIEW āļĢāļ§āļĄāļāļšāļŪāļēāļĢāļ”āđāļ§āļĢāđāļžāļĨāļ•āļŸāļ­āļĢāļĄ Arduino āļ—āļ—āļēāļ‡āļœ āđ€āļ‚āļĒāļ™āđ„āļ”āļŠāļĢāļēāļ‡āļ‚āļ™āļĄāļēāđ€āļžāļ­āļĢāļ­āļ‡āļĢāļšāļ™āļāļžāļ’āļ™āļē

LabVIEW āđƒāļ™āđ€āļĄāļ­āļ‡āđ„āļ—āļĒāđ„āļ”āđāļĨāļāđ€āļ›āļĨāļĒāļ™āļ„āļ§āļēāļĄāļĢāļāļ™āļ„āļĢāļš

āļ— āļēāļ„āļ§āļēāļĄāļĢāļˆāļ Arduino Compatible Compiler for LabVIEW

Arduino Compatible Compiler for LabVIEW āđ€āļ›āļ™ Toolkit āļ—āļ•āļ”āļ•āļ‡āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āđ‚āļ”āļĒāļĄāļŸāļ‡āļāļŠāļ™āļžāļ™āļāļēāļ™āļ‚āļ­āļ‡ LabVIEW āđāļĨāļ°āļŸāļ‡āļāļŠāļ™āļžāđ€āļĻāļĐ āļĄāļēāļāļāļ§āļē 100+ āļŸāļ‡āļāļŠāļ™āļ—āđ€āļĢāļĒāļāđƒāļŠāļ‡āļēāļ™āđ„āļ” āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļ„āļ­āļĄāđ„āļžāļĨāđ‚āļ„āļ” LabVIEW āđāļĨāļ°āđ‚āļ›āļĢāđāļāļĢāļĄāļĨāļ‡āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āļĢāļ™āļ—āļ‹āļžāļžāļ­āļĢāļ•āđ„āļ”āđ‚āļ”āļĒāļ•āļĢāļ‡ āļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ— āļēāđ„āļ”āđ‚āļ”āļĒāļ‡āļēāļĒ āđāļĨāļ°āđƒāļŠāļ‡āļēāļ™āđ„āļ”āļˆāļēāļāļŦāļ™āļēāļ•āļēāļ‡āļŦāļĨāļāļ‚āļ­āļ‡ LabVIEW āļĄāđ€āļžāļĒāļ‡ 3 āļ‚āļ™āļ•āļ­āļ™āļ”āļ‡āļ•āļ­āđ„āļ›āļ™

āļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ§āļĒ Arduino Compatible Compiler for LabVIEW

āđ‚āļ”āļĒāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āļ—āļžāļ’āļ™āļēāļ”āļ§āļĒ “Arduino compatible compiler for LabVIEW” āļˆāļ°āļ— āļēāļ‡āļēāļ™āļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āđāļšāļš Standalone āđ€āļŦāļĄāļ­āļ™āļāļšāļāļēāļĢāļžāļ’āļ™āļēāđāļšāļšāļ—āļ§āđ„āļ› āļ—āđ€āļ‚āļĒāļ™āđ‚āļ„āļ”āļ”āļ§āļĒāļ āļēāļĐāļē C/C+ āļœāļēāļ™āļ—āļēāļ‡ Arduino IDE āļ”āļ‡āļ™āļ™āļāļēāļĢāđ€āļ‚āļĒāļ™ LabVIEW āđƒāļ™āļ§āļ˜āļ™āļˆāļ°āđ€āļŦāļĄāļēāļ°āļāļšāļ‡āļēāļ™āđƒāļ™āļĢāļ°āļšāļš Embedded System āđ€āļžāļĢāļēāļ°āļžāļ’āļ™āļēāļ”āļ§āļĒāļ āļēāļĐāļēāļ—āđ€āļĢāļĒāļ™āļĢāđ„āļ”āļ‡āļēāļĒ āļĄāļŸāļ‡āļāļŠāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļĄāļēāļāļĄāļēāļĒāļ‹āļ‡āđ€āļ›āļ™āļˆāļ”āđ€āļ”āļ™āļ‚āļ­āļ‡ LabVIEW āļ­āļĒāđāļĨāļ§ āļˆāļ‡āđ€āļŦāļĄāļēāļ°āļāļšāļ™āļāļžāļ’āļ™āļēāļĄāļ­āđƒāļŦāļĄ āļ—āļ•āļ­āļ‡āļāļēāļĢāđ€āļĢāļĒāļ™āļĢāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ§āļĒ LabVIEW āļĢāļ§āļĄāļāļšāļŪāļēāļĢāļ”āđāļ§āļĢ

Page 8: Arduino-Based Embedded Data Logger using LabVIEW

āļĢāļēāļ„āļēāđ„āļĄāđāļžāļ‡āļ™āļ āļŠ āļēāļŦāļĢāļšāļœ āļ—āļĄāļžāļ™āļāļēāļ™ LabVIEW āļĄāļēāļšāļēāļ‡āđāļĨāļ§āļāļˆāļ°āļ— āļēāđƒāļŦāļžāļ’āļ™āļēāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āđƒāļ™āļ‡āļēāļ™ Embedded System āđ„āļ”āļĢāļ§āļ”āđ€āļĢāļ§āļ‚āļ™

āļ–āļēāļĒāļ­āļ™āđ„āļ›āļŦāļĨāļēāļĒāļ›āļāļ­āļ™ āļšāļĢāļĐāļ— National Instruments āļ‹āļ‡āđ€āļ›āļ™āļšāļĢāļĐāļ—āđāļĄāļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļ

āđ€āļ„āļĒāļžāļ’āļ™āļē Toolkit āļ—āļŠāļ­āļ§āļē “NI LabVIEW Embedded Module for ARM Microcontrollers” āđ€āļ§āļ­āļĢāļŠāļ™āļŠāļ”āļ—āļēāļĒāļ„āļ­ 2012 āļ­āļ­āļāļĄāļēāļˆ āļēāļŦāļ™āļēāļĒ āđāļ•āļāđ„āļĄāđ„āļ”āļĢāļšāļ„āļ§āļēāļĄāļ™āļĒāļĄāđƒāļŠāļ‡āļēāļ™āđāļžāļĢāļŦāļĨāļēāļĒāļ™āļ āđ€āļžāļĢāļēāļ°āļ•āļ”āļ›āļāļŦāļēāļ—āļ™āļāļžāļ’āļ™āļēāļ•āļ­āļ‡āļˆāļēāļĒāļ„āļē License Software āļ‹ āļēāļ‹āļ­āļ™ āļ­āļēāļ— LabVIEW , RealView MDK Keil uVision āđāļĨāļ°āļ•āļ­āļ‡āļĄāļŪāļēāļĢāļ”āđāļ§āļĢ Keil ULINK2 USB-JTAG adaptor āđ€āļžāļ­āļ— āļēāļāļēāļĢāđ‚āļ›āļĢāđāļāļĢāļĄ āļ›āļĢāļ°āļāļ­āļšāļāļšāļĄāļ‚āļ­āļˆ āļēāļāļ”āđ€āļĢāļ­āļ‡āļšāļ­āļĢāļ” Microcontroller āļ—āļĢāļ­āļ‡āļĢāļšāļĄāļˆ āļēāļ™āļ§āļ™āļ™āļ­āļĒ āđāļĨāļ°āļĢāļēāļ„āļēāļŠāļ‡ āļˆāļ‡āđ„āļĄāđ€āļŦāļĄāļēāļ°āļāļšāļžāļ’āļ™āļēāļĄāļ­āđƒāļŦāļĄ āļ™āļāđ€āļĢāļĒāļ™ āļ™āļāļĻāļāļĐāļēāļ—āļ•āļ­āļ‡āļāļēāļĢāļĻāļāļĐāļēāđ€āļĢāļĒāļ™āļĢ

āļ‚āļ­āļ”āļ‚āļ­āļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļĢāļ§āļĄāļāļšāļšāļ­āļĢāļ” Arduino

āļ āļēāļĐāļē LabVIEW āđ€āļĢāļĒāļ™āļĢāđ„āļ”āļ‡āļēāļĒ āļ— āļēāļ„āļ§āļēāļĄāđ€āļ‚āļēāđƒāļˆāđ„āļ”āļĢāļ§āļ”āđ€āļĢāļ§ āļ— āļēāđƒāļŦāļĨāļ”āđ€āļ§āļĨāļē āđāļĨāļ°āļ•āļ™āļ—āļ™āđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāđ„āļ”

āļ”āļ§āļĒāļ„āļ§āļēāļĄāļ—āđ€āļ›āļ™āļ āļēāļĐāļēāđāļšāļšāļāļĢāļēāļŸāļŸāļ āļŠāļēāļĄāļēāļĢāļ–āļ›āļĢāļšāđāļ•āļ‡ āļ­āļžāđ€āļ”āļˆāđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļ”āļ‡āļēāļĒ āļ— āļēāđƒāļŦāļĨāļ”āļ•āļ™āļ—āļ™āļāļēāļĢ Maintenance Code āđƒāļ™āļĢāļ°āļĒāļ°āļĒāļēāļ§āđ„āļ”

āļ•āļ™āļ—āļ™āļŪāļēāļĢāļ”āđāļ§āļĢāļ• āļē āđ€āļžāļĢāļēāļ°āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āļēāļ™āļĢāļ§āļĄāļāļšāļšāļ­āļĢāļ” Arduino āđāļĨāļ°āļĢāļ­āļ‡āļĢāļš Arduinoâ„Ē Shields āļ—āļāļ›āļĢāļ°āđ€āļ āļ—

āļŠāļēāļĄāļēāļĢāļ–āļžāļ’āļ™āļēāļŪāļēāļĢāļ”āđāļ§āļĢ Arduino-Compatible āļ‚āļ­āļ‡āļ•āļ™āđ€āļ­āļ‡āļ—āļĢāļ­āļ‡āļĢāļš LabVIEW āđ„āļ”

āļĄāļŸāļ‡āļāļŠāļ™ LabVIEW API āđāļĨāļ°āļŸāļ‡āļāļŠāļ™āļĒāļ­āļĒ āļ•āļēāļ‡āđ† āđƒāļŦāđ€āļĢāļĒāļāđƒāļŠāļ‡āļēāļ™āđ„āļ”āļ—āļ™āļ—āļĄāļēāļāļ§āļē 100+ VIs āļžāļĢāļ­āļĄāļ•āļ§āļ­āļĒāļēāļ‡āļ—āļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāđ„āļ›āļ‡āļēāļ™āđ„āļ”āļ—āļ™āļ—

āļĄ LabVIEW āđ„āļĨāļšāļēāļĢāļ—āļ•āļ”āļ•āļ­āļāļšāļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āđ‚āļ”āļĒāļ•āļĢāļ‡ āđ€āļŠāļ™ Digital I/O, PWM, Analog I/O, SPI,I2C,SD Card āđāļĨāļ°āļ­āļ™āđ†

āđ‚āļ„āļ” LabVIEW āļŦāļĨāļ‡āļāļēāļĢāļ„āļ­āļĄāđ„āļžāļĨāđ€āļžāļ­āđ‚āļ›āļĢāđāļāļĢāļĄāļĨāļ‡ Arduino āļāļ™āļžāļ™āļ— Memory āļšāļ™āļšāļ­āļĢāļ”āļ™āļ­āļĒāļĄāļēāļ āđ€āļ—āļĒāļšāđ€āļ—āļēāļāļšāļāļēāļĢāđ€āļ‚āļĒāļ™āļ”āļ§āļĒāļ āļēāļĐāļē C/C++ āđ€āļžāļĢāļēāļ°āļ•āļ§āļ„āļ­āļĄāđ„āļžāđ€āļĨāļ­āļĢāļĄāļ­āļĨāļāļ­āļĢāļ—āļĄāļˆāļ”āļāļēāļĢ Memory āļ—āļĄāļ„āļ§āļēāļĄāļ‰āļĨāļēāļ”āļ›āļĢāļšāđ€āļ›āļĨāļĒāļ™āđ„āļ›āļ•āļēāļĄāļŠāđ€āļ›āļāļ‚āļ­āļ‡āļšāļ­āļĢāļ” Arduino āļ—āđƒāļŠāļ‡āļēāļ™

āļ•āļ™āļ—āļ™āļĢāļēāļ„āļēāļ‹āļ­āļĢāļŸāđāļ§āļĢ LabVIEW āđāļĨāļ° Arduino compatible compiler for LabVIEW āļĄāļĢāļēāļ„āļēāļ• āļēāļĄāļēāļ āļ›āļĢāļ°āļĄāļēāļ“ 3 āļžāļ™āļšāļēāļ— āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āđ€āļ§āļ­āļĢāļŠāļ™ Home Edition

Page 9: Arduino-Based Embedded Data Logger using LabVIEW

āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āļ—āļĢāļ­āļ‡āļĢāļšāļāļēāļĢāļ„āļ­āļĄāđ‚āļžāļĨāđāļĨāļ°āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ”āđ‚āļ›āļĢāđāļāļĢāļĄ

āđƒāļ™āđ€āļ§āļ­āļĢāļŠāļ™āđāļĢāļāđ†āļ‚āļ­āļ‡āļ„āļ­āļĄāđ„āļžāđ€āļĨāļ­āļĢāļĢāļ­āļ‡āļĢāļšāļŪāļēāļĢāļ”āđāļ§āļĢāļ•āļēāļ‡āđ† āļ•āļēāļĄāļĢāļēāļĒāļāļēāļĢāļ”āļ‡āļ•āļ­āđ„āļ›āļ™ āđāļ•āđ€āļ™āļ­āļ‡āļˆāļēāļāļ§āļē

āļšāļ­āļĢāļ”āļĢāļ™āļ•āļēāļ‡āđ†āļ‚āļ­āļ‡ Arduino āļŠāļ§āļ™āđƒāļŦāļāđƒāļŠāļŠāļŸ AVR āļĢāļ™āđ€āļ”āļĒāļ§āļāļ™ āļˆāļ‡āļ— āļēāđƒāļŦāļ™āļāļžāļ’āļ™āļēāļŠāļēāļĄāļēāļĢāļ–āļ—āļ”āļĨāļ­āļ‡āļ„āļ­āļĄāđ„āļžāļĨ

āđ‚āļ„āļ”āđ€āļžāļ­āļ—āļ”āļŠāļ­āļšāļ—āļĢāļžāļĒāļēāļāļĢāļ—āđƒāļŠāđ„āļ” āđāļ•āļĒāļ‡āđ„āļĄāļĢāļ­āļ‡āļĢāļšāļāļēāļĢāđ‚āļ›āļĢāđāļāļĢāļĄāļĨāļ‡āļšāļ™āļšāļ­āļĢāļ”āļ­āļ™āđ†āļ™āļ­āļāđ€āļŦāļ™āļ­āļˆāļēāļāļĢāļēāļĒāļāļēāļĢ

āļ”āļēāļ™āļĨāļēāļ‡ āļ‹āļ‡āđƒāļ™āļ­āļ™āļēāļ„āļ•āļˆāļ°āļ•āļ­āļ‡āļĄāļāļēāļĢāļĢāļ­āļ‡āļĢāļšāļŪāļēāļĢāļ”āđāļ§āļĢāđ€āļžāļĄāđ€āļ•āļĄāļ‚āļ™āđ€āļĢāļ­āļĒāđ†āļ­āļĒāļēāļ‡āđāļ™āļ™āļ­āļ™

Arduinoâ„Ē Uno

Arduinoâ„Ē Mega

Arduinoâ„Ē Due

Arduinoâ„Ē Nano

Arduinoâ„Ē Yun

Arduinoâ„Ē Leonard

āļšāļ­āļĢāļ” Arduino āđ€āļ§āļ­āļĢāļŠāļ™āļ•āļēāļ‡āđ† āļ—āļĢāļ­āļ‡āļĢāļšāđ‚āļ”āļĒ Arduino compatible compiler for LabVIEW

Page 10: Arduino-Based Embedded Data Logger using LabVIEW

āļāļēāļĢāļ•āļ”āļ•āļ‡ Arduino compatible compiler for LabVIEW

āļĢāļēāļĒāļāļēāļĢāļ‹āļ­āļĢāļŸāđāļ§āļĢāđāļĨāļ°āđ„āļ”āļĢāđ€āļ§āļ­āļĢāđ€āļ§āļ­āļĢāļŠāļ™āļ•āļēāļ‡āđ†āļ—āļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āđƒāļŠāļ„āļ§āļšāļ„āļāļš Arduino compatible compiler for LabVIEW āļĄāļ”āļ‡āļ•āļ­āđ„āļ›āļ™

1. LabVIEW 2014 āļŦāļĢāļ­āļŠāļ‡āļāļ§āļē 2. NI-VISA Driver āđ€āļ§āļ­āļĢāļŠāļ™āļĨāļēāļŠāļ” 3. Arduinoâ„Ē IDE version 1.5.7 āļŦāļĢāļ­āļŠāļ‡āļāļ§āļē 4. Windows āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļĢāļ­āļ‡āļĢāļš Windows 7 āļ‚āļ™āđ„āļ› āđ„āļĄāļĢāļ­āļ‡āļĢāļš Windows XP

āđ‚āļ”āļĒāđ€āļĄāļ­āļĨāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āđ€āļĢāļĒāļšāļĢāļ­āļĒāđāļĨāļ§ āđƒāļŦāđ€āļ›āļ”āđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āļĒāļ—āļŠāļ­āļ§āļē “VI Package Manager”

āļ‚āļ™āļĄāļēāđ€āļžāļ­āļ„āļ™āļŦāļē Toolkit āļ—āļŠāļ­āļ§āļē “Arduino compatible compiler for LabVIEW” āđ‚āļ”āļĒāļœāđƒāļŠāļ‡āļēāļ™āļŠāļēāļĄāļēāļĢāļ–āļ—āļ”āļĨāļ­āļ‡āđƒāļŠāļŸāļĢ 7 āļ§āļ™ āđ‚āļ”āļĒāļĄ 2 āđ€āļ§āļ­āļĢāļŠāļ™āļ„āļ­ Home Edition āļŠ āļēāļŦāļĢāļšāļāļēāļĢāļĻāļāļĐāļē āđāļĨāļ° Standard Edition āļŠ āļēāļŦāļĢāļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āđ€āļŠāļ‡āļžāļēāļ“āļŠāļĒ āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›āļ”āļēāļ™āļĨāļēāļ‡

āļāļēāļĢāļ•āļ”āļ•āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ Arduino compatible compiler for LabVIEW

āđ€āļĄāļ­āļ•āļ”āļ•āļ‡āđ€āļ›āļ™āļ—āđ€āļĢāļĒāļšāļĢāļ­āļĒ āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĒāļāđƒāļŠāļ‡āļēāļ™āđ„āļ”āļˆāļēāļ “Tools>Arduino compatible compiler for LabVIEW” āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›

Page 11: Arduino-Based Embedded Data Logger using LabVIEW

āļāļēāļĢāđ€āļĢāļĒāļāđƒāļŠāļ‡āļēāļ™ Arduino compatible compiler for LabVIEW

āđ€āļĄāļ­āđ€āļ›āļ”āđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļ™āļĄāļēāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ­āļāļšāļ­āļĢāļ” Arduino āļ—āļ•āļ­āļ‡āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āđ„āļ”āļˆāļēāļ “Tools>Board”

āļˆāļēāļāļĢāļ›āļ”āļēāļ™āļĨāļēāļ‡āļœ āđ€āļ‚āļĒāļ™āļ—āļ”āļĨāļ­āļ‡āđ€āļĨāļ­āļ Arduino Uno āđ€āļŠāļ­āļĄāļ•āļ­āļ—āļžāļ­āļĢāļ• COM1

āļāļēāļĢāđ€āļĨāļ­āļāļšāļ­āļĢāļ” Arduino āļ—āļ•āļ­āļ‡āļāļēāļĢāđƒāļŠāļ‡āļēāļ™

āđ€āļĄāļ­āđ€āļ›āļ” Block Diagram āđƒāļŦāļ„āļĨāļāļ‚āļ§āļē āļˆāļēāļāļ™āļ™āđ€āļĨāļ­āļ “Addons > Arduino compatible compiler

for LabVIEW” āļāļˆāļ°āļžāļšāļŸāļ‡āļāļŠāļ™āļ•āļēāļ‡āđ†āļĄāļēāļāļĄāļēāļĒ āļ—āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļĒāļ™āđāļĨāļ°āđ‚āļ›āļĢāđāļāļĢāļĄāļĨāļ‡āļšāļ­āļĢāļ” Arduino āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›

Page 12: Arduino-Based Embedded Data Logger using LabVIEW

āļŸāļ‡āļāļŠāļ™āļ•āļēāļ‡āđ†āļ‚āļ­āļ‡ Arduino compatible compiler for LabVIEW

āđ€āļĢāļēāļĨāļ­āļ‡āļĄāļēāļ”āļ•āļ§āļ­āļĒāļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļāļ™āļ„āļĢāļš āđƒāļ™āļāļĢāļ“āļ™āđ€āļ›āļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļŸāļāļĢāļ°āļžāļĢāļšāļ— Digital

Output Port 13 āļ—āļāđ† 100 ms āļ‹āļ‡āļˆāļ°āđ€āļŦāļ™āđ„āļ”āļ§āļē āļĨāļāļĐāļ“āļ°āđ‚āļ„āļ”āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļāļŠāļēāļĄāļēāļĢāļ–āļ­āļēāļ™āđ€āļ‚āļēāđƒāļˆāđ„āļ”

āļ—āļ™āļ— āļ–āļ‡āđāļĄāļ§āļēāļœāļ­āļēāļ™āļˆāļ°āđ„āļĄāđ€āļ„āļĒāļĄāļžāļ™āļāļēāļ™ LabVIEW āļĄāļēāļāļ­āļ™ āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›āļ”āļēāļ™āļĨāļēāļ‡āļ„āļĢāļš

āļ•āļ§āļ­āļĒāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļŸāļāļĢāļ°āļžāļĢāļšāļ— Digital Out Port 13

Page 13: Arduino-Based Embedded Data Logger using LabVIEW

āļāļēāļĢāļˆāļ”āļāļēāļĢāļžāļ™āļ—āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino

āđ€āļ™āļ­āļ‡āļ”āļ§āļĒāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļšāļ™ PC āđ‚āļ”āļĒāļ—āļ§āđ„āļ› āļ™āļāļžāļ’āļ™āļēāđāļ—āļšāļˆāļ°āđ„āļĄāļ•āļ­āļ‡āļ„ āļēāļ™āļ‡āļ–āļ‡āļāļēāļĢ

āļˆāļ”āļāļēāļĢ Memory Allocation āđ€āļĨāļĒāđāļĄāđāļ•āļ™āļ­āļĒ āđ€āļžāļĢāļēāļ°āļ§āļē LabVIEW āļĄāļ„āļ§āļēāļĄāļ‰āļĨāļēāļ”āđāļĨāļ°āļ— āļēāļŦāļ™āļēāļ—āļˆāļ”āļŠāļĢāļĢ

āļ• āļēāđāļŦāļ™āļ‡āļžāļ™āļ—āđƒāļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢāđƒāļŦāļ—āļ‡āļŦāļĄāļ” āļĒāļ‡āļ–āļēāđƒāļŠāļ‡āļēāļ™ PC Based āļ—āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļŠāļ‡āļ­āļĒāđāļĨāļ§

āļĒāļ‡āđ„āļĄāļ„āļ­āļĒāđ€āļˆāļ­āļ›āļāļŦāļēāđ€āļāļĒāļ§āļāļš Memory āļĄāļēāļāļ™āļ āđāļ•āļ–āļēāđ€āļ›āļ™āļ āļēāļĐāļē Text Programming āļ—āļ§āđ„āļ›āđ€āļŠāļ™ āļ āļēāļĐāļē

C/C++ āļŠāļ§āļ™āđƒāļŦāļāđāļĨāļ§āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļĄāļ­āļĢāļ•āļ­āļ‡āļĢāļ°āļšāļ• āļēāđāļŦāļ™āļ‡āļāļēāļĢāļ­āļēāļ‡āļ­āļ‡ Address āļ‚āļ­āļ‡āļ—āļāļ•āļ§āđāļ›āļĢāļ—āļāļ•āļ§āļ§āļēāļ­āļĒāđƒāļ™

āļ• āļēāđāļŦāļ™āļ‡āđƒāļ”āļ‚āļ­āļ‡ Memory āđ€āļĢāļĒāļāļ§āļēāļ•āļ­āļ‡ Memory Allocation āđ€āļ­āļ‡āļ—āļ‡āļŦāļĄāļ”

āļˆāļ‡āļ— āļēāđƒāļŦāļāļēāļĢāļžāļ’āļ™āļēāđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āđāļšāļš PC Based āđāļĨāļ° Embedded Based āļ™āļ™āđāļ•āļāļ•āļēāļ‡

āđ€āļ›āļ™āļ­āļĒāļēāļ‡āļĄāļēāļ āđ€āļžāļĢāļēāļ°āļĄāļ‚āļ­āļˆ āļēāļāļ”āļ”āļēāļ™āļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļ‚āļ­āļ‡āļŪāļēāļĢāļ”āđāļ§āļĢ āļĒāļ‡āļ–āļēāđ€āļ›āļ™ Embedded Target āļšāļ™

āđāļžāļĨāļ•āļŸāļ­āļĢāļĄ Arduino āđāļĨāļ§ āļĒāļ‡āļ— āļēāđƒāļŦāļāļēāļĢāļˆāļ”āļāļēāļĢāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ Memory Allocation āđ€āļ›āļ™āđ€āļĢāļ­āļ‡

āļŠ āļēāļ„āļāļ—āļ•āļ­āļ‡āļ„ āļēāļ™āļ‡āļ–āļ‡āđ€āļ›āļ™āļ­āļ™āļ”āļšāļ•āļ™āđ†

āļĨāļ­āļ‡āļ™āļāļ āļēāļžāļ”āļŠāļ„āļĢāļš āļ›āļāļ•āđ€āļ‚āļĒāļ™ LabVIEW āļšāļ™ PC āļ—āļĄ CPU Intel i7 4GHz āļĢāļ™āļšāļ™ Windows

32/64-bit āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļāļšāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļšāļ™ Arduino Embedded Target āļ—āļĄ CPU AVR 8-bit

16MHz āđ„āļĄāļĄ OS āļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ āđ€āļŦāļ™āđ„āļŦāļĄāļ„āļĢāļšāļ§āļēāļ•āļēāļ‡āļāļ™āļĢāļēāļ§āļŸāļēāļāļšāđ€āļŦāļ§ āļ”āļ‡āļ™āļ™āļāļēāļĢāļžāļ’āļ™āļēāđ‚āļ”āļĒāđƒāļŠāļ āļēāļĐāļē

LabVIEW āļ‹āļ‡āđ€āļ›āļ™ Graphical System Design āļšāļ™ Arduino āđ€āļĢāļ­āļ‡ Memory Management &Memory

Optimization āđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļ—āļ™āļāļžāļ’āļ™āļēāļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļĢāđāļĨāļ°āđ€āļ‚āļēāđƒāļˆāļ„āļĢāļš

Page 14: Arduino-Based Embedded Data Logger using LabVIEW

āļāļēāļĢāļˆāļ”āļāļēāļĢāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļšāļ™ Arduino āđāļžāļĨāļ•āļŸāļ­āļĢāļĄ

āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļšāļ™ Microcontroller Arduino āđāļšāļ‡āļ­āļ­āļāđ€āļ›āļ™ 4 āļŠāļ§āļ™āļ”āļ‡āļ™

1. āļžāļ™āļ—āđ€āļāļšāđ‚āļ„āļ”āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ Code Area āļ‹āļ‡āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļ—āļ•āļ­āļ‡āđƒāļŠāļ‚āļ™āļ­āļĒāļāļš āļ„āļ§āļēāļĄ

āļ‹āļšāļ‹āļ­āļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āđ€āļ‚āļĒāļ™ āđ‚āļ”āļĒāļˆāļ°āđ€āļāļšāļ­āļĒāđƒāļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļ–āļēāļ§āļĢāđāļšāļš Flash Memory āļ‹āļ‡āļŠāļēāļĄāļēāļĢāļ–

āļĨāļšāđāļĨāļ°āđ‚āļ›āļĢāđāļāļĢāļĄāļ‹ āļēāđ†āđ„āļ” āļĒāļāļ•āļ§āļ­āļĒāļēāļ‡āļšāļ­āļĢāļ” Arduino Uno āļĄ Flash Memory āļˆ āļēāļ™āļ§āļ™ 32 KB (*āļĄ

āļ‚āļ™āļēāļ”āđƒāļŦāļāļāļ§āļēāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđāļšāļš RAM āļŦāļĨāļēāļĒāđ€āļ—āļēāļ•āļ§)

2. āļžāļ™āļ—āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđāļšāļš Global Area āļ­āļĒāđƒāļ™ RAM āļˆāļ°āđ€āļāļšāļ•āļ§āđāļ›āļĢāļ—āļ›āļĢāļ°āļāļēāļĻāđāļšāļš Global āļ‹āļ‡āļĄāļāļēāļĢ

āđ€āļĢāļĒāļāđƒāļŠāļ‡āļēāļ™āļ‹ āļēāđ†āđ„āļ” āļ›āļĢāļ°āļāļēāļĻāļ•āļ§āđāļ›āļĢāļ„āļĢāļ‡āđ€āļ”āļĒāļ§ āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĒāļāđƒāļŠāļ‡āļēāļ™āđ„āļ”āļ—āļāļŠāļ§āļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ āđ‚āļ”āļĒāļ—āđ„āļĄ

āļ•āļ­āļ‡āļˆāļšāļˆāļ­āļ‡āļžāļ™āļ—āđƒāļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđƒāļŦāļĄ āļ— āļēāđƒāļŦāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āļžāļ™āļ—āđƒāļ™ Global Area āļ™āļ™āđ„āļĄāđ€āļžāļĄāļ‚āļ™āļ‚āļ“āļ°

Rum-time āđāļ•āļˆāļ°āđ€āļžāļĄāļ•āļēāļĄāļˆ āļēāļ™āļ§āļ™āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ—āļ›āļĢāļ°āļāļēāļĻāđ€āļ—āļēāļ™āļ™ āđ‚āļ”āļĒāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļĢāđ„āļ”āļ­āļĒāļēāļ‡āđāļ™āļŠāļ”āļˆāļēāļ

āļœāļĨ Compiled Code āļ§āļēāļˆāļ°āļ•āļ­āļ‡āđƒāļŠāļžāļ™āļ—āđƒāļ™ Global Area āđ€āļ›āļ™āļˆ āļēāļ™āļ§āļ™āđ€āļ—āļēāđƒāļ” āļ”āļ‡āđāļŠāļ”āļ‡āđƒāļ™āļĢāļ›āļ—āļ–āļ”āđ„āļ›

Page 15: Arduino-Based Embedded Data Logger using LabVIEW

3. āļžāļ™āļ—āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđāļšāļš Stack āļ­āļĒāđƒāļ™ RAM āđ€āļ›āļ™āļžāļ™āļ—āđƒāļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļ—āļ‹āļ‡āđ€āļāļšāļ•āļ§āđāļ›āļĢāļŠāļ™āļ” Local

Variable āļ—āļ›āļĢāļ°āļāļēāļĻāđƒāļŠāļ‡āļēāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļ‡āļŦāļĄāļ” āđāļĨāļ°āđ€āļ›āļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļ—āđƒāļŠāļ•āļ­āļ™ Calling Sub-

Function āļŦāļĢāļ­ SubVIs āļ—āļ‡āļŦāļĄāļ”āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ āđ‚āļ”āļĒāđƒāļ™āļ‚āļ“āļ°āļ—āđ€āļĢāļĒāļāđƒāļŠāļ‡āļēāļ™āļāļˆāļ°āļĄāļ‚āļ™āļēāļ”āđ€āļžāļĄāļ‚āļ™ (*āđāļ•āđ„āļĄ

āđ€āļāļ™āļāļ§āļēāļžāļ™āļ—āļ—āļˆāļšāļˆāļ­āļ‡āđ„āļ§) āļŦāļĨāļ‡āļˆāļēāļāđƒāļŠāļ‡āļēāļ™āļāļˆāļ°āļ„āļ™āļ„āļē (Released) āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļāļĨāļšāđ„āļ› āđ€āļžāļ­

āļ›āļĢāļ°āļŦāļĒāļ”āļžāļ™āļ—āđƒāļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļē āđ‚āļ”āļĒāļ—āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ Stack āđ„āļ”āļŦāļĨāļ‡āļˆāļēāļāļāļēāļĢ Compiled

Code āđ€āļžāļĢāļēāļ°āļ•āļ§ Complier āļˆāļ°āļ—āļĢāļēāļšāļ§āļēāđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļ­āļ‡āđ€āļĢāļēāļ™āļ™āļĄ Local Variable āļŦāļĢāļ­ SubVIs āđ€āļ›āļ™

āļˆ āļēāļ™āļ§āļ™āđ€āļ—āļēāđƒāļ” āļˆāļēāļāļ™āļ™āļāļ„ āļēāļ™āļ§āļ“āļžāļ™āļ—āļ—āđƒāļŠāļ‡āļēāļ™āđ€āļžāļ­āļˆ āļēāļˆāļšāļˆāļ­āļ‡āđ„āļ§āđƒāļ™ RAM āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›āļ–āļ”āđ„āļ›

4. āļžāļ™āļ—āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđāļšāļš Heap āļ­āļĒāđƒāļ™ RAM āđ€āļ›āļ™āļžāļ™āļ—āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļ—āđ€āļāļšāļ•āļ§āđāļ›āļĢāđāļšāļš Array āđāļĨāļ°

Sting āļ‹āļ‡āļ•āļ­āļ‡āđƒāļŠāļžāļ™āļ—āļĄāļēāļ āđ‚āļ”āļĒ Heap āđ€āļ›āļ™āļžāļ™āļ—āļ—āđ„āļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļĢāļēāļšāđ„āļ”āđāļ™āļŠāļ”āļ§āļēāļĄāļ‚āļ™āļēāļ”āđ€āļ—āļēāđƒāļ”

āđ€āļ™āļ­āļ‡āļˆāļēāļāđ€āļ›āļ™ Rum-time Memory āļˆāļ”āļŠāļĢāļĢāđāļšāļš Dynamic āļ‹āļ‡āļˆāļ°āļŠāļĢāļēāļ‡āļžāļ™āļ— āđāļĨāļ°āļ„āļ™āļ„āļēāļāļĨāļšāđ€āļĄāļ­

āļŠāļ™āļŠāļ”āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ āļžāļ™āļ— Heap āļ™āļ— āļēāđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļĄāļ­āļĢāļ›āļ§āļ”āļŦāļ§āļāļ™āļĄāļēāļ™āļāļ•āļ­āļ™āļ āđ‚āļ”āļĒāļ–āļēāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ

āđ„āļĄāļ”āļˆāļ°āļ— āļēāđƒāļŦāļžāļ™āļ—āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđƒāļ™ Heap āļĄāļˆ āļēāļ™āļ§āļ™āļĄāļēāļāļ‚āļ™āđ€āļĢāļ­āļĒāđ† āļˆāļ™āļāļ­āđƒāļŦāđ€āļāļ”āļ­āļēāļāļēāļĢ Crash āļŦāļĢāļ­

Hang āđƒāļ™āļĢāļ°āļŦāļ§āļēāļ‡āļ— āļēāļ‡āļēāļ™āđ‚āļ”āļĒāļ—āđ„āļĄāļ—āļĢāļēāļšāļŠāļēāđ€āļŦāļ• āļ—āļŠ āļēāļ„āļ Debug āļŦāļēāļ•āļ™āļ•āļ­āļ‚āļ­āļ‡āļ›āļāļŦāļēāđ„āļ”āļĒāļēāļāļĄāļēāļ

āļ•āļ§āļ­āļĒāļēāļ‡āļœāļĨāļāļēāļĢāļ„āļ­āļĄāđ„āļŸāļĨ VI āđ€āļžāļ­āđ‚āļ›āļĢāđāļāļĢāļĄāļĨāļ‡āļšāļ™ Arduino

āļ›āļāļ•āļ™āļāļžāļ’āļ™āļēāđ„āļĄāļ„āļ­āļĒāļˆāļ°āļĄāļ›āļāļŦāļēāļāļšāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđāļšāļš Flash āļĄāļēāļāļ™āļ āđ€āļžāļĢāļēāļ°āđ€āļ›āļ™āļžāļ™āļ—āļ‚āļ™āļēāļ”āđƒāļŦāļ

āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļĒāļ™āđ‚āļ„āļ”āđ„āļ”āļĄāļēāļāļ•āļēāļĄāļ—āļ•āļ­āļ‡āļāļēāļĢ āđ€āļ™āļ­āļ‡āļ”āļ§āļĒāļ‚āļ­āļˆ āļēāļāļ”āļ•āļēāļĄāļŠāļ–āļēāļ›āļ•āļĒāļāļĢāļĢāļĄ Microcontroller AVR āđ€āļĢāļēāļˆāļ‡

Page 16: Arduino-Based Embedded Data Logger using LabVIEW

āļĄāļāļžāļšāļ›āļāļŦāļēāđ€āļāļĒāļ§āļāļšāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđāļšāļš RAM āļ­āļĒāļšāļ­āļĒāļ„āļĢāļ‡ āļ‹āļ‡āđ€āļ›āļ™āļžāļ™āļ—āļˆ āļēāļāļ” āļĢāļ°āļ”āļšāđ„āļĄāļ KB āđ€āļ—āļēāļ™āļ™ āđāļ•āļ–āļē

āđ€āļ›āļ™āļšāļ­āļĢāļ” Arduino Due āļ‹āļ‡āđ€āļ›āļ™ ARM Cortex-M3 āļˆāļ°āļĄāļžāļ™āļ— RAM āļŠāļ‡āļĄāļēāļ āđ€āļŦāļĄāļēāļ°āļāļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āđƒāļ™āļĢāļ°āļ”āļš

āđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āļŠāļ‡āđ† āđ„āļ”āđ€āļĨāļĒ āļ—āļ™āđ€āļĢāļēāļĨāļ­āļ‡āļĄāļēāļ”āļ•āļēāļĢāļēāļ‡āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš Memory āļšāļ™āļšāļ­āļĢāļ” Arduino āđāļ•āļĨāļ°āļĢāļ™āđ€āļžāļ­

āđ€āļĨāļ­āļāđƒāļŠāļ‡āļēāļ™āļ•āļēāļĄāļ„āļ§āļēāļĄāđ€āļŦāļĄāļēāļ°āļŠāļĄāļāļ™āļ„āļĢāļš

āļ•āļēāļĢāļēāļ‡āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļ‚āļ­āļ‡āļšāļ­āļĢāļ” Arduino āđāļ•āļĨāļ°āļĢāļ™

āļˆāļ°āđ€āļŦāļ™āđ„āļ”āļ§āļēāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļ‹āļ‡āđ€āļ›āļ™ Graphic Programming āļˆ āļēāļ— āļēāđƒāļŦāļāļ™āļžāļ™āļ—āđƒāļ™

āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļĄāļēāļāļāļ§āļē āļāļēāļĢāļžāļ’āļ™āļēāļ”āļ§āļĒāļ āļēāļĐāļē C/C++ āļ—āļ§āđ„āļ›āļ­āļĒāļ™āļ”āļŦāļ™āļ­āļĒ āđāļ•āđ€āļ™āļ­āļ‡āļ”āļ§āļĒāļ‚āļ­āļˆ āļēāļāļ”āđ€āļĢāļ­āļ‡

Memory āļ‚āļ­āļ‡āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ° SRAM āļ— āļēāđƒāļŦāļ™āļāļžāļ’āļ™āļēāļ•āļ­āļ‡āļ— āļēāļ„āļ§āļēāļĄāđ€āļ‚āļēāđƒāļˆāļāļēāļĢāļˆāļ”āļāļēāļĢ

āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļē (Memory Allocation) āđ€āļžāļ­āļ›āļĢāļšāļ›āļĢāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļŦāļāļ™āļžāļ™āļ—āđƒāļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļ™āļ­āļĒāļ—āļŠāļ” āļ§āļ˜āļāļēāļĢ

āļŦāļ™āļ‡āļāļ„āļ­ āļĨāļ”āļāļēāļĢāđƒāļŠāļ•āļ§āđāļ›āļĢāļŠāļ™āļ” Array āđāļĨāļ° String āļ‹āļ‡āļāļ™āļžāļ™āļ—āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđƒāļ™ Heap āđ€āļĒāļ­āļ°āļĄāļēāļ āļŦāļĢāļ­āđ„āļĄāļ

āļ•āļ­āļ‡āđ€āļĨāļ­āļāđƒāļŠāļ‡āļēāļ™āļšāļ­āļĢāļ” Arduino Due āļ—āļĄ SRAM āļŠāļ‡āļ–āļ‡ 96 KB āļ„āļĢāļš

Page 17: Arduino-Based Embedded Data Logger using LabVIEW

āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āđ€āļžāļ­āļ•āļ”āļ•āļ­āļāļšāļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āđ€āļšāļ­āļ‡āļ•āļ™

āđƒāļšāļ‡āļēāļ™āļ— 1. āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļžāļ­āļĢāļ• Digital I/O āđāļŠāļ”āļ‡āļœāļĨāļ—āļēāļ‡ LED āđāļĨāļ° Buzzer

āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­ LED āđāļĨāļ° Buzzer āđ€āļ‚āļēāļ—āļžāļ­āļĢāļ• Digital Out

āđ„āļĨāļšāļēāļĢāļ—āđƒāļŠāļ‡āļēāļ™āļĢāļ§āļĄāļāļš Digital I/O

Page 18: Arduino-Based Embedded Data Logger using LabVIEW

āļ•āļ§āļ­āļĒāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļŸāļāļĢāļ°āļžāļĢāļš āļŦāļĢāļ­āļŠāļ‡āļŠāļāļāļēāđ€āļŠāļĒāļ‡āļ­āļ­āļ Buzzer āļ­āļĒāļēāļ‡āļ‡āļēāļĒ

āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļŠāļēāļĄāļēāļĢāļ–āļ­āļ˜āļšāļēāļĒāđ„āļ”āļ”āļ‡āļ™ āļ‹āļ‡āļ§āļ˜āļāļēāļĢāļ­āļēāļ™āđ‚āļ„āļ”āļˆāļ°āļ­āļēāļ™āļˆāļēāļāļ‹āļēāļĒāđ„āļ›āļ‚āļ§āļēāļ„āļĢāļš

1. āļ āļēāļŦāļ™āļ” Port āļ—āļ•āļ­āļ‡āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­ āļāļĢāļ“āļ™āļ„āļ­ Digital Output Port 13 (āļŦāļĢāļ­āļžāļ­āļĢāļ•āļ­āļ™āđ†āļ—āđ€āļŠāļ­āļĄāļ•āļ­āđ„āļ§) 2. āļ āļēāļŦāļ™āļ”āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄ āļ— āļēāļ‡āļēāļ™āļ•āļ­āđ€āļ™āļ­āļ‡ āļĢāļ™āđāļšāļš Loop Continuously 3. āđ€āļ‚āļĒāļ™ Logic High “5V” āđ„āļ›āļ— Digital Out Port 4. Timing VI āļ āļēāļŦāļ™āļ”āđƒāļŦ Wait āļŦāļĢāļ­ Delay 100ms 5. āđ€āļ‚āļĒāļ™ Logic Low “0V” āđ„āļ›āļ— Digital Out Port 6. Timing VI āļ āļēāļŦāļ™āļ”āđƒāļŦ Wait āļŦāļĢāļ­ Delay 100ms

āđƒāļšāļ‡āļēāļ™āļ— 2. āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļžāļ­āļĢāļ• Analog Port āļ­āļēāļ™āļ„āļēāļ­āļ“āļŦāļ āļĄāļˆāļēāļ LM35

Page 19: Arduino-Based Embedded Data Logger using LabVIEW

āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­āļāļšāđ€āļ‹āļ™āđ€āļ‹āļ­āļĢāļ­āļ“āļŦāļ āļĄ LM35 āđ€āļ‚āļēāļ—āļžāļ­āļĢāļ• Analog

āđ„āļĨāļšāļēāļĢāļ—āđƒāļŠāļ‡āļēāļ™āļĢāļ§āļĄāļāļš Analog I/O

āļ•āļ§āļ­āļĒāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļēāļ™āļ„āļēāļ­āļ“āļŦāļ āļĄāļ—āļēāļ‡āļžāļ­āļĢāļ• A0 āļĄāļŸāļ‡āļāļŠāļ™āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ—āļēāļ‡ COM Port

āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļ˜āļšāļēāļĒāđ„āļ”āļ”āļ‡āļ™

1. āļ āļēāļŦāļ™āļ” Port āļ—āļ•āļ­āļ‡āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­ āļāļĢāļ“āļ™āļ„āļ­ Digital Output Port 13 (āļŦāļĢāļ­āļžāļ­āļĢāļ•āļ­āļ™āđ†āļ—āđ€āļŠāļ­āļĄāļ•āļ­āđ„āļ§) 2. āđ€āļĢāļĒāļāļŸāļ‡āļāļŠāļ™ “Analog Read” āđ€āļžāļ­āļ­āļēāļ™āļ„āļēāļŠāļāļāļēāļ“ Analog āļ—āļžāļ­āļĢāļ• A0 āļˆāļēāļāļ™āļ™āļ— āļēāļāļēāļĢāđāļ›āļĨāļ‡āļ„āļē

āđ„āļ›āđ€āļ›āļ™āļ­āļ“āļŦāļ āļĄāļ•āļēāļĄāļŠāļ•āļĢ (Temp C = ((5/1024)*Analog Input*1000)10)) 3. āļŠāļĢāļēāļ‡āđ€āļ‡āļ­āļ™āđ„āļ‚āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ­āļĒāļēāļ‡āļ‡āļēāļĒ āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ”āļ§āļē āļ–āļēāļ­āļ“āļŦāļ āļĄāļŠāļ‡āļāļ§āļēāļ„āļē “Temp Threshold” āļ—

āļ āļēāļŦāļ™āļ”āđ„āļ§ (āđƒāļ™āļāļĢāļ“āļ™āļ—āļ”āļĨāļ­āļ‡āļ āļēāļŦāļ™āļ”āđ„āļ§āļ— 30 āļ­āļ‡āļĻāļē) āđƒāļŦāļŠāļ‡āļ„āļēāļ­āļ­āļāļ— Digital Out

Page 20: Arduino-Based Embedded Data Logger using LabVIEW

4. āđāļ›āļĨāļ‡āļ„āļēāļ­āļ“āļŦāļ āļĄāļˆāļēāļāļ•āļ§āđ€āļĨāļ‚āđ„āļ›āđ€āļ›āļ™āļ•āļ§āļ­āļāļĐāļĢāđ€āļžāļ­āđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļ—āļēāļ‡ COM Port āļ”āļ§āļĒ “Debug Tool.vi”

5. āđ€āļ‚āļĒāļ™āļ„āļē Digital Output āļ­āļ­āļāļ— Port 13 āļ—āļŠāļĢāļēāļ‡āđ€āļ‡āļ­āļ™āđ„āļ‚āļ—āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš 6. āļ āļēāļŦāļ™āļ”āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄ āļ— āļēāļ‡āļēāļ™āļ•āļ­āđ€āļ™āļ­āļ‡ āļĢāļ™āđāļšāļš Loop Continuously āđ„āļĄāļĄāļ§āļ™āļŠāļ™āļŠāļ”

āđƒāļšāļ‡āļēāļ™āļ— 3.āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļĢāļ§āļĄāļāļš LCD 16x2 āļœāļēāļ™āļžāļ­āļĢāļ• I2C Interface

āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­ LCD 16x2 (I2C) āđ€āļ‚āļēāļāļšāļšāļ­āļĢāļ” Arduino Uno

āļ•āļ§āļ­āļĒāļēāļ‡āļ™āļˆāļ°āđāļŠāļ”āļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āđ€āļžāļ­āđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļ—āļēāļ‡ LCD āđ‚āļ”āļĒāļˆāļ°āļ™ āļēāđ„āļĨāļšāļēāļĢ

LCD āļ—āļ•āļ”āļ•āļ‡āļĄāļēāđƒāļŦāđ€āļĢāļĒāļšāļĢāļ­āļĒāđāļĨāļ§āļĄāļēāđƒāļŠāļ‡āļēāļ™ āđ‚āļ”āļĒāļ›āļāļ•āđāļĨāļ§ LCD 16x2 āļˆāļ°āļĄāļžāļ­āļĢāļ•āđ€āļŠāļ­āļĄāļ•āļ­āđāļšāļš Parallel āļ‹āļ‡āļˆāļ°

āļ— āļēāđƒāļŦāļāļēāļĢāļ•āļ­āļŠāļēāļĒāļāļšāļšāļ­āļĢāļ” Arduino āđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļĒāļ‡āļĒāļēāļ āļ„āļ“āļœāļ­āļēāļ™āļŠāļēāļĄāļēāļĢāļ–āļŦāļēāļšāļ­āļĢāļ” LCD I2C Adapter āļĄāļē

āđāļ›āļĨāļ‡āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­āļˆāļēāļ Parallel āđ€āļ›āļ™ I2C āļ‹āļ‡āļˆāļ°āļ— āļēāđƒāļŦāļŠāļēāļĒāļŠāļāļāļēāļ“āđ€āļŦāļĨāļ­āđ€āļžāļĒāļ‡ 2 āđ€āļŠāļ™ SDL āđāļĨāļ° SCA āļ‹āļ‡

āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ•āļ­āļ‡āļĢāļ°āļš Address āļ‚āļ­āļ‡āļšāļ­āļĢāļ” I2C āļ›āļāļ•āļˆāļ°āđƒāļŠ Address āļĄāļēāļ•āļĢāļēāļāļēāļ™āļ„āļ­ 0x27 (39)

āđ„āļĨāļšāļēāļĢ I2C_LCD āļžāļĢāļ­āļĄāđƒāļŠāļ‡āļēāļ™

Page 21: Arduino-Based Embedded Data Logger using LabVIEW

āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­ LCD āđ€āļ‚āļēāļāļšāļšāļ­āļĢāļ” Arduino āļ— āļēāđ„āļ”āđ‚āļ”āļĒ āļ­āļ™āļ”āļšāđāļĢāļāļ•āļ­āđāļŦāļĨāļ‡āļˆāļēāļĒāđ„āļŸ +5V āđāļĨāļ° GND

āđ€āļ‚āļēāļāļšāļšāļ­āļĢāļ” āļˆāļēāļāļ™āļ™āļ•āļ­āļŠāļēāļĒ SDA āđ€āļ‚āļēāļāļšāļžāļ­āļĢāļ• A4 āđāļĨāļ°āļ•āļ­āļŠāļēāļĒ SCL āđ€āļ‚āļēāļāļšāļžāļ­āļĢāļ• A5

āđ‚āļ„āļ”āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļ—āđƒāļŠāļ•āļ”āļ•āļ­āļāļš LCD 16x02 āļ•āļ”āļ•āļ­āļœāļēāļ™ I2C Interface

āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļ˜āļšāļēāļĒāđ„āļ”āļ”āļ‡āļ™

1. āđ€āļĢāļĒāļ “LiquidCrystal_I2C.vi” āļ‚āļ™āļĄāļēāđ€āļžāļ­ Initial LCD āļ”āļ§āļĒāļ„āļēāđ€āļĢāļĄāļ•āļ™ āđ‚āļ”āļĒāļ›āļāļ•āļœāđƒāļŠāļˆāļ°āļ āļēāļŦāļ™āļ”

Address āļ‚āļ­āļ‡ I2C āļšāļ­āļĢāļ”āđ€āļ—āļēāļ™āļ™ āļŠāļ§āļ™āļ„āļēāļ­āļ™āđ† āļ—āđ€āļ›āļ™ Pin Configuration āđƒāļŦāļ„āļ‡āđ„āļ§āļ•āļēāļĄāļ„āļēāđ€āļĢāļĄāļ•āļ™

āđāļĨāļ°āļ āļēāļŦāļ™āļ” Characters = 16 āđāļĨāļ° Lines =2 āļ‹āļ‡āļ•āļĢāļ‡āļāļšāļŠāļ™āļ”āļ‚āļ­āļ‡ LCD āļ„āļ­ 16 āļ•āļ§āļ­āļāļĐāļĢ āļˆ āļēāļ™āļ§āļ™ 2

āđāļ–āļ§

2. āđ€āļĢāļĒāļ “LiquidCrystal_I2C set backlight pin.vi” āđ€āļžāļ­āļ āļēāļŦāļ™āļ”āļžāļ­āļĢāļ• backlight āļ‚āļ­āļ‡ LCD

āđ‚āļ”āļĒāļ—āļ§āđ„āļ›āļˆāļ°āļ āļēāļŦāļ™āļ”āđ„āļ§āļ— Pin=3

3. āđ€āļĢāļĒāļ “LiquidCrystal_I2C set backlight.vi” āļ‚āļ™āļĄāļēāđ€āļžāļ­āļˆāļēāļāļ™āļ™āļ āļēāļŦāļ™āļ” “True” āđ€āļžāļ­āđ€āļ›āļ”āļāļēāļĢāđƒāļŠāļ‡āļēāļ™

backlight āļšāļ™āļšāļ­āļĢāļ” LCD

4. āđ€āļĢāļĒāļ “LiquidCrystal_I2C home.vi” āđ€āļžāļ­āļ āļēāļŦāļ™āļ”āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđ€āļĢāļĄāļ•āļ™āļ—āļ• āļēāđāļŦāļ™āļ‡ Home āļ‚āļ­āļ‡ LCD

āļ‹āļ‡āļāļ„āļ­ āļ—āļēāļ‡āļ‹āļēāļĒāļŠāļ” āđāļ–āļ§āđāļĢāļāļšāļ™āļˆāļ­ LCD

5. āđ€āļĢāļĒāļ “LiquidCrystal_I2C write String.vi” āđ€āļžāļ­āđ€āļ‚āļĒāļ™āļ„āļēāļ•āļ§āļ­āļāļĐāļĢāļ— LCD āļ•āļēāļĄāļ• āļēāđāļŦāļ™āļ‡āļ—āļ āļēāļŦāļ™āļ”āđ„āļ§

āđƒāļ™āļ—āļ™āļ—āļ”āļĨāļ­āļ‡āđ€āļ‚āļĒāļ™āļ„ āļēāļ§āļē “LabVIEW-Arduino” āđ„āļ›āļ—āļšāļĢāļĢāļ—āļ”āļšāļ™āļŠāļ”āļ‚āļ­āļ‡āļˆāļ­ LCD

Page 22: Arduino-Based Embedded Data Logger using LabVIEW

6. āđ€āļĢāļĒāļ “LiquidCrystal_I2C set cursor.vi” āđ€āļžāļ­āļ āļēāļŦāļ™āļ”āļ• āļēāđāļŦāļ™āļ‡āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđƒāļŦāļ­āļĒāļ—āļ•āļ§āļ­āļāļĐāļĢāđāļĢāļ

āđāļ–āļ§āļ—āļŠāļ­āļ‡āļ‚āļ­āļ‡ LCD āđ€āļžāļĢāļēāļ°āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ™āļˆāļ°āļ— āļēāļāļēāļĢāļ­āļžāđ€āļ”āļˆāļ„āļēāļāļēāļĢāļ™āļšāļ‚āļ­āļ‡ Loop āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđ„āļ›āļ—

āļšāļĢāļĢāļ—āļ”āļĨāļēāļ‡āļ‚āļ­āļ‡ LCD

7. āđ€āļĢāļĒāļ “LiquidCrystal_I2C write String.vi” āļ‚āļ™āļĄāļēāļ­āļāļ„āļĢāļ‡āļŦāļ™āļ‡ āđ€āļžāļ­āđ€āļ‚āļĒāļ™āļ„āļē “Count:” + “āļˆ āļēāļ™āļ§āļ™

Loop āļ—āđ‚āļ›āļĢāđāļāļĢāļĄāļ— āļēāļ‡āļēāļ™â€ āđ‚āļ”āļĒāļˆāļ°āļŠāļ‡āđ€āļāļ•āđ€āļŦāļ™āļ§āļēāļĄāļŸāļ‡āļāļŠāļ™ “Number To Fractional String” āđ€āļžāļ­

āđāļ›āļĨāļ‡āļ•āļ§āđ€āļĨāļ‚ (Integer) āđ„āļ›āđ€āļ›āļ™āļ•āļ§āļ­āļāļĐāļĢ (String) āđƒāļ™āļāļĢāļ“āļ™āļ āļēāļŦāļ™āļ”āļˆāļ”āļ—āļĻāļ™āļĒāļĄ 3 āļ• āļēāđāļŦāļ™āļ‡ āđ€āļžāļ­āđƒāļŦ

āđāļŠāļ”āļ‡āļœāļĨāļšāļ™ LCD

āđ‚āļ”āļĒāđ‚āļ„āļ”āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļ­āļĒāđƒāļ™ “While Loop” āļˆāļ°āļ§āļ™ Loop āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđ„āļ›āđ€āļĢāļ­āļĒ āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ”āđ€āļ§āļĨāļēāļāļēāļĢ

āļ— āļēāļ‡āļēāļ™āđāļ•āļĨāļ° Loop āđ„āļ§āļ— 100ms āđāļĨāļ°āļˆāļ°āļ— āļēāļ‡āļēāļ™āđāļšāļšāļ•āļ­āđ€āļ™āļ­āļ‡āđ„āļĄāļŠāļ™āļŠāļ” āđ€āļžāļĢāļēāļ°āļ āļēāļŦāļ™āļ”āļ„āļē “False” āđƒāļŦāļāļš

Loop Condition āļ—āļĄāļĄāļĨāļēāļ‡āļ‹āļēāļĒāļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ

āļœāļĨāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ„āļ” LabVIEW āđāļŠāļ”āļ‡āļœāļĨāļ— LCD 16x2 (I2C)

Page 23: Arduino-Based Embedded Data Logger using LabVIEW

āđƒāļšāļ‡āļēāļ™āļ— 4.āļ‚āļ™āļ•āļ­āļ™āļāļēāļĢ Compile Code āđāļĨāļ° Download āļĨāļ‡āļšāļ­āļĢāļ” Arduino

1. āđ€āļĨāļ­āļāļšāļ­āļĢāļ” Arduino āļ—āļ•āļ­āļ‡āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­ āđƒāļ™āļāļĢāļ“āļ™āļœāļĄāđ€āļĨāļ­āļāđ€āļ›āļ™ Arduino Uno

2. āđ€āļĨāļ­āļāļžāļ­āļĢāļ•āļ—āđ€āļŠāļ­āļĄāļ•āļ­ āđƒāļ™āļāļĢāļ“āļ™āļœāļĄāđ€āļŠāļ­āļ•āļ­āđ„āļ§āļ— COM4 (*āļ–āļēāļœāļ­āļēāļ™āđ„āļĄāļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ­āļāļžāļ­āļĢāļ•āđƒāļŠāļ‡āļēāļ™āđ„āļ”

āđƒāļ™āļ‚āļ™āļ•āļ­āļ™āļ™āđāļŠāļ”āļ‡āļ§āļē āļšāļ­āļĢāļ” Arduino āļĒāļ‡āđ„āļĄāđ„āļ”āļĨāļ‡ USB-Driver āļŦāļĢāļ­āļĒāļ‡āđ„āļĄāđ„āļ”āļĨāļ‡ NI-VIA Driver)

3. āđ€āļ›āļ”āđ‚āļ„āļ”āđ‚āļ›āļĢāđāļāļĢāļĄ VI āļ—āļ•āļ­āļ‡āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļāļšāļ„āļ­āļĄāđ„āļžāđ€āļĨāļ­āļĢ āđ‚āļ”āļĒāđ€āļĨāļ­āļ “Load a VI”

4. āļ„āļĨāļāļ—āļ› āļĄ “Compile (Verify) Only” āđ€āļžāļ­āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ„āļ­āļĄāđ„āļžāļĨāđ‚āļ„āļ” āļ§āļēāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āđ€āļ‚āļĒāļ™āļ™āļ™āļāļ™āļ—āļĢāļž

āļĒāļēāļāļēāļĢāļšāļ™ Flash āđāļĨāļ° RAM āđ€āļ›āļ™āļˆ āļēāļ™āļ§āļ™āđ€āļ—āļēāđƒāļ” āđāļĨāļ°āļĄ Error āđ€āļāļ”āļ‚āļ™āļŦāļĢāļ­āđ„āļĄ

Page 24: Arduino-Based Embedded Data Logger using LabVIEW

5. āđ€āļĄāļ­āļœāļĨāļāļēāļĢāļ„āļ­āļĄāđ„āļŸāļĨāļœāļēāļ™āđāļĨāļ§ āļāđƒāļŦāļ„āļĨāļāđ€āļĨāļ­āļāļ— “Compile and Download” āļĢāļ­āļŠāļāļ„āļĢ āļ„āļ­āļĄāđ„āļžāđ€āļĨāļ­āļĢāļ

āļˆāļ°āđ‚āļ›āļĢāđāļāļĢāļĄāđ‚āļ„āļ” LabVIEW āļĨāļ‡āļšāļ™āļšāļ­āļĢāļ” Arduino Uno āļ•āļēāļĄāļžāļ­āļĢāļ•āļ—āļ āļēāļŦāļ™āļ”āđ„āļ§

Page 25: Arduino-Based Embedded Data Logger using LabVIEW

āđ‚āļ”āļĒāļœāļĨāļāļēāļĢāļ„āļ­āļĄāđ„āļžāļĨāđāļŠāļ”āļ‡āļœāļĨāļ”āļēāļ™āļĨāļēāļ‡ āđƒāļ™āļāļĢāļ“āļ™āļˆāļ°āđ€āļŦāļ™āļ§āļē āđ‚āļ›āļĢāđāļāļĢāļĄāđāļŠāļ”āļ‡āļœāļĨāļ—āļēāļ‡ LCD āļ—āđ€āļ‚āļĒāļ™

āļ‚āļ™āļĄāļēāļ™āļ™ āļˆāļ°āđƒāļŠāļžāļ™āļ—āļšāļ™ Flash āļ›āļĢāļ°āļĄāļēāļ“ 7.6kB āļ„āļ”āđ€āļ›āļ™ 23% āļˆāļēāļāļ—āļ‡āļŦāļĄāļ” 32 KB āļ‚āļ­āļ‡āļšāļ­āļĢāļ” Uno āđāļĨāļ°

āļžāļ™āļ—āļšāļ™ RAM āđƒāļŠāļ‡āļēāļ™āđ€āļžāļĒāļ‡ 289 bytes āļ„āļ”āđ€āļ›āļ™ 14% āļˆāļēāļāļ—āļ‡āļŦāļĄāļ” 2 KB āļšāļ™āļšāļ­āļĢāļ” Arduino Uno

āđƒāļšāļ‡āļēāļ™āļ— 5.āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļŸāļ‡āļāļŠāļ™ Debug Tool āđāļĨāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ—āļĢāļžāļĒāļēāļāļĢ (RAM)

āļāļēāļĢ Debug āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļ›āļ™āļŠāļ‡āļŠ āļēāļ„āļāļŠ āļēāļŦāļĢāļšāļ™āļāļžāļ’āļ™āļē āđ€āļžāļĢāļēāļ°āļ§āļēāļ›āļāļŦāļēāļŠāļ§āļ™āđƒāļŦāļāļĄāļāđ€āļāļ”āļ‚āļ™āđƒāļ™āļ‚āļ“āļ°

Run-time āļ‹āļ‡āļ–āļ­āļ§āļēāđ€āļ›āļ™āļāļēāļĢ Debug āļ—āļĒāļēāļāļ—āļŠāļ” āļ–āļēāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļĄāļ” āļˆāļ°āļ— āļēāđƒāļŦāđ„āļĄāđ„āļ”āļœāļĨāļĨāļžāļ˜āļ•āļēāļĄāļ—āļ āļēāļŦāļ™āļ”

āļ”āļ‡āļ™āļ™āļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄ āļŦāļĢāļ­ IDE āļ—āļ” āļ•āļ­āļ‡āļĄāđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļšāļēāļ‡āļ­āļĒāļēāļ‡āļ—āļˆāļ°āļŠāļ§āļĒāđƒāļŦāļ™āļāļžāļ’āļ™āļēāļŠāļēāļĄāļēāļĢāļ– Debug

āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™āļ‚āļ“āļ° Runtime āđ„āļ”āļ„āļĢāļš

āđƒāļ™āļšāļ—āļ™āđ€āļĢāļēāļˆāļ°āđƒāļŠāļŸāļ‡āļāļŠāļ™āļāļēāļĢ Debug Tool āļ—āļŠāļēāļĄāļēāļĢāļ–āļŠāļ‡āļ„āļēāļ—āļ āļēāļŦāļ™āļ” āļ­āļ­āļāļĄāļēāļ— COM āļžāļ­āļĢāļ•āđ„āļ” āļ‹āļ‡

āļ— āļēāđƒāļŦāđ€āļĢāļēāļ—āļĢāļēāļšāđ„āļ”āļ§āļē āļ‚āļ“āļ° Run-time āđ‚āļ›āļĢāđāļāļĢāļĄāļ— āļēāļ‡āļēāļ™āļ­āļĒāļēāļ‡āđ„āļĢ āļ„āļĨāļēāļĒāđ† āļāļ™āļŸāļ‡āļāļŠāļ™ printf() āđƒāļ™āļ āļēāļĐāļē C/C++

āļ‚āļ­āļ‡ Arduino IDE āļ„āļĢāļš āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ­āļāļŸāļ‡āļāļŠāļ™āļ™āđ„āļ”āļˆāļēāļ “Utilities>Debug Tool” āļ•āļēāļĄāļ āļēāļž

āđ„āļĨāļšāļēāļĢāđ€āļāļĒāļ§āļāļšāļāļēāļĢ Debug āđāļĨāļ°āļāļēāļĢāļˆāļ”āļāļēāļĢāļ—āļ§āđ„āļ›

āļ§āļ˜āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āđ€āļĢāļēāļˆāļ°āļ•āļ­āļ‡āđāļ—āļĢāļ “Debug Tool.vi” āđ„āļ›āļ—āđ‚āļ„āļ”āļ—āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢ Debug āđ‚āļ”āļĒāļ„āļēāļ—āļ•āļ­āļ‡āļāļēāļĢ

āđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļ—āļēāļ‡ COM port āļˆāļ°āļ•āļ­āļ‡āđ€āļ›āļ™āļ•āļ§āđāļ›āļĢāļŠāļ™āļ”āļ•āļ§āļ­āļāļĐāļĢ (String) āđ€āļ—āļēāļ™āļ™ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ­āļāđ„āļ”āļ”āļ§āļĒāļ§āļē

āļ•āļ­āļ‡āļāļēāļĢāđƒāļŦāđāļŠāļ”āļ‡āļœāļĨ āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļē RAM āļ—āđ€āļŦāļĨāļ­āļ­āļĒāđƒāļ™āļ‚āļ“āļ°āļ™āļ™āļŦāļĢāļ­āđ„āļĄ (āļŦāļ™āļ§āļĒāđ€āļ›āļ™ Bytes) āđƒāļ™āļāļĢāļ“āļ™āļœ āđ€āļ‚āļĒāļ™

Page 26: Arduino-Based Embedded Data Logger using LabVIEW

āđāļāđ„āļ‚ āļ”āđ€āļĨāļĒāļ āļēāļžāđƒāļ™ Loop āđƒāļŦāđ€āļ›āļ™ 1 āļ§āļ™āļēāļ— āđ€āļžāļ­āđƒāļŦāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđ€āļŦāļ™āļāļēāļĢāđ€āļ›āļĨāļĒāļ™āđāļ›āļĨāļ‡āđ„āļ”āļ‡āļēāļĒāļ‚āļ™āļ„āļĢāļš āđāļŠāļ”āļ‡āļ”āļ‡

āļ āļēāļž

āļ•āļ§āļ­āļĒāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļ‚āļĒāļ™āļ‚āļ­āļĄāļĨāđ„āļ›āđāļŠāļ”āļ‡āļœāļĨāļ—āļˆāļ­ LCD

āļˆāļēāļāļ™āļ™āļāļĨāļšāļĄāļēāļ— IDE āđ€āļžāļ­āđ€āļĨāļ­āļ “Serial Monitor” āļ‚āļ™āļĄāļēāđƒāļŠāļ‡āļēāļ™ āđāļŠāļ”āļ‡āļ”āļ‡āļ āļēāļž

āļāļēāļĢāđ€āļ›āļ”āđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āļĒ Serial Monitor”

āđ€āļĄāļ­āđ€āļ›āļ”āđ‚āļ›āļĢāđāļāļĢāļĄ “Serial Monitor” āļ‚āļ™āļĄāļēāļˆāļ°āđ€āļŦāļ™āđ„āļ”āļ§āļēāļšāļ­āļĢāļ” Arduino āļˆāļ°āļ— āļēāļāļēāļĢāļ­āļžāđ€āļ”āļˆāļ„āļēāļ—āđ€āļĢāļē

āļ āļēāļŦāļ™āļ”āđ„āļ§āļ—āļāđ† 1 āļ§āļ™āļēāļ— āđ€āļŠāļ™ “Count: 15.000:1348” āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āļē āļ‚āļ“āļ°āļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ āļēāļĨāļ‡āļ— āļēāļ‡āļēāļ™āļ— Loop

āļ— 15 āđāļĨāļ°āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļē RAM āļ—āđ€āļŦāļĨāļ­ (Free Memory) āļ‚āļ“āļ°āļ™āļ„āļ­ 1.348 KB

Page 27: Arduino-Based Embedded Data Logger using LabVIEW

āļœāļĨāļāļēāļĢāļ­āļēāļ™āļ„āļēāđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļ—āļēāļ‡ COM Port

āđƒāļšāļ‡āļēāļ™āļ— 6. āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļĢāļ§āļĄāļāļš Real-Time Clock (RTC) āļ”āļ§āļĒ I2C Interface

āļšāļ­āļĢāļ” Data Logger Shiled āđāļĨāļ°āļžāļ­āļĢāļ•āļ—āđ€āļŠāļ­āļĄāļ•āļ­āļāļš Arduino Uno

āļ•āļ§āļ­āļĒāļēāļ‡āļ™āļˆāļ°āđāļŠāļ”āļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļžāļ­āļ•āļ‡āļ„āļē āđāļĨāļ°āļ­āļēāļ™ Real-Time Clock āđ€āļšāļ­āļĢ DS1307 āļ‹āļ‡āđƒāļ™

āļšāļ—āļ„āļ§āļēāļĄāļ™āļœ āđ€āļ‚āļĒāļ™āđƒāļŠāļŪāļēāļĢāļ”āđāļ§āļĢāļšāļ­āļĢāļ” Data Logger Shield āđ€āļ§āļ­āļĢāļŠāļ™ 1.0 āļ‹āļ‡āļĄāļĢāļēāļ„āļēāđ„āļĄāđāļžāļ‡āļ™āļ āđāļĨāļ°āļĄāļēāļžāļĢāļ­āļĄ

āļāļš SD Card Slot āđ€āļŠāļ­āļĄāļ•āļ­āļ—āļēāļ‡āļžāļ­āļĢāļ• (A4 āđāļĨāļ° A5 āđ€āļžāļ­āđƒāļŠāļ‡āļēāļ™ I2C Interface) āđāļĨāļ°āļĄāļžāļ™āļ—āļ§āļēāļ‡āđ€āļžāļ­āļŠāļĢāļēāļ‡

āļ§āļ‡āļˆāļĢāļ‚āļ­āļ‡āļ•āļ§āđ€āļ­āļ‡ āļˆāļ°āđ€āļŦāļĄāļēāļ°āļāļšāļāļēāļĢāļ— āļēāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āļ—āļ•āļ­āļ‡āđ€āļāļšāļ„āļēāđ€āļ§āļĨāļēāļ›āļˆāļˆāļšāļ™ āđāļĨāļ°āļšāļ™āļ—āļāļĨāļ‡ SD Card

Page 28: Arduino-Based Embedded Data Logger using LabVIEW

āđ„āļĨāļšāļēāļĢāđ€āļāļĒāļ§āļāļšāļāļēāļĢāļ•āļ”āļ•āļ­āļœāļēāļ™āļ—āļēāļ‡ I2C

āļāļēāļĢāđƒāļŠāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļžāļ­āļ•āļ”āļ•āļ­āļāļš RTC āļ™āļ™āļˆāļ°āđƒāļŠāđ„āļĨāļšāļēāļĨ I2C āļ—āļ•āļ”āļ•āļ‡āļĄāļēāļžāļĢāļ­āļĄāļāļš āļ„āļ­āļĄāđ„āļžāđ€āļĨāļ­āļĢ

Toolkit āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āļēāļ™āđ„āļ”āļ—āļ™āļ— āđ‚āļ”āļĒāļāļēāļĢāļ•āļ‡āļ„āļē I2C Address āļ‚āļ­āļ‡ RTC āđƒāļ™āļšāļ­āļĢāļ” Data Logger Shield āļˆāļ°

āļ āļēāļŦāļ™āļ”āđ„āļ§āļ— 0x68 āđ‚āļ”āļĒāđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļ‚āļĒāļ™āļ‚āļ™āđ€āļžāļ­āđƒāļŠāļ‡āļēāļ™āđƒāļ™āđƒāļšāļ‡āļēāļ™āļ™āļˆāļ°āļĄ 2 āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­

1. SET DS1307 Real Time Clock.vi

2. READ DS1307 Real Time Clock.vi

āđ‚āļ”āļĒāđ‚āļ›āļĢāđāļāļĢāļĄ “SET DS1307 Real Time Clock.vi” āļˆāļ°āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ”āļĨāļ‡āđ„āļ›āđƒāļ™ RTC āđ€āļžāļĒāļ‡āļ„āļĢāļ‡āđāļĢāļ

āļ„āļĢāļ‡āđ€āļ”āļĒāļ§āđ€āļžāļ­āļ āļēāļŦāļ™āļ”āđ€āļ§āļĨāļēāļ›āļˆāļˆāļšāļ™ āļŦāļĨāļ‡āļˆāļēāļāļ™āļ™āļˆāļ°āļ•āļ­āļ‡āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ”āđ‚āļ›āļĢāđāļāļĢāļĄ “READ DS1307 Real

Time Clock.vi” āđ€āļžāļ­āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ­āļēāļ™āļ„āļē RTC āļ— COM Port

4.1 āļ āļēāļŦāļ™āļ”āļ„āļēāđ€āļ§āļĨāļēāļ›āļˆāļˆāļšāļ™āđƒāļŦ RTC (SET DS1307 Real Time Clock.vi)

āļāļēāļĢāļ•āļ‡āļ„āļēāđ€āļ§āļĨāļēāļ—āļ•āļ­āļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™āļĨāļ‡āļšāļ™ RTC āļ„āļĢāļ‡āđāļĢāļāļ„āļĢāļ‡āđ€āļ”āļĒāļ§

Page 29: Arduino-Based Embedded Data Logger using LabVIEW

āđƒāļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ„āļĢāļ‡āđāļĢāļ āđ€āļĢāļēāļ•āļ­āļ‡āļ•āļ‡āļ„āļēāđ€āļ§āļĨāļēāļ›āļˆāļˆāļšāļ™āđƒāļŦāļāļš RTC āđ‚āļ”āļĒāļ•āļ­āļ‡āđāļ›āļĨāļ‡āļ„āļē Date/Time āđ„āļ›āđ€āļ›āļ™

āļ•āļ§āđ€āļĨāļ‚āđ„āļšāļ™āļēāļĨ āđ€āļžāļ­āđ€āļ‚āļĒāļ™āļĨāļ‡āđ„āļ›āđƒāļ™āļĢāļˆāļ•āđ€āļ•āļ­āļĢāļ‚āļ­āļ‡ RTC āđƒāļŦāļ•āļ‡āđ€āļ§āļĨāļēāļ•āļēāļĄāļ—āļ āļēāļŦāļ™āļ” āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ āļēāļŦāļ™āļ”āđ€āļ§āļĨāļē

āļ›āļˆāļˆāļšāļ™āđ„āļ”āļˆāļēāļāļāļēāļĢāļ•āļ‡āļ„āļēāļ•āļ§āđ€āļĨāļ‚āđƒāļ™āļŦāļ™āļē Front Panel āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ āđ‚āļ”āļĒāļ•āļ­āļ‡āļĢāļ›āđāļšāļšāļ”āļ‡āļĢāļ›

āđ‚āļ›āļĢāđāļāļĢāļĄāļāļēāļĢāļ•āļ‡āļ„āļēāđ€āļ§āļĨāļēāđƒāļŦāļāļš RTC DS1307 āļšāļ™āļšāļ­āļĢāļ” Data Logger Shield

āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ “SET DS1307 Real Time Clock” āļ­āļ˜āļšāļēāļĒāđ„āļ”āļ”āļ‡āļ™

1. āđ€āļĢāļĒāļ “I2C Open.vi” āđ€āļžāļ­āļ•āļ‡āļ„āļēāđ€āļĢāļĄāļ•āļ™āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­āļāļš RTC DS1307 āļ—āļēāļ‡āļžāļ­āļĢāļ• I2C

2. āđ€āļĢāļĒāļ “I2C Write (Byte).vi” āđ€āļžāļ­āđ€āļĢāļĄāļ•āļ™āđ€āļ‚āļĒāļ™āļ„āļē Date/Time āđ„āļ›āļĒāļ‡āļĢāļˆāļ•āđ€āļ•āļ­āļĢāļ‚āļ­āļ‡ RTC āđ‚āļ”āļĒāļ•āļ­āļ‡

āļ āļēāļŦāļ™āļ”āļ• āļēāđāļŦāļ™āļ‡āđ€āļĢāļĄāļ•āļ™āļ—āļ•āļ­āļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™āđƒāļ™āļ—āļ™āļ„āļ­ āđƒāļŦāđ€āļĢāļĄāļ—āļĢāļˆāļ•āđ€āļ•āļ­āļĢ “0” āļ‹āļ‡āļāļ„āļ­āļ„āļēāļ„āļēāļ§āļ™āļēāļ—

āļ™āļ™āđ€āļ­āļ‡

3. āđ€āļĢāļĒāļ “I2C Write (Array).vi” āđ€āļžāļ­āđ€āļĢāļĄāļ•āļ™āļ•āļ‡āļ„āļēāđ€āļ§āļĨāļēāļ›āļˆāļˆāļšāļ™āđƒāļŦāļāļš RTC āđƒāļ™āļĢāļ›āđāļšāļš

‘MM/DD/YYYY HH:MM:SS”

4. āđ€āļĢāļĒāļāļŸāļ‡āļāļŠāļ™ “Binary to BCD” āđ€āļžāļ­āđāļ›āļĨāļ‡āļ„āļē Date/Time āđ„āļ›āđ€āļ›āļ™āđ„āļšāļ™āļēāļĨāļ— RTC āđ€āļ‚āļēāđƒāļˆāđ€āļžāļ­āļ•āļ‡

āļ„āļēāđ€āļ§āļĨāļē

Page 30: Arduino-Based Embedded Data Logger using LabVIEW

4.2 āļāļēāļĢāļ­āļēāļ™āļ„āļēāđ€āļ§āļĨāļēāļ›āļˆāļˆāļšāļ™āļˆāļēāļ RTC (READ DS1307 Real Time Clock.vi)

āļ•āļ§āļ­āļĒāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļēāļ™āļ„āļēāļˆāļēāļ RTC āđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļ—āļēāļ‡ COM Port āļ­āļĒāļēāļ‡āļ‡āļēāļĒ

āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ “READ DS1307 Real Time Clock” āļ­āļ˜āļšāļēāļĒāđ„āļ”āļ”āļ‡āļ™

1. āđ€āļĢāļĒāļ “I2C Open.vi” āđ€āļžāļ­āļ•āļ‡āļ„āļēāđ€āļĢāļĄāļ•āļ™āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­āļāļš RTC DS1307 āļ—āļēāļ‡āļžāļ­āļĢāļ• I2C

2. āđ€āļĢāļĒāļāļŸāļ‡āļāļŠāļ™ “Read RTC Time and Format.vi” āļ‹āļ‡āđ€āļ›āļ™ Sub-VI āļ—āļ­āļēāļ™āļ„āļēāđ€āļ§āļĨāļēāļˆāļēāļāļžāļ­āļĢāļ• I2C

āđāļĨāļ°āđāļ›āļĨāļ‡āļ„āļēāđ€āļ›āļ™āļ•āļ§āđ€āļĨāļ‚āļ—āđ€āļĢāļēāđ€āļ‚āļēāđƒāļˆāđƒāļŦāļ­āļ•āđ‚āļ™āļĄāļ• āđ‚āļ”āļĒāļˆāļ°āļ­āļĒāđƒāļ™āļĢāļ›āđāļšāļš ‘MM/DD/YYYY HH:MM:SS”

3. āđ€āļĢāļĒāļāļŸāļ‡āļāļŠāļ™ Debug Tool āđ€āļžāļ­āļ— āļēāļāļēāļĢāļŠāļ‡āļ„āļēāđ€āļ§āļĨāļēāļ›āļˆāļˆāļšāļ™āļ­āļ­āļāļ—āļžāļ­āļĢāļ• COM Port

4. āļ āļēāļŦāļ™āļ” Loop āđ€āļ§āļĨāļēāļāļēāļĢāļ­āļēāļ™āļ„āļē āļ—āļāđ† 1 āļ§āļ™āļēāļ—

5. āļ āļēāļŦāļ™āļ”āđƒāļŦ Loop āļ— āļēāļ‡āļēāļ™āđāļšāļšāđ„āļĄāļĄāļŠāļ™āļŠāļ” āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ”āļ„āļē “False” āđƒāļŦāļāļš Conditional Terminal āļ—

āļĄāļĄāļĨāļēāļ‡āļ‚āļ§āļēāļ‚āļ­āļ‡ While Loop

Page 31: Arduino-Based Embedded Data Logger using LabVIEW

āļœāļĨāļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ—āļēāļ‡ COM Port āļˆāļ°āđ€āļŦāļ™āļ§āļēāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ­āļēāļ™āļ„āļēāđ„āļ”āļ–āļāļ•āļ­āļ‡

āļˆāļēāļāļ™āļ™āđ€āļ›āļ” Serial Monitor āļāļˆāļ°āđ€āļŦāļ™āļ§āļēāļ„āļēāđ€āļ§āļĨāļēāļ›āļˆāļˆāļšāļ™āđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļĄāļēāļ— COM Port āļ—āļāđ† 1 āļ§āļ™āļēāļ—

(*āđƒāļ™āļāļĢāļ“āļ—āđ€āļ§āļĨāļēāđ„āļĄāļ•āļĢāļ‡ āļ•āļ­āļ‡āļāļĨāļšāđ„āļ›āļ•āļ‡āđ€āļ§āļĨāļēāđƒāļŦāļĄāļ”āļ§āļĒ “SET DS1307 Real Time Clock”)

āđƒāļšāļ‡āļēāļ™āļ— 7. āļāļēāļĢāđ€āļ‚āļĒāļ™āļ‚āļ­āļĄāļĨ RTC āļĨāļ‡ SD Card (SPI Interface)

āļšāļ­āļĢāļ” Data Logger Shield āļ—āļĄ Slot SD Card āļĄāļēāđƒāļŦāļžāļĢāļ­āļĄāđƒāļŠāļ‡āļēāļ™

āđƒāļšāļ‡āļēāļ™āļ™āļˆāļ°āđ€āļ›āļ™āļ•āļ§āļ­āļĒāļēāļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™āļ‚āļ­āļĄāļĨāđ€āļ§āļĨāļēāļ—āļ­āļēāļ™āļĄāļēāļˆāļēāļ RTC āļšāļ™āļ—āļāļĨāļ‡ SD Card āđ‚āļ”āļĒāļāļēāļĢ

āđ€āļŠāļ­āļĄāļ•āļ­āļāļš SD Card āļˆāļ°āđƒāļŠ SPI Bus āđ‚āļ”āļĒāļžāļ­āļĢāļ•āļ—āđ€āļŠāļ­āļĄāļ•āļ­āļ–āļāļ āļēāļŦāļ™āļ”āđ„āļ§āđāļĨāļ§āđ‚āļ”āļĒ Data Logger Shield

āđāļŠāļ”āļ‡āļ”āļ‡āļ™

Page 32: Arduino-Based Embedded Data Logger using LabVIEW

CK = D13

MISO = D12

MOSI =D11

CS = D10

āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļˆāļ°āđ€āļĢāļĒāļāļŸāļ‡āļāļŠāļ™āļˆāļēāļ SD Card āđ„āļĨāļšāļēāļĢ āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ› *āļ‹āļ‡āļˆāļ°āļĢāļ­āļ‡āļĢāļš SD Card āļ— Format

āđāļšāļš FAT16 āļŦāļĢāļ­ FAT32 āđ€āļ—āļēāļ™āļ™

āđ„āļĨāļšāļēāļĢāđ€āļāļĒāļ§āļāļš SD Card āļĄāļŸāļ‡āļāļŠāļ™āđƒāļŦāđ€āļĢāļĒāļāđƒāļŠāļ‡āļēāļ™āđ„āļ”āļ—āļ™āļ—

āđ‚āļ”āļĒ SD Card āđ„āļĨāļšāļēāļĢ āļ­āļēāļ‡āļ­āļ‡āļˆāļēāļāļĄāļēāļ•āļĢāļēāļāļēāļ™ “SD Library 8.3 Filename” āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āļēāļŠāļēāļĄāļēāļĢāļ–

āļ•āļ‡āļŠāļ­āđ„āļŸāļĨāđ„āļ”āļŠāļ‡āļŠāļ” 8 āļ•āļ§āļ­āļāļĐāļĢ āđāļĨāļ°āļ™āļēāļĄāļŠāļāļĨāļ‚āļ­āļ‡āđ„āļŸāļĨ 3 āļ•āļ§āļ­āļāļĐāļĢ āđ€āļ—āļēāļ™āļ™ āđāļĨāļ°āļŠāļ­āđ„āļŸāļĨāļˆāļ°āđ€āļ›āļ™āļ•āļ§āļ­āļāļĐāļĢāļ•āļ§

āđƒāļŦāļāļ—āļ‡āļŦāļĄāļ” āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™ “DATALOG.CSV”

Page 33: Arduino-Based Embedded Data Logger using LabVIEW

āļ•āļ§āļ­āļĒāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļēāļ™āļ„āļēāļˆāļēāļ RTC āļˆāļēāļāļ™āļ™āļšāļ™āļ—āļāļ‚āļ­āļĄāļĨāļĨāļ‡ SD Card āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ—āļēāļ‡ COM Port

āđ€āļĢāļēāļĨāļ­āļ‡āļĄāļēāļ”āļ•āļ§āļ­āļĒāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ› āđ‚āļ”āļĒāļ­āļ˜āļšāļēāļĒāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ‡āļ™

1. āđ€āļĢāļĒāļ “I2C Open.vi” āđ€āļžāļ­āļ•āļ‡āļ„āļēāđ€āļĢāļĄāļ•āļ™āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­āļāļš RTC DS1307 āļ—āļēāļ‡āļžāļ­āļĢāļ• I2C

2. āđ€āļĢāļĒāļ “Read RTC Time and Format.vi” āđ€āļžāļ­āļ­āļēāļ™āļ„āļēāđ€āļ§āļĨāļēāļ›āļˆāļˆāļšāļ™āļˆāļēāļ RTC

3. āđ€āļĢāļĒāļ “SD Data Logger.vi” āđ€āļžāļ­āļšāļ™āļ—āļāļ‚āļ­āļĄāļĨāļĨāļ‡ SD Card āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ‡āļēāļĒāļĄāļēāļ āđ€āļžāļĒāļ‡āļ āļēāļŦāļ™āļ” āļŠāļ­

āđ„āļŸāļĨ = “datalog”,CS Pin = 10 āđāļĨāļ°āļ āļēāļŦāļ™āļ”āļ‚āļ­āļĄāļĨāļ—āļ•āļ­āļ‡āļāļēāļĢāļšāļ™āļ—āļāđ€āļ›āļ™ Array āļ‚āļ­āļ‡āļ•āļ§āđ€āļĨāļ‚ āļˆāļēāļāļ™āļ™

āļŸāļ‡āļāļŠāļ™āļ™āļˆāļ°āļšāļ™āļ—āļāļ‚āļ­āļĄāļĨ āđ€āļ›āļ™āđ„āļŸāļĨ .CSV āđƒāļŦāļ­āļ•āđ‚āļ™āļĄāļ•

4. āļ—āļ”āļĨāļ­āļ‡āļŠāļĢāļēāļ‡āļ„āļēāļ•āļ§āđ€āļĨāļ‚ āļ•āļēāļĄāļˆ āļēāļ™āļ§āļ™ Loop āļ—āļ— āļēāļ‡āļēāļ™ āđ‚āļ”āļĒāļˆāļ°āđ€āļžāļĄāļ„āļĢāļ‡āļĨāļ° 1 āđƒāļ™āđāļ•āļĨāļ° Loop *āđ€āļ™āļ­āļ‡āļ”āļ§āļĒ

āđ€āļ›āļ™āļ„āļēāļ•āļ§āđ€āļĨāļ‚āļ„āļ‡āļ— DBL āļ— āļēāđƒāļŦāļ•āļ­āļ‡āđƒāļŠāļŸāļ‡āļāļŠāļ™ Build Array āđ€āļžāļ­āđāļ›āļĨāļ‡āļ•āļ§āđ€āļĨāļ‚āđ€āļ›āļ™āļ‚āļ­āļĄāļĨ Array āļŠāļ‡

āđƒāļŦāļāļš SD Data Logger.vi

5. āđ€āļĢāļĒāļāļŸāļ‡āļāļŠāļ™ Debug Tool āđ€āļžāļ­āļ— āļēāļāļēāļĢāļŠāļ‡āļ„āļēāļ—āļšāļ™āļ—āļāļĨāļ‡ SD Card āļ­āļ­āļāļ—āļēāļ‡ COM Port āđ€āļžāļ­

āđāļŠāļ”āļ‡āļœāļĨ

Page 34: Arduino-Based Embedded Data Logger using LabVIEW

āļœāļĨāļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ— COM Port āļˆāļ°āđ€āļŦāļ™āļ§āļēāļŠāļ­āļĄāļĨāļˆāļ°āļ­āļĒāđƒāļ™ CSV format āđ€āļŦāļĄāļ­āļ™āļāļšāļ—āđ€āļ‚āļĒāļ™āļĨāļ‡ SD Card

āļˆāļēāļāļ™āļ™āđ€āļ›āļ” Serial Monitor āļāļˆāļ°āđ€āļŦāļ™āļ§āļēāļ‚āļ­āļĄāļĨāļ—āļšāļ™āļ—āļāđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļĄāļēāļ— COM Port āļ—āļāđ† 1 āļ§āļ™āļēāļ— (*

āđ€āļ™āļ­āļ‡āļˆāļēāļāļ§āļēāļāļēāļĢāļšāļ™āļ—āļāļ‚āļ­āļĄāļĨāļĨāļ‡ SD Card āļˆāļ°āđƒāļŠāđ€āļ§āļĨāļēāļ›āļĢāļ°āļĄāļēāļ“ 250ms āļ‹āļ‡āļ–āļ­āļ§āļēāļŠāļēāļžāļ­āļŠāļĄāļ„āļ§āļĢ āļ”āļ‡āļ™āļ™āļ•āļ­āļ‡

āļ„ āļēāļ™āļ‡āļ–āļ‡āļāļēāļĢāļ āļēāļŦāļ™āļ”āđ€āļ§āļĨāļē Timing āđƒāļ™āļāļēāļĢāļšāļ™āļ—āļāļ‚āļ­āļĄāļĨāļ”āļ§āļĒ āļ„āļ§āļĢāļŦāļĨāļāđ€āļĨāļĒāļ‡āđ‚āļ„āļ”āļ—āļŦāļ™āļ§āļ‡āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļšāļ™āļ—āļ āđāļĨāļ°

āļ­āļēāļˆāļˆāļ°āļ•āļ­āļ‡āļ āļēāļŦāļ™āļ”āđ€āļ§āļĨāļē Delay āļ‚āļ­āļ‡ Loop āđƒāļŦāļ™āļ­āļĒāļĨāļ‡ āđāļ•āđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āļŠāļ§āļ™āđƒāļŦāļāļ—āļšāļ™āļ—āļāļ‚āļ­āļĄāļĨāļ—āļāđ† 1 āļ§āļ™āļēāļ—

āļāđƒāļŠāļ‡āļēāļ™āđ„āļ”āļ›āļāļ•)

Page 35: Arduino-Based Embedded Data Logger using LabVIEW

āđƒāļšāļ‡āļēāļ™āļ— 8. āđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļēāļ™āļ„āļēāļ­āļ“āļŦāļ āļĄāļˆāļēāļ Thermocouple āļˆāļēāļ MAX6675 āļœāļēāļ™

āļžāļ­āļĢāļ• SPI

āļšāļ­āļĢāļ” MAX667 āļŠ āļēāļŦāļĢāļšāļ­āļēāļ™āļ„āļēāļ­āļ“āļŦāļ āļĄāļˆāļēāļ Thermocouple āļŠāļ™āļ” K-Type

āđƒāļ™āđƒāļšāļ‡āļēāļ™āļ™āđ€āļĢāļēāļˆāļ°āđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļžāļ­āļ­āļēāļ™āļ„āļēāļ­āļ“āļŦāļ āļĄāļˆāļēāļ MAX6675 āļ‹āļ‡āđ€āļ›āļ™ Thermocouple K-Type

āđ„āļĨāļšāļēāļĢ SPI āļŠ āļēāļŦāļĢāļšāļ•āļ”āļ•āļ­āļāļšāļ­āļ›āļāļĢāļ“āļ•āļēāļ‡āđ† āđ„āļ”āļ—āļ™āļ—

Page 36: Arduino-Based Embedded Data Logger using LabVIEW

āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļēāļ™āļ„āļēāļ­āļ“āļŦāļ āļĄāļˆāļēāļ MAX6675 āļœāļēāļ™āļšāļŠ SPI

āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļ˜āļšāļēāļĒāđ„āļ”āļ”āļ‡āļ™

1. āđ€āļĢāļĒāļ “SPI Open Express.vi” āđ€āļžāļ­āđ€āļĢāļĄāļ•āļ™āļāļēāļĢāļ•āļ”āļ•āļ­āļāļš SPI Bus āđ‚āļ”āļĒāļ•āļ­āļ‡āļ āļēāļŦāļ™āļ” CS Pin āđƒāļ™āļāļĢāļ“

āļ™āļœāļĄāđ€āļŠāļ­āļĄāļ•āļ­ CS Pin āđ„āļ§āļāļš Digital Pin = “9” āđāļĨāļ°āđƒāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļ™āđƒāļŠ SPI Clock Speed = 2MHz

āļ”āļ‡āļ™āļ™āļ•āļ­āļ‡āļ āļēāļŦāļ™āļ” Clock Divider = 5 āļŦāļĄāļēāļĒāļ–āļ‡ āļˆāļ°āļ™ āļē Clock āļšāļ™āļšāļ­āļĢāļ”āļŦāļēāļĢāļ”āļ§āļĒ 8 āđƒāļ™āļāļĢāļ“āļ™āļœāļĄāđƒāļŠ

āļšāļ­āļĢāļ” Arduino Uno āļ—āļĄāļŠāļāļāļēāļ“āļ™āļēāļŸāļāļē 16MHz āļ”āļ‡āļ™āļ™ Clock āđƒāļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ SPI āļˆāļ‡āđ€āļ—āļēāļāļš 16/8

= 2MHz

2. (āļāļēāļĢāļ āļēāļŦāļ™āļ”āļ„āļē Clock Divider āļ­āļēāļ‡āļ­āļ‡āļˆāļēāļ Help āļ­āļ˜āļšāļēāļĒāđ„āļ”āļ”āļ‡āļ•āļ­āđ„āļ›āļ™ = 0 āļŦāļēāļĢāļ”āļ§āļĒ 4, =1 āļŦāļēāļĢ

āļ”āļ§āļĒ 16, =2 āļŦāļēāļĢāļ”āļ§āļĒ 64, =3 āļŦāļēāļĢāļ”āļ§āļĒ 128, =4 āļŦāļēāļĢāļ”āļ§āļĒ 2, =5āļŦāļēāļĢāļ”āļ§āļĒ 8 āđāļĨāļ° = 6 āļŦāļēāļĢāļ”āļ§āļĒ 32,

āļ„āļēāđ€āļĢāļĄāļ•āļ™āļˆāļ°āļ āļēāļŦāļ™āļ”āđ„āļ§āļ— Clock Divider = 0 āļ‹āļ‡āļˆāļ°āļ āļēāļŦāļ™āļ” Clock āđƒāļŠāļ‡āļēāļ™āđ„āļ§āļ— 4MHz āļ”āļ‡āļ™āļ™āđƒāļ™

āļšāļ­āļĢāļ” Uno 16MHz/4 = 4MHz)

3. āđ€āļĢāļĒāļ “SPI Transfer.vi” āđ€āļžāļ­āļ­āļēāļ™āļ‚āļ­āļĄāļĨāļˆ āļēāļ™āļ§āļ™ 1 āđ„āļšāļ• (8 āļšāļ•) āļ„āļēāđ€āļĢāļĄāļ•āļ™āļˆāļ°āļ āļēāļŦāļ™āļ”āđƒāļŦāļ­āļēāļ™āļˆāļēāļ

MSB

4. āđ€āļĢāļĒāļ “SPI Transfer.vi” āļ­āļāļ„āļĢāļ‡āļŦāļ™āļ‡ āđ€āļžāļ­āļ­āļēāļ™āļ‚āļ­āļĄāļĨāļˆ āļēāļ™āļ§āļ™ 1 āđ„āļšāļ• (8 āļšāļ•) āđƒāļ™āļ„āļĢāļ‡āļ™āļ āļēāļŦāļ™āļ”āđƒāļŦāļ­āļēāļ™

LSB

5. āļ— āļēāļāļēāļĢāđāļ›āļĨāļ‡āļ„āļēāļ‚āļ­āļĄāļĨāđƒāļŦāđ€āļ›āļ™āļ„āļēāļ­āļ“āļŦāļ āļĄāļ•āļēāļĄ Format āđƒāļ™ Datasheet āļ‚āļ­āļ‡ MAX6675 āļ‹āļ‡āļ­āļ˜āļšāļēāļĒ

āđ€āļžāļĄāđ€āļ•āļĄāđ„āļ”āļ”āļ‡āļĢāļ›

Page 37: Arduino-Based Embedded Data Logger using LabVIEW

6. āļ— āļēāļāļēāļĢāđāļ›āļĨāļ‡āļ„āļēāļ­āļ“āļŦāļ āļĄāļ—āļ­āļēāļ™āļĄāļēāđ„āļ”āđƒāļŦāļ­āļĒāđƒāļ™āļĢāļ›āļ‚āļ­āļ„āļ§āļēāļĄ āđ€āļŠāļ™ 36.75’C āļˆāļ°āđāļŠāļ”āļ‡āļœāļĨ = “Temp:

36.75C,”

7. āđ€āļĢāļĒāļāļŸāļ‡āļāļŠāļ™ Debug Tool āđ€āļžāļ­āļ— āļēāļāļēāļĢāļŠāļ‡āđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļ—āļēāļ‡ COM Port

8. āļ āļēāļŦāļ™āļ”āđ€āļ§āļĨāļēāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Loop = 250ms āđ€āļ™āļ­āļ‡āļˆāļēāļ MAX6675 āļˆāļ°āđƒāļŠāđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ­āļēāļ™āļ‚āļ­āļĄāļĨ

220ms āļ•āļēāļĄāļ—āļ āļēāļŦāļ™āļ”āđƒāļ™ Datasheet

āļœāļĨāļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ­āļēāļ™āļ„āļēāđāļŠāļ”āļ‡āļœāļĨāļ—āļēāļ‡ COM Port āļˆāļ°āđ„āļ”āļ‚āļ­āļĄāļĨāļ­āļ“āļŦāļ āļĄāļŠāļēāļĄāļēāļĢāļ–āđāļŠāļ”āļ‡āđ„āļ”āļ–āļāļ•āļ­āļ‡

Page 38: Arduino-Based Embedded Data Logger using LabVIEW

āđƒāļšāļ‡āļēāļ™āļ— 9. āļāļēāļĢāļŠāļĢāļēāļ‡ Thermocouple Data Logger āļ‰āļšāļšāļŠāļĄāļšāļĢāļ“

āļˆāļēāļāđƒāļšāļ‡āļēāļ™āļāļ­āļ™āļŦāļ™āļēāļ™ āļ„āļ“āļœāļ­āļēāļ™āļ„āļ‡āđ„āļ”āđ€āļĢāļĒāļ™āļĢāļāļēāļĢāđƒāļŠāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļĢāļ§āļĄāļāļš Arduino āđāļĨāļ°āļ­āļ›āļāļĢāļ“

āļ•āļēāļ‡āđ†āđƒāļ™āđ€āļšāļ­āļ‡āļ•āļ™āđ€āļĢāļĒāļšāļĢāļ­āļĒāđāļĨāļ§ āđƒāļ™āļšāļ—āļ™āđ€āļĢāļēāļˆāļ°āļĄāļēāļŠāļĢāļēāļ‡ Data Logger āļ—āļŠāļĄāļšāļĢāļ“āđ‚āļ”āļĒāļāļēāļĢāļ™ āļēāļ„āļ§āļēāļĄāļĢāļˆāļēāļāļāļēāļĢ

āđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļŠāļ§āļ™āļ•āļēāļ‡āđ†āļĄāļēāļ›āļĢāļ°āļāļ­āļšāļāļ™āđƒāļŦāđ€āļ›āļ™āđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™ Thermocouple Data Logger āđ‚āļ”āļĒāļĄāļŸāļ‡āļāļŠāļ™

Alarm āđ€āļĄāļ­āļ­āļ“āļŦāļ āļĄāļŠāļ‡āļāļ§āļēāļ„āļēāļ—āļ āļēāļŦāļ™āļ”āđ„āļ§ āđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļ—āļēāļ‡ LED āļšāļ™āļšāļ­āļĢāļ” āđāļĨāļ°āļŠāļ‡āļŠāļāļāļēāļ“āđ€āļŠāļĒāļ‡āđ€āļ•āļ­āļ™

āļ­āļ­āļāļ—āļēāļ‡ Buzzer āļĢāļēāļĒāļāļēāļĢāļŪāļēāļĢāļ”āđāļ§āļĢāđāļĨāļ°āļ­āļ›āļāļĢāļ“āļ—āđƒāļŠāđƒāļ™āđƒāļšāļ‡āļēāļ™āļ™āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āļ§āļĒ

āļšāļ­āļĢāļ” Arduino-Compatible Uno R3 āđ„āļĄāđ‚āļ„āļĢāļ„āļ­āļ™āđ‚āļ—āļĢāļĨāđ€āļĨāļ­āļĢ

āļšāļ­āļĢāļ” Data Logger Shield āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒ SD Card āđāļĨāļ° Real-Time Clock (RTC)

āļšāļ­āļĢ LCD Display 16x2 āđ€āļŠāļ­āļĄāļ•āļ­āđāļšāļš I2C

āļšāļ­āļĢāļ” MAX6675 Thermocouple Type-K Module

āļšāļ­āļĢāļ” Data Logger Shield āļ—āļ•āļ”āļ•āļ‡ MAX6675 āđāļĨāļ° Buzzer āļšāļ™ Prototype Area

āđ‚āļ”āļĒāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļžāļ’āļ™āļēāļ‚āļ™āļˆāļ°āđāļšāļ‡āđ€āļ›āļ™ 2 āļŠāļ§āļ™āļŦāļĨāļāđ† āļ„āļ­ āļŠāļ§āļ™āđāļĢāļāļ„āļ­ āļāļēāļĢāļ•āļ‡āļ„āļēāđ€āļĢāļĄāļ•āļ™āļ•āļēāļ‡āđ†āđƒāļŦāļžāļĢāļ­āļĄ

āđƒāļŠāļ‡āļēāļ™ āđāļĨāļ°āļŠāļ§āļ™āļ—āļŠāļ­āļ‡āļ„āļ­ āđ‚āļ„āļ”āļ—āļ­āļĒāđƒāļ™ Loop āļ‹āļ‡āļˆāļ°āļ— āļēāļ‡āļēāļ™āļ§āļ™āļ‹ āļēāđ†āđ„āļ›āđ€āļĢāļ­āļĒ āđ€āļžāļ­āļ­āļēāļ™āļ„āļēāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ—āļēāļ‡ LCD

Page 39: Arduino-Based Embedded Data Logger using LabVIEW

āļŦāļ™āļēāļ•āļēāļ‡āļāļēāļĢāļ•āļ‡āļ„āļē Address āđāļĨāļ°āļ„āļēāļ„āļ‡āļ—āļ•āļēāļ‡āđ† āļ‚āļ­āļ‡ Front Panel

āļœāļĨāļāļēāļĢāļ„āļ­āļĄāđ„āļžāļĨāđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļāļ™āļžāļ™āļ—āļšāļ™ Flash āļ›āļĢāļ°āļĄāļēāļ“ 25KB (78%) āđāļĨāļ°āļāļ™āļžāļ™āļ— RAM āļ›āļĢāļ°āļĄāļēāļ“ 1.11

KB (54%) āđ€āļĄāļ­āđ€āļ—āļĒāļšāļāļšāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāļ—āļ‡āļŦāļĄāļ”āļšāļ™āļšāļ­āļĢāļ” Arduino Uno

Page 40: Arduino-Based Embedded Data Logger using LabVIEW

āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ Initial Haradware āļ—āļ‡āļŦāļĄāļ”

āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™āļŠāļ§āļ™āļŦāļĨāļāļ—āļ­āļēāļ™āļ„āļē āļšāļ™āļ—āļ āđāļŠāļ”āļ‡āļœāļĨ āđāļĨāļ°āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļāļš Temp Alarm

Page 41: Arduino-Based Embedded Data Logger using LabVIEW

āļ•āļ§āļ­āļĒāļēāļ‡āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļ—āļēāļ‡ LCD āļ‹āļ‡āļˆāļ°āļĄāļ„āļēāđ€āļ§āļĨāļē āļ­āļ“āļŦāļ āļĄ āđāļĨāļ° Alarm (*āđƒāļ™āļāļĢāļ“āļ™ 45 āļ„āļ­ āļ­āļ“āļŦāļ āļĄ

Alarm āļ—āļ āļēāļŦāļ™āļ”āđ„āļ§ āļ–āļēāļ­āļ“āļŦāļ āļĄāļ›āļˆāļˆāļšāļ™āļŠāļ‡āļāļ§āļēāļ™āļˆāļ°āļĄāđ€āļŠāļĒāļ‡āđāļˆāļ‡āđ€āļ•āļ­āļ™āļ—āļēāļ‡ Buzzer)

āļ­āļ›āļāļĢāļ“ Arduino-Based Embedded Data Logger āļ‰āļšāļšāļŠāļĄāļšāļĢāļ“

Page 42: Arduino-Based Embedded Data Logger using LabVIEW
Page 43: Arduino-Based Embedded Data Logger using LabVIEW

āđ€āļĄāļ­āļ™ āļē SD Card āđ„āļ›āđ€āļ›āļ”āđƒāļ™āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļˆāļ°āđāļŠāļ”āļ‡āļ„āļēāļ‚āļ­āļĄāļĨāļ—āļšāļ™āļ—āļāđ„āļ§ āļ‹āļ‡āļĄ 3 āļ‚āļ­āļĄāļĨ āļ„āļ­āđ€āļ§āļĨāļē āļ­āļ“āļŦāļ āļĄ āđāļĨāļ°

āļŠāļ–āļēāļ™āļ° Alarm Status

āļœāļĨāļāļēāļĢāļžāļĨāļ­āļ•āļāļĢāļēāļŸāđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ Excel āļˆāļēāļāļ‚āļ­āļĄāļĨāđƒāļ™ SD Card

Page 44: Arduino-Based Embedded Data Logger using LabVIEW

āļšāļ—āļŠāļĢāļ›

āļœ āđ€āļ‚āļĒāļ™āļĄāļ‡āļŦāļ§āļ‡āđƒāļŦāļšāļ—āļ„āļ§āļēāļĄāļ™āļ™ āļēāđ€āļŠāļ™āļ­āļāļēāļĢāļžāļ’āļ™āļē Embedded Data Logger āļ”āļ§āļĒāļ āļēāļĐāļē LabVIEW

āļ‹āļ‡āđ€āļ›āļ™āļ āļēāļĐāļēāļ—āļēāļ‡āđ€āļĨāļ­āļāļ™āļ­āļāđ€āļŦāļ™āļ­āļˆāļēāļāļ āļēāļĐāļē C/C++ āļ—āļ™āļĒāļĄāđƒāļŠāļ‡āļēāļ™āļāļ™āđƒāļ™āļ›āļˆāļˆāļšāļ™ āļœ āđ€āļ‚āļĒāļ™āđ€āļĨāļ‡āđ€āļŦāļ™āļ§āļē

LabVIEW āđ€āļ›āļ™āļ āļēāļĐāļēāļ—āļžāļ’āļ™āļēāđ„āļ”āļ‡āļēāļĒ āđāļĨāļ°āļ— āļēāļ„āļ§āļēāļĄāđ€āļ‚āļēāđƒāļˆāđ‚āļ„āļ”āđ„āļ”āļĢāļ§āļ”āđ€āļĢāļ§ āļ— āļēāđƒāļŦāļœāļžāļ’āļ™āļēāļŠāļēāļĄāļēāļĢāļ–āļĄāļ‡āđ€āļ™āļ™āđ„āļ›āļ—

āļāļēāļĢāđ€āļžāļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļ‚āļ­āļ‡āđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™ āļĄāļēāļāļāļ§āļēāļˆāļ°āļ•āļ­āļ‡āļāļ‡āļ§āļĨāđ€āļĢāļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļĄāļ­ āļŦāļĢāļ­āļ āļēāļĐāļēāđƒāļ™āļāļēāļĢāļžāļ’āļ™āļē

āđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ “Arduino compatible compiler for LabVIEW (ACC4LV)” āļ–āļ­āļ§āļēāđ€āļ›āļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļ— āļē

āđƒāļŦāļ„āļ§āļēāļĄāļāļ™āļ‚āļ­āļ‡āļ™āļāļžāļ’āļ™āļē LabVIEW āđ€āļ›āļ™āļ„āļ§āļēāļĄāļˆāļĢāļ‡ āđ€āļ™āļ­āļ‡āļˆāļēāļāļŠāļēāļĄāļēāļĢāļ–āđ‚āļ›āļĢāđāļāļĢāļĄāđ‚āļ„āļ” LabVIEW āļĨāļ‡

āļŪāļēāļĢāļ”āđāļ§āļĢāļĢāļēāļ„āļēāļ–āļāļ­āļĒāļēāļ‡ Arduino āđ„āļ” āđāļĨāļ°āđ„āļĨāļšāļēāļĢāļāļĒāļ”āļŦāļĒāļ™āđƒāļŦāđ€āļ‚āļĒāļ™āđ€āļžāļ­āđ€āļŠāļ­āļĄāļ•āļ­āļāļšāļšāļ­āļĢāļ”āđ€āļŠāļĢāļĄ Shields

āļ āļēāļĒāļ™āļ­āļāđ„āļ” āļ­āļēāļ— āļœāļēāļ™āļšāļŠ UART,I2C āļŦāļĢāļ­ SPI āđ„āļ” āđ‚āļ”āļĒāđƒāļ™āļ›āļˆāļˆāļšāļ™āđāļžāļĨāļ•āļžāļ­āļĢāļĄ Arduino āļĄāļšāļ­āļĢāļ” Shields

āļˆ āļēāļ™āļ§āļ™āļĄāļēāļāļŦāļĨāļēāļĒāļŦāļĨāļēāļĒāļŠāļ™āļ” āļ— āļēāđƒāļŦāļāļēāļĢāļžāļ’āļ™āļēāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āļ”āļ§āļĒ LabVIEW āļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāđ„āļ›āđƒāļŠāļ‡āļēāļ™āđ„āļ”

āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļ•āļ‡āđāļ• Home Application āđ„āļ›āļˆāļ™āļ–āļ‡āļ‡āļēāļ™āđƒāļ™āļ­āļ•āļŠāļēāļŦāļāļĢāļĢāļĄ āļ›āļĢāļ°āļāļ­āļšāļāļšāļœāļžāļ’āļ™āļēāļāļ­āļžāđ€āļ”āļˆ

āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡āļ„āļ­āļĄāđ„āļžāđ€āļĨāļ­āļĢāļ­āļĒāđ€āļĢāļ­āļĒāđ† āļ–āļēāļ„āļ“āļœāļ­āļēāļ™āđ€āļĢāļĄāļ•āļ™āļĻāļāļĐāļē āļ“ āļ§āļ™āļ™ āđƒāļ™āļ­āļ™āļēāļ„āļ•āļœ āđ€āļ‚āļĒāļ™āļĄāļ­āļ‡āļ§āļēāļˆāļ°āļ— āļē

āđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļžāļ’āļ™āļēāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āļ•āļēāļ‡āđ†āđ„āļ”āļ­āļĒāļēāļ‡āļĢāļ§āļ”āđ€āļĢāļ§āđāļ™āļ™āļ­āļ™

āđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ Hardware āļ­āļ›āļāļĢāļ“āļ—āļāļŠāļ™āđƒāļ™āļšāļ—āļ„āļ§āļēāļĄāļ™āļˆāļ”āļ— āļēāļ‚āļ™āđ€āļžāļ­āļ›āļĢāļ°āļāļ­āļšāļāļēāļĢāđ€āļĢāļĒāļ™āļĢāđ€āļ—āļēāļ™āļ™ āļœ āđ€āļ‚āļĒāļ™

āļĄāđ„āļ”āļ›āļĢāļšāđāļ•āļ‡āđ€āļžāļ­āđƒāļŠāļ‡āļēāļ™āđƒāļ™āļŠāļ āļēāļžāđāļ§āļ”āļĨāļ­āļĄāļˆāļĢāļ‡ āļ­āļēāļ— āļĨāļ”āļŠāļāļāļēāļ“āļĢāļšāļāļ§āļ™ āļ›āļĢāļšāļ„āļ§āļēāļĄāļ–āļāļ•āļ­āļ‡āļ‚āļ­āļ‡āļ­āļ“āļŦāļ āļĄāļ—

āļ­āļēāļ™āđ„āļ” āđāļĨāļ°āļŸāļ‡āļāļŠāļ™āļ­āļ™āđ† āļ”āļ‡āļ™āļ™ āļ–āļēāļœāļ­āļēāļ™āļ•āļ­āļ‡āļāļēāļĢāļ™ āļēāđ€āļ­āļēāļ­āļ›āļāļĢāļ“ Data Logger āđāļĨāļ°āđ‚āļ„āļ” LabVIEW āļ—āđ€āļ‚āļĒāļ™

āļ‚āļ™āđƒāļ™āļšāļ—āļ„āļ§āļēāļĄāļ™āđ„āļ›āđƒāļŠāļ‡āļēāļ™āļˆāļĢāļ‡ āļœāļ­āļēāļ™āļ•āļ­āļ‡āļ›āļĢāļšāļ›āļĢāļ‡āđ€āļžāļ­āđƒāļŦāđ€āļŦāļĄāļēāļ°āļāļšāļŠāļ āļēāļžāđāļ§āļ”āļĨāļ­āļĄāđƒāļ™āļāļēāļĢāļ™ āļēāđ„āļ›āđƒāļŠāļ”āļ§āļĒāļ•āļ™āđ€āļ­āļ‡

Page 45: Arduino-Based Embedded Data Logger using LabVIEW

āļšāļ—āļŠāļ‡āļ—āļēāļĒ

āļ‚āļ­āļ„āļ§āļĢāļĢāļāļ­āļ™āđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ§āļĒ Arduino Compatible Compiler for LabVIEW

āđ‚āļ”āļĒāļ›āļāļ•āļāļēāļĢāđ€āļ‚āļĒāļ™ LabVIEW āļĄāļāļˆāļ°āđƒāļŠāļžāļ’āļ™āļēāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āđƒāļ™āļĨāļāļĐāļ“āļ° PC Based Application āļ—

āļĢāļ™āļšāļ™ Windows āļ•āļ”āļ•āļ­āļāļšāļŪāļēāļĢāļ”āđāļ§āļĢāļœāļēāļ™ Bus āļ•āļēāļ‡āđ† āļ­āļēāļ— RS-232, USB, GPIB āļŦāļĢāļ­ Ethernet āļ‹āļ‡āļĄāļāļˆāļ°āđ„āļĄ

āļžāļšāļ›āļāļŦāļēāļ‚āļ­āļˆ āļēāļāļ”āļ”āļēāļ™ Hardware āđ€āļ—āļēāđƒāļ”āļ™āļ āđ€āļ™āļ­āļ‡āļˆāļēāļ PC āđ€āļ›āļ™ Hardware āļ—āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļŠāļ‡ āđ€āļŠāļ™ CPU

āļĄāļ„āļ§āļēāļĄāđ€āļĢāļ§ āļĢāļ°āļ”āļš GHz āđāļĨāļ° āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļē RAM āļŠāļ‡āļ–āļ‡āļĢāļ°āļ”āļš GB

āđāļ•āļāļēāļĢāđ€āļ‚āļĒāļ™ LabVIEW āđ€āļžāļ­āđƒāļŠāļ‡āļēāļ™āđāļšāļš Embedded Application āļ™āļ™āđāļ•āļāļ•āļēāļ‡āļ­āļĒāļēāļ‡āļĄāļēāļ

āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļ­āļĒāļēāļ‡āļĒāļ‡āļ–āļēāđƒāļŠāļ‡āļēāļ™āļĢāļ§āļĄāļāļš Arduino Platform āļ‹āļ‡āļĄāļ‚āļ­āļˆ āļēāļāļ”āļ”āļēāļ™āļŪāļēāļĢāļ”āđāļ§āļĢāļˆ āļēāļ™āļ§āļ™āļĄāļēāļ āđ€āļžāļĢāļēāļ°āđ€āļ›āļ™

Microcontroller āļ‚āļ™āļēāļ”āđ€āļĨāļ āļĄāļ‚āļ­āļˆ āļēāļāļ”āļ”āļēāļ™ CPU āđāļĨāļ° āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļē āļĒāļāļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™ āļšāļ­āļĢāļ” Arduino Uno

āļĄ CPU 8-bit āļ— āļēāļ‡āļēāļ™āļ— 16MHz āļĄāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđāļšāļš Flash 32kB āđāļĨāļ° āļĄāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļē RAM āđ€āļžāļĒāļ‡ 2kB

āđ€āļ—āļēāļ™āļ™ āļ‹āļ‡āļ–āļ­āļ§āļēāļ™āļ­āļĒāļĄāļēāļāđ† (*āđāļ• “Arduino Compatible Compiler for LabVIEW”

āļ™āļ™āļĢāļ­āļ‡āļĢāļšāļšāļ­āļĢāļ”āļĢāļēāļ„āļēāļ–āļāļ­āļĒāļēāļ‡ Arduino Uno āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āļē Compile āļĄāļ„āļ§āļēāļĄāļ‰āļĨāļēāļ”āđāļĨāļ°āļˆāļ”āļāļēāļĢ

āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđƒāļ™āļĢāļ°āļ”āļš Low Level āđ„āļ”āļ”āđ€āļĒāļĒāļĄ)

āļ”āļ‡āļ™āļ™āļāļēāļĢāļžāļ’āļ™āļē LabVIEW āđ€āļžāļ­āđƒāļŠāļ‡āļēāļ™āļĢāļ§āļĄāļāļšāļšāļ­āļĢāļ” Arduino āļˆāļ‡āļĄāļ‚āļ­āđāļ•āļāļ•āļēāļ‡āļšāļēāļ‡āļ›āļĢāļ°āļāļēāļĢāļ—

āļ™āļāļžāļ’āļ™āļēāļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļĢ āļāļ­āļ™āļ—āļˆāļ°āļāļēāļĢāđ€āļĢāļĄāļ•āļ™āđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ āļœāļĄāļˆāļ‡āļŠāļĢāļ›āļĄāļēāđƒāļŦāđ€āļ›āļ™ 10 āļŦāļ§āļ‚āļ­ āļ”āļ‡āļ•āļ­āđ„āļ›āļ™āļ„āļĢāļš

1.āļāļēāļĢāđ€āļĢāļĒāļāđƒāļŠāļ‡āļēāļ™ “Arduino Compatible Compiler for LabVIEW”

āđƒāļ™āļŦāļ™āļēāļ•āļēāļ‡ “Block Diagram āđƒāļŦāļ„āļĨāļāļ‚āļ§āļē > āđ€āļĨāļ­āļ Addons > Arduino Compatible Compiler

sub-palette” āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ› āļˆāļ°āđ€āļŦāļ™āđ„āļ”āļ§āļēāļ—āļāļŸāļ‡āļāļŠāļ™āļ—āļ­āļĒāđƒāļ™ “Arduino Compatible Compiler” āļŠāļēāļĄāļēāļĢāļ–

āđ‚āļ›āļĢāđāļāļĢāļĄāļĨāļ‡āđƒāļ™ Arduino āđ„āļ”āļ—āļ VIs (*āļ‹āļ‡āļ­āļēāļˆāļˆāļ°āļĄāļŸāļ‡āļāļŠāļ™āđ€āļžāļĄāđ€āļ•āļĄāļ­āļāđƒāļ™āļ­āļ™āļēāļ„āļ•) āđāļ•āļŸāļ‡āļāļŠāļ™āļ­āļ™āđ†

āļ™āļ­āļāđ€āļŦāļ™āļ­āļˆāļēāļāļŦāļ™āļēāļ•āļēāļ‡āļ™ āļˆāļ°āđƒāļŠāļ‡āļēāļ™āđ„āļ”āđ€āļ‰āļžāļēāļ°āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļŠ āļēāļŦāļĢāļš Host PC āđ€āļ—āļēāļ™āļ™ āđāļĨāļ°āļāļēāļĢāđ€āļ‚āļĒāļ™

āđ‚āļ›āļĢāđāļāļĢāļĄāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāļēāļ‡āļˆāļēāļ Main VI āđ„āļ”āđ€āļĨāļĒ āđ„āļĄāļ•āļ­āļ‡āļŠāļĢāļēāļ‡āđ€āļ›āļ™ Project āđ€āļžāļĢāļēāļ°āļ§āļēāđ€āļĢāļēāđ„āļĄāļ•āļ­āļ‡ Build .exe āđ„āļŸāļĨ

āđƒāļ™āļŦāļ™āļēāļ•āļēāļ‡ Project Explorer

Page 46: Arduino-Based Embedded Data Logger using LabVIEW

Arduino Compatible Compiler for LabVIEW sub-Palette

2.āļĒāļ‡āđƒāļŠ Concept āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđāļšāļš Dataflow Programming

āļ„āļ§āļēāļĄāđāļ•āļāļ•āļēāļ‡āļŦāļĨāļāļ‚āļ­āļ‡ LabVIEW āđ€āļĄāļ­āđ€āļ—āļĒāļšāļāļšāļ āļēāļĐāļēāļ­āļ™āđ†āļāļ„āļ­ āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļšāļš “Dataflow” āļ‹āļ‡āļĄ

āļ‚āļ­āļ”āļ—āļŠāļēāļĄāļēāļĢāļ–āļ­āļēāļ™āđ‚āļ„āļ” āđāļĨāļ° Debug āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļ”āļ‡āļēāļĒ āļ›āļāļ•āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļ— āļēāļ‡āļēāļ™āđāļšāļšāļ‹āļēāļĒ-āđ„āļ›āļ‚āļ§āļē āđ‚āļ”āļĒāļĄ

Error In-Out āđ€āļ›āļ™āļ•āļ§āļ āļēāļŦāļ™āļ”āļĨ āļēāļ”āļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ„āļ” āļˆāļēāļāļĢāļ› āļˆāļ°āđ€āļŦāļ™āļ§āļēāļĄāļāļēāļĢāđƒāļŠ “Error In” āđāļĨāļ° “Error

Out” āđƒāļ™āļ—āļāđ† āļŸāļ‡āļāļŠāļ™

āļĢāļ›āđāļšāļšāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđāļšāļš Dataflow Programming

Page 47: Arduino-Based Embedded Data Logger using LabVIEW

āļŠ āļēāļŦāļĢāļšāļŸāļ‡āļāļŠāļ™āļ—āđ„āļĄāļĄ Error In-Out āđƒāļŦāđ€āļŠāļ­āļĄāļ•āļ­ āļāļ•āļ­āļ‡āļŠāļĢāļēāļ‡āļ‚āļ™āļĄāļēāđ€āļ­āļ‡ āļ­āļēāļ— āđƒāļ™āļāļĢāļ“āļ™āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢ

āļ āļēāļŦāļ™āļ” Error In-OutāđƒāļŦ “Wait 100 ms” āļ”āļ‡āļ™āļ™āđ€āļĢāļēāļ•āļ­āļ‡āļŠāļĢāļēāļ‡ “Flat Sequence Structure” āđ€āļžāļ­āđƒāļŦāļĄ Node

āđ€āļŠāļ­āļĄāļ•āļ­ Error In-Out āļ”āļ‡āļĢāļ›

āļāļēāļĢāļŠāļĢāļēāļ‡ Error In-Out āđƒāļŦāļāļš “Wait 100 ms

3.Error Cluster āđƒāļŠāđ€āļžāļ­āļ āļēāļŦāļ™āļ”āļĨ āļēāļ”āļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™ (Dataflow) āđ€āļ—āļēāļ™āļ™ (*āđ„āļĄāļĄāļāļēāļĢāļŠāļ‡āļ„āļēāļžāļēāļĢāļēāļĄāđ€āļ•āļ­āļĢāđƒāļ”āđ†āļœāļēāļ™

Error Cluster)

āļ‚āļ­āļ”āļ‚āļ­āļ‡āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­ Error In-Out āļāļ„āļ­āļāļēāļĢāļ— āļē “Error Handling” āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āļē āļ–āļē Sub-VI āđƒāļ”āđ†

āđ€āļāļ” Error āļ‚āļ™ āļ„āļē “Status” āļ‚āļ­āļ‡ “Error Out” āļāļˆāļ°āļŠāļ‡āļ„āļēāđ€āļ›āļ™ “True” āđ€āļžāļ­āļšāļ­āļ Process āļ–āļ”āđ„āļ›āļ§āļē āļāļ­āļ™āļŦāļ™āļēāļ™

āļĄ Error āđ€āļāļ”āļ‚āļ™ āļ— āļēāđƒāļŦ Process āļ–āļ”āđ„āļ›āđ„āļĄāļ•āļ­āļ‡āđ€āļŠāļĒāđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļĢāļ™āđ‚āļ„āļ” (*āļ‹āļ‡āļˆāļ°āđ€āļŠāļĒāđ€āļ§āļĨāļēāđ‚āļ”āļĒāđƒāļŠāđ€āļŦāļ•) āđ€āļžāļĢāļēāļ°āļ–āļē

āļˆāļ”āđƒāļ” āļˆāļ”āļŦāļ™āļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ Error āļ”āļ‡āļ™āļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļ‡āļŦāļĄāļ”āļāļ„āļ§āļĢāļˆāļ°āļŦāļĒāļ”āļāļēāļĢāļ— āļēāļ‡āļēāļ™ āđ€āļžāļ­āđāļˆāļ‡āđƒāļŦāļāļš User

āļ—āļĢāļēāļšāđ‚āļ”āļĒāđ€āļĢāļ§āļ—āļŠāļ”

āļ•āļ§āļ­āļĒāļēāļ‡āļ„āļē āļžāļēāļĢāļēāļĄāđ€āļ•āļ­āļĢāđƒāļ™ Error Cluster

āļ›āļāļ•āļ–āļēāđ€āļĢāļēāđ€āļ‚āļĒāļ™āđ‚āļ„āļ” LabVIEW āļšāļ™ PC āđ€āļĢāļēāļĄāļāļˆāļ°āļ— āļēāļāļēāļĢ “Error Handing” āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ “Case

Structure” āļĢāļ§āļĄāļāļš “Error In-Out” āļ”āļ‡āļĢāļ› (*Case Structure āļāļĢāļ­āļšāļŠāđ€āļ‚āļĒāļ§ āđāļĨāļ°āļŠāđāļ”āļ‡) āđāļ•āđ‚āļ„āļ”āļĨāļāļĐāļ“āļ°āļ™āļˆāļ°

āđ„āļĄāļŠāļēāļĄāļēāļĢāļ–āļĢāļ™āđ„āļ”āđƒāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āđ‚āļ”āļĒāđƒāļ™āļĢāļ°āļŦāļ§āļēāļ‡āļāļēāļĢ Compile āļāļˆāļ°āļĄ Error āđ€āļāļ”āļ‚āļ™

Page 48: Arduino-Based Embedded Data Logger using LabVIEW

āļāļĨāļēāļ§āđ‚āļ”āļĒāļŠāļĢāļ›āļāļ„āļ­ Error Cluster (In-Out) āđƒāļŠāđ€āļžāļ­āļ āļēāļŦāļ™āļ” Flow āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļ—āļēāļ™āļ™ āđ„āļĄ

āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āļēāļ™āđ€āļžāļ­āđ€āļ›āļ™ “Error Handling” āđ„āļ”āđƒāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āđ„āļ”

āđ€āļžāļĄāđ€āļ•āļĄ “Error Cluster” āđ€āļ›āļ™ Cluster āļŠāļ™āļ”āđ€āļ”āļĒāļ§āļ—āļ—āļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āļĄāđƒāļŦāļŠāļĢāļēāļ‡āđ„āļ” āļ™āļ­āļāđ€āļŦāļ™āļ­āļˆāļēāļāļ™

āđ€āļŠāļ™ User Define Cluster āļ—āļŠāļĢāļēāļ‡āļ‚āļ™āļĄāļēāđ€āļ­āļ‡ āļˆāļ°āļ— āļēāđƒāļŦ Compile āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļĄāļœāļēāļ™

āļāļēāļĢāđ€āļ‚āļĒāļ™ “Error Handling”āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Case āļ—āļŠāļ­āļ§āļē “Error” āđāļĨāļ° “No Error”

āļāļēāļĢāđ€āļ‚āļĒāļ™āđ€āļŠāļ™āļ™āļˆāļ°āļ— āļēāđƒāļŦ Compile āđ„āļĄāļœāļēāļ™

4.āđ„āļĄāļ‹āļžāļžāļ­āļĢāļ• Control Typedefs (.ctrl) āļ—āļŠāļĢāļēāļ‡āļ‚āļ™āļĄāļēāđ€āļ­āļ‡āļ—āļāļŠāļ™āļ” (*āļĒāļāđ€āļ§āļ™āđāļ• Typedefs āļ—āđ€āļ›āļ™ Input āļ„āļē

āđ€āļĢāļĄāļ•āļ™āļ‚āļ­āļ‡āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŦāļĄāļēāđƒāļ™ Arduino API)

Page 49: Arduino-Based Embedded Data Logger using LabVIEW

āļ•āļ§āļ­āļĒāļēāļ‡āļāļēāļĢāļŠāļĢāļēāļ‡ Typedefs āļ‹āļ‡āđ„āļĄāļ­āļ™āļāļēāļ•āđƒāļŦāđƒāļŠāđƒāļ™ Arduino Compatible Compiler for LabVIEW

(*āļ–āļēāļ™ āļēāļĄāļēāđƒāļŠāļ‡āļēāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļ— āļēāđƒāļŦ Compile āđ„āļĄāļœāļēāļ™)

āļāļēāļĢāļŠāļĢāļēāļ‡ Control Typedefs āļ—āđ€āļ›āļ™āļ„āļēāđ€āļĢāļĄāļ•āļ™āļ‚āļ­āļ‡ Arduino API āļ‹āļ‡āđƒāļŠāļ‡āļēāļ™āđ„āļ”

āđ€āļžāļĢāļēāļ°āđ€āļ›āļ™āļ‚āļ­āļĒāļāđ€āļ§āļ™āļ‚āļ­āļ‡ Compiler

5.āđ„āļĄāļĢāļ­āļ‡āļĢāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļšāļš Parallel Loops āđāļĨāļ° Multi Threading

āļˆāļ”āđ€āļ”āļ™āļ‚āļ­āļ‡ LabVIEW āļ—āļĄāđ€āļŦāļ™āļ­āļāļ§āļēāļ āļēāļĐāļēāļ­āļ™āđ†āļ­āļāļŦāļ™āļ‡āļ­āļĒāļēāļ‡ āļāļ„āļ­āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļšāļš Parallel Loops

āļ–āļ‡āļ‚āļ™āļ—āļ§āļē CPU āļ—āđ€āļ›āļ™āđāļšāļš Multi-Core āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļāļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļ āļēāļŦāļ™āļ”āđ„āļ”āļ§āļē Loop āđƒāļ”āļ— āļēāļ‡āļēāļ™āļšāļ™

Processor Core āđƒāļ”āđ†āđ„āļ”āļ­āļāļ”āļ§āļĒ

āđāļ•āļāļēāļĢāļžāļ’āļ™āļēāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āđāļšāļš Embedded Systems āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ Arduino āļ‹āļ‡āđ€āļ›āļ™

Microcontroller āļ‚āļ™āļēāļ”āđ€āļĨāļ āđāļĨāļ°āđ„āļĄāļĄāļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢāļĢāļ™āļ­āļĒāļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ āļˆāļ‡āļ— āļēāđƒāļŦāļ— āļēāļ‡āļēāļ™āđāļšāļš Parallel

Loops āđ€āļ›āļ™āđ„āļ›āđāļ—āļšāļˆāļ°āđ„āļĄāđ„āļ”āđ€āļĨāļĒ (*āđ„āļĄāđāļ™āļ™āļ°āļ„āļĢāļš āđƒāļ™āļ­āļ™āļēāļ„āļ•āļ•āļ§ Compiler āļ­āļēāļˆāļˆāļ°āļ‰āļĨāļēāļ”āļžāļ­ āđāļĨāļ° Optimize

Low level āđ‚āļ„āļ”āđƒāļŦāđ€āļĢāļēāđƒāļŠāļ‡āļēāļ™āđ„āļ”)

Page 50: Arduino-Based Embedded Data Logger using LabVIEW

āđ€āļĢāļēāļĨāļ­āļ‡āļĄāļēāļ”āļ•āļ§āļ­āļĒāļēāļ‡āļ›āļĢāļ°āļāļ­āļšāļ„āļ§āļēāļĄāđ€āļ‚āļēāđƒāļˆāļāļ™āļ„āļĢāļš āļ–āļēāđ€āļĢāļēāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ‹āļ‡āļĄ While Loop āļˆ āļēāļ™āļ§āļ™ 2

Loop āļ”āļ‡āļĢāļ›āļ— āļ‹āļ‡āđ€āļŦāļ™āđ„āļ”āļ§āļēāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļ—āļ‡āļŠāļ­āļ‡ Loop āļˆāļ°āļ— āļēāļŦāļ™āļēāļ—āđ€āļžāļĄ/āļĨāļ” āļˆ āļēāļ™āļ§āļ™āļ™āļš (+1 āđāļĨāļ° -1)āđ„āļ›

āđ€āļĢāļ­āļĒāđ† āđāļĨāļ° Loop āļˆāļ°āļĢāļ™āđāļšāļšāļ•āļ­āđ€āļ™āļ­āļ‡āđ„āļĄāļŠāļ™āļŠāļ” (Infinite Loop)

āļ•āļ§āļ­āļĒāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđāļšāļš Parallel Loops āļ‹āļ‡āđ„āļĄāļĢāļ­āļ‡āļĢāļšāļ„āļ­āļĄāđ„āļžāđ€āļĨāļ­āļĢāđ€āļ§āļ­āļĢāļŠāļ™āļ›āļˆāļˆāļšāļ™

āđ€āļ™āļ­āļ‡āļˆāļēāļāļ§āļē “Arduino Compatible Compiler for LabVIEW” āđ„āļĄāļ‹āļžāļžāļ­āļĢāļ• Multi Threading āđāļ•

āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļŠāļ™āļ™āļˆāļ°āļŠāļēāļĄāļēāļĢāļ– Compile āļœāļēāļ™ āđāļ•āđ€āļĄāļ­ Download āđāļĨāļ°āļĢāļ™āļšāļ™āļŪāļēāļĢāļ”āđāļ§āļĢ āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°

āļ— āļēāļ‡āļēāļ™āđāļšāļšāļ„āļēāļ”āđ€āļ”āļēāđ„āļĄāđ„āļ”āļ„āļĢāļš āđ€āļžāļĢāļēāļ°āđ„āļĄāļĢāļ§āļē Loop āđ„āļŦāļ™āļˆāļ°āļ— āļēāļ‡āļēāļ™āļāļ­āļ™āļŦāļĨāļ‡ āļˆāļēāļ Concept āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļšāļš

Dataflow āļ”āļ‡āļ™āļ™ Loop āđāļĢāļāļ—āļ— āļēāļ‡āļēāļ™ āļˆāļ°āļ•āļ­āļ‡āļĢāļ™āļˆāļ™āđ€āļŠāļĢāļˆāļŠāļ™āļāļ­āļ™ āđāļĨāļ§ Loop āļ—āļŠāļ­āļ‡āļ–āļ‡āļˆāļ°āđ€āļĢāļĄāļ•āļ™āļ— āļēāļ‡āļēāļ™ āđāļ•

āļˆāļēāļāđ‚āļ›āļĢāđāļāļĢāļĄāļ™āđ€āļĢāļēāļ—āļĢāļēāļšāļ­āļĒāđāļĨāļ§āļ§āļē āđāļ•āļĨāļ° Loop āļˆāļ°āļ— āļēāļ‡āļēāļ™āđāļšāļšāđ„āļĄāļĄāļŠāļ™āļŠāļ” āļ”āļ‡āļ™āļ™ Loop āļ—āļŠāļ­āļ‡āļˆāļ°āđ„āļĄāļĄāđ‚āļ­āļāļēāļŠ

āđ„āļ”āļ— āļēāļ‡āļēāļ™āđ€āļĨāļĒāļ„āļĢāļš

āļŠāļĢāļ›āļāļ„āļ­ āļ„āļ§āļĢāļŦāļĨāļāđ€āļĨāļĒāļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđāļšāļš Parallel Loops āđ€āļžāļĢāļēāļ°āļ•āļ§ Compiler āļĒāļ‡āđ„āļĄāļĢāļ­āļ‡āļĢāļš

āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļšāļš Multi Threading āļšāļ™ Arduino (*āļœāļĄāđ€āļŠāļ­āļ§āļēāđƒāļ™āđ€āļ§āļ­āļĢāļŠāļ™āļ•āļ­āđ†āđ„āļ›āļˆāļ°āđ„āļ”āļĢāļšāļāļēāļĢāļžāļ’āļ™āļēāļˆāļ™

āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļĒāļ™āđ‚āļ›āđāļāļĢāļĄāđāļšāļš Multiple Loop āđ„āļ”)

Page 51: Arduino-Based Embedded Data Logger using LabVIEW

6. āļŦāļēāļĄāđƒāļŠ āļŠāļāļĨāļāļĐāļ“ "/" āđāļĨāļ° "\" āđƒāļ™āļŠāļ­āļ‚āļ­āļ‡ Controls āđāļĨāļ° Indicators

āđ€āļžāļĢāļēāļ°āđ€āļ›āļ™āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒāļ—āđƒāļŠāļ‡āļēāļ™āđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡ “Arduino Compatible Compiler for LabVIEW” āđƒāļ™

āļĢāļ°āļŦāļ§āļēāļ‡āļāļēāļĢ Compile āđ‚āļ›āļĢāđāļāļĢāļĄ āļ–āļēāđƒāļŠāļ‡āļēāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļŠāļĢāļēāļ‡āļ‚āļ™āļˆāļ°āļ— āļēāđƒāļŦāļ„āļ­āļĄāđ„āļžāļĨāđ„āļĄāļœāļēāļ™

7. āļŦāļēāļĄāđƒāļŠ Case Structure Default Values

āļ–āļēāđƒāļ„āļĢāļ—āđ€āļ„āļĒāđƒāļŠ LabVIEW āđ€āļ§āļ­āļĢāļŠāļ™āđƒāļŦāļĄāđ† āļˆāļ°āļ—āļĢāļēāļšāļ”āļ§āļēāļ–āļēāđ€āļĢāļēāļĄ “Cases” āļŦāļĨāļēāļĒāđ†āđ€āļ„āļŠ āđ€āļĢāļēāđ„āļĄāļ•āļ­āļ‡āđ€āļ‚āļē

āđ„āļ›āđƒāļ™āļ—āļāđ€āļ„āļŠ āđ€āļžāļ­ Wiring āļˆāļ”āđ€āļŠāļ­āļĄāļ•āļ­ Output āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ„āļĨāļāļ‚āļ§āļē āļ— Node āđ€āļŠāļ­āļĄāļ•āļ­ āđāļĨāļ§āđ€āļĨāļ­āļ “Use

Default if Unwired” āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›āļ— āļ‹āļ‡āļāļēāļĢāļ— āļēāļĨāļāļĐāļ“āļ°āļ™āļˆāļ°āđ€āļ›āļ™āļ‚āļ­āļŦāļēāļĄāļ‚āļ­āļ‡ “Arduino Compiler for

LabVIEW” āļ‹āļ‡āļˆāļ°āļ— āļēāđƒāļŦ Compile āđ„āļĄāļœāļēāļ™āļ™āļ°āļ„āļĢāļš

āļāļēāļĢāļ āļēāļŦāļ™āļ” “Use Default if Unwired” āđƒāļŦāļāļš Case āļ‹āļ‡āļ„āļ­āļĄāđ„āļžāđ€āļĨāļ­āļĢāđ„āļĄāļĢāļ­āļ‡āļĢāļš

āļ§āļ˜āļ—āļ–āļāļ•āļ­āļ‡āļāļ„āļ­ āđ€āļĢāļēāļ•āļ­āļ‡āļ āļēāļŦāļ™āļ”āļ„āļēāđ€āļĢāļĄāļ•āļ™ āļ­āļēāļˆāļˆāļ°āđ€āļ›āļ™ Constant āđ€āļŠāļ™ “Initial value = 0” āđƒāļŦāļāļš

Node Output āļ‚āļ­āļ‡āđ€āļ„āļŠ āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›āļ•āļ­āđ„āļ›

Page 52: Arduino-Based Embedded Data Logger using LabVIEW

āļ§āļ˜āļāļēāļĢāļ—āļ–āļāļ•āļ­āļ‡ āđƒāļ™āļ āļēāļŦāļ™āļ”āļ„āļē “Initial value” āđƒāļŦāļāļš Case Output Node

8. āđ„āļĄāļ‹āļžāļžāļ­āļĢāļ• āļāļēāļĢāļ āļēāļŦāļ™āļ” Password āđƒāļ™ SubVIs

āļ–āļēāđƒāļ„āļĢāļ„āļ”āļˆāļ°āļ•āļ‡ Password āđƒāļ™ SubVIs āļŦāļĢāļ­āđāļĄāđāļ• Main āļˆāļ°āļ— āļēāđƒāļŦ Compile āđ„āļĄāļœāļēāļ™āļ„āļĢāļš

9. āļŦāļēāļĄāđ€āļŠāļ­āļĄāļ•āļ­ Array Type āļ—āđ„āļĄāļ•āļĢāļ‡āļāļ™ (*āļ‹āļ‡āļˆāļ°āļ— āļēāđƒāļŦāđ€āļ›āļĨāļ­āļ‡ RAM āļĄāļēāļāđƒāļĢāļĢāļ°āļŦāļ§āļēāļ‡āļĢāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ)

āļ–āļēāđƒāļ„āļĢāđ€āļ„āļĒāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ LabVIEW āļĄāļēāļāļ­āļ™ āļšāļēāļ‡āļ„āļĢāļ‡āļ™āļēāļˆāļ°āđ€āļ„āļĒāđ€āļŦāļ™āļˆāļ”āđāļ”āļ‡āđ† (Coersion Dot) āļ•āļĢāļ‡ Node Input āļŦāļĢāļ­ Output āļ‹āļ‡āļĄāļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļ§āļē āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­āļĢāļ°āļŦāļ§āļēāļ‡ Data Type āļ—āļ‡āļŠāļ­āļ‡āļ•āļ§āđ€āļ›āļ™āļ„āļ™āļĨāļ°āļŠāļ™āļ”āļāļ™āļ„āļĢāļš āđ€āļŠāļ™ āļ–āļēāđ€āļĢāļēāđ€āļŠāļ­āļĄāļ•āļ­āļ•āļ§āđāļ›āļĢāļˆ āļēāļ™āļ§āļ™āđ€āļ•āļĄ “Integer I32 -> āļ•āļ§āđāļ›āļĢāļˆ āļēāļ™āļ§āļ™āđ€āļ•āļĄ DBL” āļāļˆāļ°āļĄāļˆāļ”āļŠāđāļ”āļ‡āđ† āđ€āļāļ”āļ‚āļ™

āļ‹āļ‡āļ›āļāļ• LabVIEW āļĒāļ™āļĒāļ­āļĄāđƒāļŦāđ€āļĢāļēāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļŠāļ™āļ™āļ„āļĢāļš āđ€āļžāļĢāļēāļ° LabVIEW āļˆāļ°āđāļ›āļĨāļ‡ Datatype āđƒāļŦāļ•āļĢāļ‡āļāļ™āđƒāļ™ Background āļ„āļĢāļš

Page 53: Arduino-Based Embedded Data Logger using LabVIEW

āļŠ āļēāļŦāļĢāļš “Arduino Compiler for LabVIEW” āļˆāļ°āđ„āļĄāļĒāļ™āļĒāļ­āļĄāđƒāļŦāđ€āļĢāļēāļ— āļēāđ€āļŠāļ™āļ™āļāļš āļ•āļ§āđāļ›āļĢāļ—āđ€āļ›āļ™ Array āļ„āļĢāļš āļ‹āļ‡āļˆāļ°āļ— āļēāđƒāļŦ Compile Error āđāļ•āļŠ āļēāļŦāļĢāļšāļ•āļ§āđāļ›āļĢāļ—āđ€āļ›āļ™ Scalar āļŦāļĢāļ­ āļ•āļ§āđ€āļĨāļ‚ (Integer), āļ•āļ§āļ­āļāļĐāļĢ (String) āļŦāļĢāļ­ Boolean āļ—āđ„āļĄāđƒāļŠ Array āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āļēāļ™āđ„āļ”āļ„āļĢāļš āđ€āļžāļĢāļēāļ° Compiler āļˆāļ°āđāļ›āļĨāļ‡ Datatype āđƒāļŦāļ•āļĢāļ‡āļāļ™āļ•āļ­āļ™āļ—āđ€āļĢāļē Compile āđ‚āļ„āļ”āļ„āļĢāļš

āđāļŠāļ”āļ‡ āļˆāļ”āđāļ”āļ‡āđ† (Coersion Dot) āđ€āļ™āļ­āļ‡āļˆāļēāļāđ€āļŠāļ­āļĄāļ•āļ­ Array Datatype āļ„āļ™āļĨāļ°āļŠāļ™āļ”āļāļ™

āļ–āļēāđ€āļ›āļ™āļ•āļ§āđāļ›āļĢ Array āļ•āļ­āļ‡āđāļāđ„āļ‚ Datatype āđƒāļŦāļ•āļĢāļ‡āļāļ™āđ€āļ—āļēāļ™āļ™ āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›āđ„āļĄāđ€āļŠāļ™āļ™āļ™āļˆāļ° Compile āđ„āļĄāļœāļēāļ™

10. āļŦāļĨāļāđ€āļĨāļĒāļ‡āļāļēāļĢāđƒāļŠ Array āđāļĨāļ° String Data type āļĄāļēāļāđ€āļāļ™āļ„āļ§āļēāļĄāļˆ āļēāđ€āļ›āļ™

āđ€āļžāļĢāļēāļ° Data Type āļŠāļ­āļ‡āļŠāļ™āļ”āļ™ āļˆāļ°āļāļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđ€āļĒāļ­āļ°āļĄāļēāļāļ„āļĢāļš āļ‹āļ‡āļˆāļ°āđƒāļŠāļ‡āļēāļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļēāđƒāļ™ RAM āļ—āļĄāļˆ āļēāļāļ”āļ­āļĒāđāļĨāļ§ (*āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļšāļ­āļĢāļ” Arduino Uno āļ—āļĄ RAM āđ€āļžāļĒāļ‡ 2 kBytes) āļ­āļēāļˆāļˆāļ°āļ— āļēāđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄ Crash āļĢāļ°āļŦāļ§āļēāļ‡ Run-Time āđ„āļ”āļ„āļĢāļš

āļŠāļ”āļ—āļēāļĒāļ™āļŦāļ§āļ‡āļ§āļēāļšāļ—āļ„āļ§āļēāļĄāļ™āļˆāļ°āđ€āļ›āļ™āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āļāļšāļœāļ­āļēāļ™āđ„āļ”āļšāļēāļ‡

āđāļĨāļ§āļžāļšāļāļ™āđƒāļ™ FB: “LabVIEW Embedded for Arduino”