Air Velocity Sensor Breakout - FS3000 Hookup Guide
Contributors:
QCPete, Ell C
Example Code
Once you've installed the FS3000 library, you should see File > Examples > SparkFun_FS3000_Arduino_Library > Example01_BasicReadings to open the example sketch.
Alternatively, you can copy and paste the code below into a fresh Arduino sketch.
/****************************************************************************** Example_01_BasicReadings.ino Read values of air velocity from the FS3000 sensor, print them to terminal. Prints raw data, m/s and mph. Note, the response time on the sensor is 125ms. SparkFun FS3000 Arduino Library Pete Lewis @ SparkFun Electronics Original Creation Date: August 5th, 2021 https://github.com/sparkfun/SparkFun_FS3000_Arduino_Library Development environment specifics: IDE: Arduino 1.8.15 Hardware Platform: SparkFun RedBoard Qwiic SparkFun Air Velocity Sensor Breakout - FS3000 (Qwiic) Version: 1.0 Artemis RedBoard @ 400KHz (Core v2.1.0) (note, v2.1.1 has a known issue with clock stretching at 100KHz) Do you like this library? Help support SparkFun. Buy a board! SparkFun Air Velocity Sensor Breakout - FS3000-1005 (Qwiic) https://www.sparkfun.com/products/18377 SparkFun Air Velocity Sensor Breakout - FS3000-1015 (Qwiic) https://www.sparkfun.com/products/18768 Hardware Connections: Use a Qwiic cable to connect from the RedBoard Qwiic to the FS3000 breakout (QWIIC). You can also choose to wire up the connections using the header pins like so: ARDUINO --> FS3000 SDA (A4) --> SDA SCL (A5) --> SCL 3.3V --> 3.3V GND --> GND This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. ******************************************************************************/ FS3000 fs; void setup() { Serial.begin(115200); Serial.println("Example 1 - Reading values from the FS3000"); Wire.begin(); if (fs.begin() == false) //Begin communication over I2C { Serial.println("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("Sensor is connected properly."); } 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 }
Set your Board and Serial Port, and then upload the sketch to your Arduino. Then open the serial monitor. Make sure your baud rate is set to 115200. You'll begin to see output, including raw data and translated miles per second and miles per hour.
Note that peak in the middle of the readings? That's where I pointed the sensor at the fan!