#include <Servo.h> // Include the Servo library
// Define the pin connected to the pressure sensor (FSR)const int fsrPin = A0; // FSR sensor connected to analog pin A0
// Define the pin for the servo motor (pin 9 is a better option than pin 13)const int servoPin = 9; // Servo motor connected to pin 9
// Define the threshold value to detect pressureint threshold = 300; // Adjust this value based on your sensor's response
// Create a Servo objectServo myServo;
bool pressureDetected = false; // Track if pressure is currently detectedbool pressureReleased = false; // Track if pressure has been released
void setup() { // Start the serial communication Serial.begin(9600);
// Wait for the serial port to connect while (!Serial) { ; // Wait for the serial port to connect. Needed for native USB port boards. }
// Attach the servo to pin 9 myServo.attach(servoPin);
// Initialize the servo to its resting position (0 degrees) myServo.write(0); // Set servo to 0 degrees at the start
// Print a startup message Serial.println("Pressure Sensor with Servo Example Initialized");}
void loop() { // Read the analog value from the sensor (0 to 1023) int sensorValue = analogRead(fsrPin);
// Print the sensor value to the serial monitor (optional) Serial.print("FSR Value: "); Serial.println(sensorValue);
// Check if the sensor value exceeds the threshold (pressure detected) if (sensorValue > threshold) { if (!pressureDetected) { // Pressure detected, but we don't move the servo Serial.println("Pressure Detected"); pressureDetected = true; // Mark that pressure is detected } } else { // Pressure released (sensor value below threshold) if (pressureDetected && !pressureReleased) { Serial.println("Pressure Released"); myServo.write(90); // Move servo to 90 degrees when pressure is released pressureReleased = true; // Mark that pressure has been released } }
// Reset the state when pressure is detected again to return servo to 0 degrees if (sensorValue > threshold && pressureReleased) { myServo.write(0); // Move servo back to 0 degrees when pressure is applied again pressureDetected = false; // Mark that pressure is no longer detected pressureReleased = false; // Reset release flag }
// Add a small delay to make the serial output readable delay(500); // 500ms delay}
// Define the pin connected to the pressure sensor (FSR)const int fsrPin = A0; // FSR sensor connected to analog pin A0
// Define the pin for the servo motor (pin 9 is a better option than pin 13)const int servoPin = 9; // Servo motor connected to pin 9
// Define the threshold value to detect pressureint threshold = 300; // Adjust this value based on your sensor's response
// Create a Servo objectServo myServo;
bool pressureDetected = false; // Track if pressure is currently detectedbool pressureReleased = false; // Track if pressure has been released
void setup() { // Start the serial communication Serial.begin(9600);
// Wait for the serial port to connect while (!Serial) { ; // Wait for the serial port to connect. Needed for native USB port boards. }
// Attach the servo to pin 9 myServo.attach(servoPin);
// Initialize the servo to its resting position (0 degrees) myServo.write(0); // Set servo to 0 degrees at the start
// Print a startup message Serial.println("Pressure Sensor with Servo Example Initialized");}
void loop() { // Read the analog value from the sensor (0 to 1023) int sensorValue = analogRead(fsrPin);
// Print the sensor value to the serial monitor (optional) Serial.print("FSR Value: "); Serial.println(sensorValue);
// Check if the sensor value exceeds the threshold (pressure detected) if (sensorValue > threshold) { if (!pressureDetected) { // Pressure detected, but we don't move the servo Serial.println("Pressure Detected"); pressureDetected = true; // Mark that pressure is detected } } else { // Pressure released (sensor value below threshold) if (pressureDetected && !pressureReleased) { Serial.println("Pressure Released"); myServo.write(90); // Move servo to 90 degrees when pressure is released pressureReleased = true; // Mark that pressure has been released } }
// Reset the state when pressure is detected again to return servo to 0 degrees if (sensorValue > threshold && pressureReleased) { myServo.write(0); // Move servo back to 0 degrees when pressure is applied again pressureDetected = false; // Mark that pressure is no longer detected pressureReleased = false; // Reset release flag }
// Add a small delay to make the serial output readable delay(500); // 500ms delay}