«

»

Gen 20

Stampa Articolo

Sensore di flessione – montaggio

I sensori che puoi collegare ad arduino sono molteplici e potrei non finire mai di elencarli e testarli tutti, oggi montiamo il sensore di flessione: in grado di misurare la flessione di un corpo fisico.

sensore di flessione

Il sensore di flessione lo puoi acquistare on-line e ti arriva a casa nudo e pronto per essere montato.

Il montaggio del sensore di flessione

Per utilizzare il sensore di flessione dovrai innanzitutto saldare due fili ai contatti del sensore, puoi seguire i passaggi nelle foto:

Step 1: fondi dello stagno sui contatti del sensore:

sensore di flessione saldatura contatti

Step 2: inserisci sui fili da saldare due pezzi di termo-retrattile:

sensore di flessione fili termoretrattili

Step 3: salda i contatti del sensore di flessione ai fili:

sensore di flessione fili saldati

Step 4: retrai il termo-retrattile intorno ai contatti del sensore:

sensore di flessione completo

Schema di collegamento

Il sensore di flessione è una resistenza variabile in funzione della flessione che imponi al sensore stesso.

Collegando un tester ai capi del sensore con fondo scala 50Kohm e flettendolo vedrai cambiare il valore in ohm letti dal tester.

Per usare il sensore di flessione con arduino è necessario porre una resistenza di pull-down o pull-up tra uno dei pin del sensore e Gnd ( pull-down ) o +5v ( pull-up ). Ecco lo schema:

schema collegamenti

come noti puoi collegare un pin del sensore al +5v e l’altro sia al pin A5 di arduino sia ad una resistenza di pull-down verso Gnd.

In questa configurazione potrai leggere su arduino i valori analogici attraverso il pin A5 con il comando analogRead( A5 ); e scriverlo sul monitor seriale.

Lo sketch di test del sensore di flessione

Lo scketch che puoi utilizzare per eseguire il test è il seguente:

/*
  AnalogReadSerial
  Reads an analog input on pin 0, prints the result to the serial monitor.
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
 
 This example code is in the public domain.
 */

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A5);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(200);        // delay in between reads for stability
}

lo sketch lo avrai riconosciuto è l’esempio fornito con l’IDE arduino AnalogReadSerial.ino che ritrovi tra gli esempi di default, a cui ho apportato solo due modifiche:

linea 19: ho sostituito il pin letto dal comando analogRead() inserendo A5 poiché il sensore è collegato a tale pin;

linea 22: ho incrementato il delay da 1 millisecondo previsto nell’esempio di default a 200 millisecondi che ti permettono di visualizzare sul monitor seriale i valori letti.

Buon test !!!

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/sensore-di-flessione-montaggio.html

19 comments

2 pings

Vai al modulo dei commenti

  1. Giovanni

    Caro Mauro visto che ignoravo l’esistenza di questo sensore allora mi chiedo quali saranno gli altri sensori utilizzabili con Arduino? Mi puoi dare maggiori info.

    1. Mauro Alfieri

      Ciao Giovanni,
      saranno migliaia i sensori che puoi collegare ad Arduino, puoi trovare una lista abbastanza completa sul blog o sul sito robot-domestici.it da cui io acquisto tali sensori, ma non saranno mai tutti.
      Considera che a tutti i sensori commerciali prodotti nel mondo puoi aggiungere tutti i sensori auto-prodotti dai makers di tutto il globo di cui ignoro l’esistenza.

      Mauro

  2. Giovanni

    Allora ti pongo la domanda in modo diverso e ciò ti fa comprendere che non ne so molto. Tutti i sensori esistenti sono compatibili con Arduino o solo alcuni sono espressamente dedicati ad essere usati con Arduino? Si tratta solo di differenza di potenziale?

    1. Mauro Alfieri

      Ciao Giovanni,
      sono compatibili con arduino tutti i sensori che funzionano a +5v o inferiore, almeno per quello che concerne i sensori di tipo analogico.
      Per i sensori di tipo digitale, SPI, ICSP, I2C o altro protocollo di comunicazione devi verificare sensore per sensore e sopratutto se esistono le librerie di controllo per arduino.

      Se hai dei sensori che lavorano con livelli di segnale superiori ai +5v puoi sempre optare per un adattatore di segnale di tipo INPUT/OUTPUT.

      Tu di che tipo di sensore avresti bisogno?

      Mauro

  3. Giovanni

    Ti ringrazio per la risposta. In particolare non ho bisogno di nessun sensore ti ho posto la domanda solo per curiosità. Ero convinto, chissà perchè, che i sensori disponibili per Arduino fossero limitati.

    1. Mauro Alfieri

      Ciao Giovanni,
      certamente non sono infiniti, sono di sicuro troppi per farne un elenco.
      Quelli già pronti sono di numero limitato da produttore a produttore.

      Mauro

  4. fabio

    Articolo da aggiungere alla tesina.Thanks

    1. Mauro Alfieri

      Ciao Fabio,
      ne pubblicherò altri a breve 😉
      Sulla taratura dei sensori e dei servo.

      Mauro

  5. Giuseppe

    Articolo davvero interessante..che mi potrebbe schiarire le idee sul progetto che sto cercando di ultimare ..un saluto Mauro.

    1. Mauro Alfieri

      Ottimo Giuseppe,
      sono certo che ci riuscirai 🙂

      Mauro

      1. Giuseppe

        Speriamo!..comunque guardando l’articolo seguente mi sa che è proprio quello a cui stai mirando tu..(una mano robot immagino) ..a me dà solo piccoli problemi di corrente e poi dovrebbe essere a posto 😉

  6. kevin

    salve, complimenti innanzitutto per i tuoi tutorial! 🙂
    leggendo i valori ho una scala che va da 520 circa a 820 circa.
    il problema è che mettendo il sensore ad una certa flessione, cambia il valore ma sballa di continuo.
    ad esempio nel piegare ho una scala del genere:
    800
    799
    789
    787
    786
    785
    801 <<
    784
    800<<
    783
    782

    Questo ovviamente si ripete nel tempo.
    E mi crea dei problemi se devo attribuire il valore ad un servo, perchè il servo ha delle "vibrazioni" continue.
    Spero tu possa aiutarmi!
    Grazie in anticipo!

    1. Mauro Alfieri

      Ciao Kevin, i sensori in genere possono avere delle oscillazioni sui rilievi. Quelli di flessione in particolare ti sembra di tenerli fissi ad una posizione ma non é realmente così.
      Aggiungi un certo grado di errore dovuto alla costruzione di un sensore per uso non professionale ed il gioco é quello che rilevi.

      Il primo grado di auto correzione é eseguito dalla funzione map perché rimappando 800 valori su 180 é circa 1/4 di risoluzione persa a vantaggio della stabilità del servo.
      Se non basta puoi agire con un campionamento di 10/20/30 valori e farne la media prima di inviarli al servo, ovviamente la media la farai anche prima del map()

      1. kevin

        Grazie della risposta Mauro.
        Quindi se ho capito bene, leggo ad esempio 10 valori , faccio la media e poi uso la funzione map()?
        Con quale istruzione potrei fare una media corretta in Arduino?

        1. Mauro Alfieri

          Ciao Kevin,
          hai compreso in modo egregio.
          La media la fai con una formula matematica: sommi tutti i valori letti nei 10 campioni e dividi per 10 il risultato.

          1. kevin

            grazie mille Mauro, proverò e farò sapere i risultati!

          2. Mauro Alfieri

            Ottimo Kevin !!!

  7. Francesco

    Ciao ma la resistenza da inserire quale devo mettere? La 1k,10k o 100k??
    Grazie

    1. Mauro Alfieri

      Ciao Francesco,
      nello schema è riportata la resistenza che ho utilizzato io, è una 10K come puoi vedere dai colori.

  1. Guanto con sensore di flessione - Mauro Alfieri Elettronica Robotica

    […] « Sensore di flessione – montaggio […]

  2. Servo e sensore di flessione - Mauro Alfieri Elettronica Robotica

    […] Sensore di flessione – montaggio […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>