🔧 Progetto Arduino #35

Arduino con sensore di flessione e servomotore

In questo progetto utilizziamo un sensore di flessione per rilevare il movimento e comandare la posizione di un servomotore con Arduino.

Difficoltà Base / intermedia
Componenti principali Flex Sensor + Servo
Concetti AnalogRead · Servo · Soglie

Introduzione

In questo tutorial vediamo come utilizzare un sensore di flessione (Flex Sensor) insieme ad Arduino per controllare un servomotore.

Piegando il sensore cambia il valore letto dall’ingresso analogico di Arduino. Il programma utilizza questi valori per decidere in quale posizione deve spostarsi il servo.

È un esperimento semplice ma interessante perché rappresenta un primo passo verso la realizzazione di articolazioni robotiche, mani, bracci mobili e altri sistemi controllati dal movimento.

💡 Cosa imparerai: leggerai un sensore analogico con analogRead(), utilizzerai la libreria Servo e controllerai la posizione di un servomotore in funzione della flessione del sensore.
Sensore di flessione Flex Sensor per Arduino
Sensore di flessione utilizzato nel progetto.

Componenti necessari

🔵 Arduino Uno
📏 Sensore di flessione
⚡ Resistenza da 22 kΩ
⚙️ Servomotore
🔌 Cavetti di collegamento
🧩 Breadboard

🧰 Non hai ancora i componenti?

Un kit Arduino completo può essere utile per avere a disposizione breadboard, resistenze, cavetti, sensori e altri componenti utilizzabili anche in molti altri progetti del sito.

Vedi il kit Arduino consigliato → Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

📘 Vuoi imparare Arduino passo dopo passo?

Puoi approfondire programmazione, elettronica e realizzazione di progetti attraverso i miei libri dedicati ad Arduino.

Scopri i miei libri su Arduino → Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

Schema dei collegamenti

Il circuito utilizza il sensore di flessione sull’ingresso analogico A0, mentre il servomotore viene controllato dal pin digitale 9.

Schema Arduino sensore di flessione e servomotore
Schema del circuito con Arduino, Flex Sensor e servomotore.
Concetto chiave: il sensore di flessione produce un valore analogico. Arduino legge questo valore e il programma decide quale posizione assegnare al servomotore.

Codice Arduino

Lo sketch utilizza la libreria Servo.h. Il sensore viene letto tramite l’ingresso analogico A0 e il servomotore è collegato al pin 9.

#include <Servo.h>

Servo myservo;

int pos = 170;
int pos1 = 20;

int flexSensorPin = A0; // analog pin 0

void setup(){

  Serial.begin(9600);

  myservo.attach(9);
}

void loop(){

  int flexSensorReading = analogRead(flexSensorPin);

  // Qui puoi vedere dal Monitor Seriale i valori
  // e decidere il grado del servo
  // tramite le variabili pos e pos1

  if(flexSensorReading < 80){

    myservo.write(pos);

    delay(15);
  }

  if(flexSensorReading > 110){

    myservo.write(pos1);

    delay(15);
  }

  Serial.println(flexSensorReading);

  int flex0to100 = map(
    flexSensorReading,
    512,
    614,
    0,
    100
  );

  Serial.println(flex0to100);

  // delay(250);
}

Come funziona il programma

All’avvio Arduino apre la comunicazione seriale a 9600 baud e associa il servomotore al pin digitale 9.

Nel loop(), Arduino legge continuamente il valore del sensore tramite:

int flexSensorReading = analogRead(flexSensorPin);

Il valore letto viene confrontato con due soglie. In base alla lettura, il servo viene portato in una delle due posizioni definite dalle variabili pos e pos1.

I valori vengono inoltre inviati al Monitor Seriale, utile per osservare il comportamento del sensore e adattare le soglie al proprio componente.

🔧 Buona pratica: i sensori di flessione possono fornire valori leggermente diversi da esemplare a esemplare. Osserva prima le letture nel Monitor Seriale e poi regola le soglie in base al tuo sensore.

Test del progetto

Test Arduino Flex Sensor e servomotore

Una volta caricato lo sketch, apri il Monitor Seriale e piega progressivamente il sensore. Potrai osservare i valori rilevati da Arduino e verificare il movimento del servomotore.

Idee per sviluppare il progetto

Il principio utilizzato in questo circuito può essere esteso a sistemi più complessi.

  • utilizzare più sensori di flessione;
  • controllare più servomotori;
  • realizzare una mano robotica;
  • costruire un’articolazione comandata dal movimento;
  • visualizzare i valori del sensore su un display.

Scarica lo sketch Arduino

Sketch_arduino_sensore_flex.ino File Arduino originale del progetto
⬇ Scarica sketch

Cosa hai imparato

Con questo progetto hai visto come Arduino può leggere un sensore analogico e utilizzare il valore ottenuto per controllare un servomotore.

È un concetto utile per sviluppare sistemi robotici, controlli meccanici e dispositivi che reagiscono direttamente al movimento.