INPUT DIGITALE: Esempio TOUCH SENSOR
Per costruire il seguente circuito occorre un touch sensor digitale
Ecco l'immagine del circuito utilizzato nei 3 esempi
Codice Sorgente A
Obiettivo progetto: Costruire un circuito che mostri sul serial monitor la frase "Stai Toccando" quando tocco il touch sensor
soluzione:
#define SENSOR_PIN 2 void setup() { pinMode(SENSOR_PIN, INPUT); Serial.begin(9600); } void loop() { if (digitalRead(SENSOR_PIN) == HIGH) Serial.println("Stai toccando"); else Serial.println("Non stai toccando"); }
Codice Sorgente B
Obiettivo progetto: Costruire un circuito che mantiene accesso un LED per tutta la durata del tocco sul touch sensor
soluzione:
#define SENSOR_PIN 2 #define LED_PIN 13 void setup() { pinMode(SENSOR_PIN, INPUT); pinMode(LED_PIN, OUTPUT); } void loop() { digitalWrite(LED_PIN,digitalRead(SENSOR_PIN)); }
Codice Sorgente C
Obiettivo progetto: Costruire un circuito che sfruttando un touch sensor simuli un interruttore che accende/spegne un led
soluzione:
#define SENSOR_PIN 2 #define LED_PIN 13 // Registra il tempo dell'ultimo evento touch unsigned long lastEvent = 0; // registra lo stato attuale del led sul pin 13 boolean ledOn = false; void setup() { pinMode(SENSOR_PIN, INPUT); pinMode(LED_PIN, OUTPUT); } void loop() { // Legge lo stato del sensore int touchState = digitalRead(SENSOR_PIN); // Solo quando lo stato è HIGH (il sensore è toccato) cambio lo stato del led if (touchState == HIGH) { // se la durata del tocco supera i 50 millisecondi allora considero // che il sensore è stato toccato volontariamente. if (millis() - lastEvent > 50) { // cambio lo stato del LED ledOn = !ledOn; digitalWrite(LED_PIN, ledOn ? HIGH : LOW); } // Ricordo l'istante in cui è avvenuto l'ultimo tocco lastEvent = millis(); } }