
Using a Flex Sensor — SIK Circuit 9
Use a flex sensor to control a servo motor. Bend the sensor to move the servo — combining analog input with motor control for gesture-based interaction.
Anweisungen
Parts & Introduction
Parts & Introduction
A flex sensor changes resistance when bent. Combined with the servo from Circuit 8, you can create gesture-based controls — bend the sensor to move the servo. This combines analogRead() with the Servo library.
Parts Needed
- 1x Arduino Uno + USB cable
- 1x Breadboard
- 1x Flex Sensor
- 1x Servo Motor
- 1x 10KΩ Resistor
- 11x Jumper Wires
Materialien für diesen Schritt:
SparkFun Inventors Kit - V3.21 Set
Arduino Uno R31 Stück
Breadboard1 Stück
Flex Sensor1 Stück
Servo Motor1 Stück
10K Ohm Resistor1 Stück
Jumper Wires7 StückBenötigte Werkzeuge:
Hardware Hookup
Hardware Hookup
Wiring Instructions
Flex Sensor
- Connect one pin of the flex sensor to 5V.
- Connect the other pin to Analog Pin A0.
- Connect a 10K resistor from Analog Pin A0 to GND (voltage divider).
Servo
- Connect Red wire to 5V.
- Connect Black wire to GND.
- Connect White wire to Digital Pin 9.
Materialien für diesen Schritt:
Flex Sensor1 Stück
Servo Motor1 Stück
10K Ohm Resistor1 Stück
Breadboard1 Stück
Jumper Wires7 StückArduino Code
Arduino Code
Open the Arduino IDE and upload the following sketch to your Arduino board.
/*
SparkFun Inventor's Kit
Example sketch 09 — FLEX SENSOR
Use the flex sensor to change the position of a servo.
Hardware connections:
Flex sensor: one pin to analog pin 0 (with 10K to GND), other pin to 5V
Servo: RED to 5V, WHITE to pin 9, BLACK to GND
This code is completely free for any use.
*/
#include <Servo.h>
Servo servo1;
const int flexpin = 0;
void setup()
{
Serial.begin(9600);
servo1.attach(9);
}
void loop()
{
int flexposition;
int servoposition;
flexposition = analogRead(flexpin);
servoposition = map(flexposition, 600, 900, 0, 180);
servoposition = constrain(servoposition, 0, 180);
servo1.write(servoposition);
Serial.print("sensor: ");
Serial.print(flexposition);
Serial.print(" servo: ");
Serial.println(servoposition);
delay(20);
}Materialien für diesen Schritt:
Arduino Uno R31 StückBenötigte Werkzeuge:
Test & Experiment
Test & Experiment
What You Should See
The servo moves in response to bending the flex sensor. Open the Serial Monitor to see both the raw sensor value and the mapped servo position.
Troubleshooting
- Servo not moving: Check servo wiring — easy to plug in backwards.
- Sensor only works one way: The flex sensor bends in one direction. The striped side should face outward on a convex curve.
- Limited range: Adjust the
map()range values (600, 900) to match your sensor's actual readings from the Serial Monitor.
Experiments to Try
- Build a "robot finger" that mimics your finger bending.
- Replace the servo with an LED and control brightness by bending.
Materialien
7- €90.00
- 1 StückPlatzhalter
- 1 StückPlatzhalter
- 1 StückPlatzhalter
- 1 StückPlatzhalter
- €3.00
CC0 Gemeinfrei
Dieser Blueprint ist unter CC0 veröffentlicht. Sie dürfen dieses Werk für jeden Zweck frei kopieren, ändern, verbreiten und verwenden, ohne um Erlaubnis zu fragen.
Unterstützen Sie den Maker, indem Sie Produkte über seinen Blueprint kaufen, wo er eine Maker-Provision von Anbietern festgelegt, verdient. Oder erstellen Sie eine neue Iteration dieses Blueprints und verbinden Sie ihn in Ihrem eigenen Blueprint, um Einnahmen zu teilen.