Graphene/Test touch sensor

Da raspibo.
Versione del 4 dic 2016 alle 19:42 di Dancast78 (discussione | contributi) (Creata pagina con '= Test touch sensor = Per questo test utilizzo [https://www.pjrc.com/teensy/ Teensy] versione 3.1, questa versione ha la possibilità di gestire ingressi touch (non ho trovato...')
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

Test touch sensor

Per questo test utilizzo Teensy versione 3.1, questa versione ha la possibilità di gestire ingressi touch (non ho trovato molto a riguardo, ma qui c'è qualche informazione in più https://blog.adafruit.com/2012/10/19/teensy-3-0-software-update/ sezione Touch Sensing), purtoppo funziona solo con la pellicola più scura, ma va poi valutato meglio se ci siano altre possibilità.

Il codice di seguito permette di visualizzare i valori letti e attivando la funzione Serial Plotter dell'IDE di Arduino (presente nelle ultime versioni).

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println(touchRead(23));
  delay(100);
}

Mi sembra di capire che non sia possibile settare la sensibilità perciò l'uso è limitato alla sola pellicola più conduttiva.

La realizzazione è molto semplice perchè basta collegare un pin di Teensy alla pellicola, magari usando una graffetta.

https://blog.adafruit.com/2012/10/19/teensy-3-0-software-update/

Un programma un pò più completo per dimostare con un led RGB che le pellicole possono essere usate come pulsanti per aumentare o diminuire un valore.

int val;
long calc;
long tasto_piu;
long tasto_meno;
const int ledPin_r=21;
const int ledPin_g=5;
const int ledPin_b=6;
const long soglia_tasto_piu=2400;
const long soglia_tasto_meno=2400;
const int inc=20;

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

void loop() {
  tasto_piu=touchRead(22);
  Serial.print(val);
  Serial.print("\t");
  Serial.print(tasto_piu);
  Serial.print("\t");
  tasto_meno=touchRead(23);
  Serial.println(tasto_meno);
  if (tasto_piu>soglia_tasto_piu && val<=3072) { 
    val=val+inc;
  }
  if (tasto_meno>soglia_tasto_meno && val>=0) { 
    val=val-inc;
  }
  if (val>2048) {
  analogWrite(ledPin_g, val-2048);
  } else {
    analogWrite(ledPin_g, 0);
  }
  if (val>1024) {
  analogWrite(ledPin_b, val-1024);
  } else {
  analogWrite(ledPin_b, 0);
  }
  analogWrite(ledPin_r, val);
  delay(50);
}