Have you wanted to track the airflow of your equipment or devices such as network communication devices, or perhaps your an HVAC? or maybe you want to read how your Air Glider Plane or RC plane how fast they can be? or you just want to get an air velocity data from your custom build devices.
The Renesas FS3000 MEMS Thermopule-base sensor is an air velocity sensor that can help you to collect or gather data from the air velocity these devices enclose with a 12bit resolution including comprises a solid thermal isolation technology and silicon carbide coating to protect from water condensation, resistant to surface contamination, vibration and pressure shock. The Renesas FS3000 runs on 3.3v, Average current draw of 10mA, operating temperature range from -20°C to +85°C, Reading speed from 0 ~ 7.23 ms, with an accuracy of 5% full-scale flow range, and communicates with i2C with the address of 0x28. For more technical details and the code library please refer to the download section on this page.
Requirements
- Arduino IDE | PlatformIO
- Test Boards :
- Note: The Diagram below is using Raspberry Pi PICO (please refer to your MCU’s respective pin-outs & bus configuration)
- Resistors (See below diagram for required value)
- Capacitor(See below diagram for required value)
Wiring Diagram & Schematics
Source Code
The sketch code below will read a value of air velocity from the FS3000 air-flow sensor and then print them to the terminal as m/s and mph. However, the response time on the sensor is 125ms
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#include <Wire.h> #include <FS3000_Arduino_Library.h> // This library can downloaded below FS3000 fs; void setup() { Serial.begin(115200); Serial.prinln("14CORE | FS3000 Test Code "); Serial.println("Capturing data from the FS3000"); Serial.println("Initializing ................."); Wire.begin(); if (fs.begin() == false) //Begin communication over I2C { Serial.println("ERROR: The sensor did not respond. Please check wiring."); while(1); //Freeze } // Set the range to match which version of the sensor you are using. // FS3000-1005 (0-7.23 m/sec) --->>> AIRFLOW_RANGE_7_MPS // FS3000-1015 (0-15 m/sec) --->>> AIRFLOW_RANGE_15_MPS fs.setRange(AIRFLOW_RANGE_7_MPS); //fs.setRange(AIRFLOW_RANGE_15_MPS); Serial.println("FS3000 - Is ready."); delay(1000); Serial.println("Please wait .............. "); delay(2000); } void loop() { Serial.print("FS3000 Readings \tRaw: "); Serial.print(fs.readRaw()); // note, this returns an int from 0-3686 Serial.print("\tm/s: "); Serial.print(fs.readMetersPerSecond()); // note, this returns a float from 0-7.23 for the FS3000-1005, and 0-15 for the FS3000-1015 Serial.print("\tmph: "); Serial.println(fs.readMilesPerHour()); // note, this returns a float from 0-16.17 for the FS3000-1005, and 0-33.55 for the FS3000-1015 delay(1000); // note, reponse time on the sensor is 125ms } |
PCB Board Milling / Gerber File
Downloads