The knowledge points learned in this section are the compatibility of Arduino with our acquisition software and the understanding of event structures.,The specific requirements are as follows:
Task: Compatibility of Arduino with acquisition software Keywords: Labview, dynamic events, static events, Arduino, property nodes, method nodes Note 1: High-definition images can be viewed via WeChat on mobile; Note 2: Basic knowledge points should be referenced in books;
Arduino: Leading You to Explore Endless Possibilities of ADC Acquisition
Building a precise electronic project that perfectly combines the digital world with the real world, Arduino will be your most capable assistant. Arduino is an open-source microcontroller platform that is globally popular for its ease of use and innovation.ADC acquisition plays a crucial role in many applications, from basic sensor readings to complex control systems; it is an indispensable part. The ADC acquisition capabilities of Arduino are powerful and flexible, allowing you to easily obtain and process analog signals, thus realizing various amazing projects.
With Arduino, you can accurately read data from various sensors such as temperature, humidity, light, etc. Whether used for environmental monitoring, smart agriculture, or other fields, Arduino can provide stable and reliable data support. In addition, by utilizing the ADC acquisition function, you can also achieve digital processing of non-electrical physical quantities such as sound and vibration, opening up new avenues for innovative applications.
Arduino’s ADC acquisition has a 12-bit ADC precision and a response speed of 0.05s, which can meet various application needs. Moreover, the open-source nature of Arduino means you can easily access its source code and technical documentation, allowing customization and optimization according to project requirements. Additionally, Arduino provides a wealth of expansion modules and library functions, making it even easier to realize various creative ideas.
Arduino Firmata is an open-source communication protocol for Arduino and other microcontrollers. It was originally designed to allow developers to fully control Arduino through PC software. Firmata provides a standard way for host computers (such as PCs) to communicate with microcontrollers, facilitating data acquisition, control, and interaction.
Firmata is based on MIDI message format, defining a standard communication protocol format that can be implemented in firmware on any microcontroller architecture and software in any computer software package. Through Firmata, developers can program on Arduino to achieve reliable data exchange with host computers.
As middleware, Firmata introduces programming interfaces for both the “lower layer” (referring to the embedded system side) and the “upper layer” (referring to the host computer side). This means that programming is also required on the embedded system side, but Arduino provides a comprehensive “standard application implementation” that can export digital, analog, as well as servo (Servo) and pulse-width modulation (PWM) to Firmata.
The benefit of using the Firmata protocol is its broad compatibility and flexibility. Since Firmata is designed to be compatible with any host PC software package, it can conveniently integrate protocol support into software systems. This makes Firmata applicable not only to Arduino but also to other microcontroller platforms.
3. Core Code

04. This event can be used locally and globally, achieving code reuse;
06. Two Arduinos work together to achieve 12-channel analog signals, 0-5V, 12-bit precision, with all channels synchronously acquiring at 200Hz;
07. The above image is a code snippet (part) implementing the producer-consumer model for acquisition in the main program.
08. The underlying Arduino, after collecting data, acts as a data producer, sending it to the acquisition queue;
09. After the main program receives the message, the data storage acts as a data consumer, processing the data.
10. To ensure a balance between the Arduino producer and consumer, the original data conversion and real-time storage priorities are lowered;
11. This shared code is generic, capable of inheriting data acquisition class objects;
12. Introducing global producer-consumer benefits reduces the tightness between modules, making it easier to replace or inherit similar classes or functionalities (method nodes) (object-oriented);
13. The main program needs to open and run the subprogram; if operating on the lower-level program, a control channel or global variable state machine mode needs to be established.