martedì 22 maggio 2012

Sensore di flessione su Arduino

Questo test e' relativo al sensore di flessione identificato come A.G.E. Spectra Symbol patent  5.086.785. 
In pratica un sensore di flessione si comporta come una resistenza variabile con la flessione di una linguetta; nel nostro caso si passa da un valore di 9 KOhm in posizione distesa ad un valore di 23 KOhm in posizione piegata

Sensore piatto
Sensore piegato a circa 90°





ATTENZIONE: il verso della torsione e' importante; la resistenza aumenta solo se la flessione e' dal lato opposto a quello della scritta

Il circuito da montare e' piuttosto semplice (la resistenza di pull-off e' da 10 KOhm)





cosi' come lo e' lo sketch
------------------------------------
int SensorPin = A0;
int SensorValue = 0;

void setup(){
  Serial.begin(9600);
}

void loop() {
  SensorValue = map(analogRead(SensorPin),350,520,0,90);
  SensorValue = 90-SensorValue;
  Serial.println(SensorValue);
  delay(1000);
}

------------------------------------
da notare che prima di scrivere il programma ho annotato il valore letto sulla seriale ad angolo 0° e 90° cosi' con la funzione map e' stato possibile scalare al volo i risultati per mostrare direttamente l'angolo di piega
Digital Number 350  su Pin A0 = 0°
Digital Number 520 su Pin A0 = 90°

2 commenti:

  1. Scusa la mia ignoranza posso sapere perchè sono stati scelti proprio i valori 350 e 520?

    RispondiElimina
    Risposte
    1. i valori sono stati scelti perche' il valore letto sulla seriale con il sensore piegato di 0° era di 350 mentre con il sensore piegato di 90° era di 520...in sostanza si tratta di una calibrazione. La funzione map serve per convertire (mediante una proporzione) i valori di tensione letti sul pin analogico 0 in valore angolare. Spero di essere stato piu' chiaro

      Elimina