In offerta!

Modulo Sensore di Shock Tilt FC-06 Sensore Vibrazione

Il prezzo originale era: 4,57 €.Il prezzo attuale è: 2,11 €.

Modulo Sensore di Shock Tilt FC-06 Sensore Vibrazione

Disponibile su ordinazione

COD: ARD0082 Categorie: ,

Descrizione

[vc_row][vc_column][vc_column_text]

 


📘 Descrizione del modulo FC‑06

  • Il modulo FC‑06 è un sensore di vibrazione/urto basato su interruttore a molla (meccanico), spesso simile ai moduli KY‑002 o SW‑520D. Quando viene colpito o vibra, il contatto chiude brevemente il circuito (Electrothinks).
  • Funziona a tensioni comprese tra 3,3 V e 5 V, compatibile con Arduino (elkine.altervista.org, components101.com, ProtoSupplies).
  • Il modulo include solitamente:
    • LED Power (alimentazione).
    • LED Shock/DO che si accende quando viene rilevata una vibrazione/urto (iot-guider.com).
  • Uscita digitale parallela, cioè un pin digitale che passa normalmente da HIGH a LOW (o viceversa) al rilevamento del movimento (ProtoSupplies, ArduinoModulesInfo, phippselectronics.com).

Pinout tipico (3 pin)

  • VCC → +5 V (o 3,3 V)
  • GND → massa
  • S (Signal) → uscita digitale

🔧 Collegamenti con Arduino

Schema tipico using Arduino Uno:

FC‑06 VCC → Arduino 5 V (o 3,3 V)
FC‑06 GND → Arduino GND
FC‑06 S   → Arduino pin digitale (ad esempio D2 o D3)
Optional: LED o buzzer su un altro pin per avviso visivo/acustico.

Ogni volta che si scuote o colpisce il modulo, il pin digitale cambia stato brevemente, il LED DO si illumina e il segnale viene letto da Arduino (ProtoSupplies, Electrothinks, iot-guider.com).


💻 Esempi di codice

1. Semplice rilevazione (LED integrato)

const int shockPin = 2;    // ingresso dal sensore
const int ledPin   = 13;   // LED integrato

void setup(){
  pinMode(shockPin, INPUT);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  int val = digitalRead(shockPin);
  if(val == LOW){  // LOW se sensore attivo (o HIGH a seconda del modulo)
    digitalWrite(ledPin, HIGH);
    Serial.println("Shock detected!");
  } else {
    digitalWrite(ledPin, LOW);
  }
  delay(100);
}

2. Allarme lampeggiante + led verde/rosso

int shockPin = 2;
int greenLed = 3;
int redLed   = 4;

void setup(){
  pinMode(shockPin, INPUT);
  pinMode(greenLed, OUTPUT);
  pinMode(redLed, OUTPUT);
}

void loop(){
  if(digitalRead(shockPin) == HIGH){
    digitalWrite(greenLed, LOW);
    for(int i=0;i<10;i++){
      digitalWrite(redLed, HIGH);
      delay(150);
      digitalWrite(redLed, LOW);
      delay(150);
    }
  } else {
    digitalWrite(greenLed, HIGH);
    digitalWrite(redLed, LOW);
  }
}

Questo esempio è tratto da tutorial sul modulo KY‑002/SW‑18010P, che funziona in modo equivalente a FC‑06 (ipsiaplcarduinolab.altervista.org, Arduino Project Hub, getelectronics.net).

3. Usare interrupt per rilevare impulsi rapidi

volatile bool shockFlag = false;

void inputChange() {
  shockFlag = true;
}

void setup(){
  pinMode(2, INPUT);
  pinMode(13, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(2), inputChange, FALLING);
}

void loop(){
  if(shockFlag){
    digitalWrite(13, HIGH);
    delay(200);
    digitalWrite(13, LOW);
    shockFlag = false;
  }
}

Questo approccio è utile per non perdere impulsi brevi in presenza di vibrazioni rapide (forum.arduino.cc, components101.com).


⚙️ Consigli pratici e tuning

  • Debounce: il sensore produce spesso segnali di rimbalzo (bounce). È bene aggiungere un filtro software con delay, o usare la modalità interrupt con controllo temporale (forum.arduino.cc, ProtoSupplies).
  • Sensibilità: moduli con potenziometro (es. FC‑06) permettono di regolare la soglia di attivazione. Prova a ruotarlo lentamente fino a ottenere comportamento stabile (elkine.altervista.org, forum.arduino.cc).
  • Orientamento: se il sensore include anche un tilt switch, l’orientamento rispetto alla gravità può influenzare il segnale. Testare in varie posizioni (forum.arduino.cc).

🛠 Applicazioni tipiche

  • Antifurti e intrusioni: rilevare vibrazioni su porte, finestre o oggetti.
  • Rilevatori di caduta o urto: usato in dispositivi mobili, pacchi o robot.
  • Progetti interattivi: scuotere o colpire un oggetto per attivare LED, buzzer o serie di eventi.

✅ Riepilogo

Caratteristica Dettagli
Alimentazione 3,3–5 V
Uscita Digitale (LOW o HIGH al tocco)
Sensibilità regolabile Sì, tramite potenziometro
Funzionamento Basato su molla o palla interna
Modalità lettura Polling digitale o interrupt

Perfetto! Integrare il sensore di shock/vibrazione FC-06 in un progetto pratico è un ottimo modo per sfruttarne le potenzialità. Ecco 3 progetti specifici con guida, schemi e codice:


🔧 Progetto 1: Datalogger di vibrazioni su microSD

Obiettivo: Registrare data/ora e numero di vibrazioni su una scheda SD.

🧰 Componenti necessari:

  • Arduino Uno/Nano
  • Sensore FC-06
  • Modulo microSD (es. con chip CS)
  • Modulo RTC (es. DS3231 per data/ora)
  • Cavi jumper, breadboard

🖇️ Collegamenti principali:

Componente Collegamento con Arduino
FC-06 S D2
microSD SPI: D10-CS, D11-MOSI, D12-MISO, D13-SCK
RTC I2C: A4-SDA, A5-SCL

💻 Codice esempio:

#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include <RTClib.h>

const int shockPin = 2;
const int chipSelect = 10;
RTC_DS3231 rtc;
File dataFile;

void setup() {
  Serial.begin(9600);
  pinMode(shockPin, INPUT);

  if (!SD.begin(chipSelect)) {
    Serial.println("Errore SD");
    while (1);
  }

  if (!rtc.begin()) {
    Serial.println("Errore RTC");
    while (1);
  }

  attachInterrupt(digitalPinToInterrupt(shockPin), logShock, FALLING);
}

void loop() {
  delay(1000); // inattività
}

void logShock() {
  DateTime now = rtc.now();
  dataFile = SD.open("datalog.txt", FILE_WRITE);
  if (dataFile) {
    dataFile.print(now.timestamp());
    dataFile.println(" - Vibrazione rilevata");
    dataFile.close();
  }
}

🔁 Espandibile: puoi aggiungere contatori giornalieri, buzzer di notifica, Wi-Fi ecc.


📡 Progetto 2: Allarme vibrazioni wireless (con ESP8266/ESP32)

Obiettivo: Inviare una notifica Wi-Fi o HTTP se viene rilevata una vibrazione.

🧰 Componenti:

  • ESP8266 (NodeMCU) o ESP32
  • FC-06
  • LED (facoltativo)

🖇️ Collegamenti:

  • FC-06 S → D1 (GPIO5)
  • FC-06 VCC → 3.3V
  • GND → GND

💻 Codice esempio:

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const char* ssid = "TUO_WIFI";
const char* password = "TUA_PASSWORD";

const int shockPin = D1;
bool shockDetected = false;

void setup() {
  pinMode(shockPin, INPUT);
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }

  attachInterrupt(digitalPinToInterrupt(shockPin), onShock, FALLING);
}

void loop() {
  if (shockDetected) {
    if (WiFi.status() == WL_CONNECTED) {
      HTTPClient http;
      http.begin("http://tuo_server/notifica.php?vibrazione=1");
      http.GET();
      http.end();
    }
    shockDetected = false;
  }
}

void onShock() {
  shockDetected = true;
}

🧠 Puoi usare:

  • IFTTT o Telegram Bot per notifiche push
  • Blynk, Node-RED, Home Assistant per dashboard smart

🤖 Progetto 3: Robot che cambia direzione quando sbatte

Obiettivo: Robot evita ostacoli cambiando direzione se rileva un urto (con due motori).

🧰 Componenti:

  • Arduino Uno/Nano
  • FC-06 montato sul frontale
  • L298N (driver per motori DC)
  • Due motorini
  • Batteria Li-ion o pacco 6xAA

🖇️ Collegamenti base:

  • FC-06 S → D2
  • Motori e driver secondo schema L298N
  • FC-06 GND e VCC → Arduino

💻 Codice esempio:

#define shockPin 2
#define in1 3
#define in2 4
#define in3 5
#define in4 6

void setup() {
  pinMode(shockPin, INPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  moveForward();
}

void loop() {
  if (digitalRead(shockPin) == LOW) {
    moveBackward();
    delay(500);
    turnRight();
    delay(500);
    moveForward();
  }
}

void moveForward() {
  digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
  digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
}

void moveBackward() {
  digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
  digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
}

void turnRight() {
  digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
  digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
}

🚗 Espandibile con:

  • Sensori IR/ultrasuoni per evitare ostacoli
  • Giroscopio per autobilanciamento

 


🌍 Progetto: Rilevatore di terremoti low-cost con soglia e allarme

🎯 Obiettivo:

  • Rilevare scosse o vibrazioni con una certa sensibilità.
  • Attivare un allarme (buzzer/LED/sirena).
  • Registrare gli eventi via seriale o SD.
  • (Facoltativo) Inviare notifiche via Wi-Fi o GSM.

🧰 Componenti necessari:

Componente Quantità Note
Arduino Uno / Nano 1 Qualsiasi compatibile va bene
Sensore FC-06 1 Sensore di vibrazione/shock
Buzzer attivo o passivo 1 Per l’allarme acustico
LED rosso/giallo/verde 2–3 Per stato e allarme
Resistenze 220–330Ω 2–3 Per i LED
Modulo SD (facoltativo) 1 Per log degli eventi
RTC DS3231 (facoltativo) 1 Per data/ora
Modulo GSM/WiFi (opz.) 1 Per notifica SMS o web
Breadboard + jumper Collegamenti

🔌 Collegamenti essenziali

FC-06 Pin Arduino
VCC 5 V
GND GND
S D2

| Buzzer | D8 (via transistor se necessario) |
| LED Rosso| D9 |
| LED Verde| D10 |


💡 Funzionamento

  • Il sensore FC-06 invia un impulso (LOW) quando rileva vibrazioni.
  • Arduino conta gli impulsi in una finestra temporale (es. 10 secondi).
  • Se supera una soglia impostatascatta allarme (buzzer/LED).
  • Altrimenti resta in standby con LED verde acceso.
  • Può anche salvare gli eventi su SD o inviare notifiche.

💻 Codice completo

const int shockPin = 2;
const int ledVerde = 10;
const int ledRosso = 9;
const int buzzer = 8;

int shockCount = 0;
unsigned long lastCheck = 0;
const int interval = 10000; // 10 secondi
const int threshold = 5;    // soglia eventi

void setup() {
  pinMode(shockPin, INPUT);
  pinMode(ledVerde, OUTPUT);
  pinMode(ledRosso, OUTPUT);
  pinMode(buzzer, OUTPUT);
  Serial.begin(9600);
  attachInterrupt(digitalPinToInterrupt(shockPin), countShock, FALLING);
}

void loop() {
  if (millis() - lastCheck >= interval) {
    lastCheck = millis();
    Serial.print("Shock rilevati: ");
    Serial.println(shockCount);

    if (shockCount >= threshold) {
      allarme();
    } else {
      standby();
    }

    shockCount = 0; // reset contatore
  }
}

void countShock() {
  shockCount++;
}

void allarme() {
  digitalWrite(ledVerde, LOW);
  digitalWrite(ledRosso, HIGH);
  for (int i = 0; i < 5; i++) {
    digitalWrite(buzzer, HIGH);
    delay(200);
    digitalWrite(buzzer, LOW);
    delay(200);
  }
  digitalWrite(ledRosso, LOW);
}

void standby() {
  digitalWrite(ledVerde, HIGH);
  digitalWrite(ledRosso, LOW);
}

⚙️ Personalizzazioni utili

📈 Modifica la soglia

const int threshold = 5;

→ aumenta se hai vibrazioni ambientali non significative.

📁 Aggiunta SD

Per registrare scosse:

#include <SD.h>
...
File dataFile;
dataFile = SD.open("quake.txt", FILE_WRITE);
if (dataFile) {
  dataFile.print("Scossa alle ");
  dataFile.println(millis());
  dataFile.close();
}

📲 Inviare allarmi via GSM (SIM800L/SIM900)

Serial.println("AT+CMGF=1");
Serial.println("AT+CMGS="+391234567890"");
Serial.print("Terremoto rilevato!");
Serial.write(26);  // Ctrl+Z

🧪 Test consigliati

Test Metodo Atteso
Colpo secco su tavolo Toccare vicino al sensore LED rosso e buzzer si attivano
Vibrazione costante Motore vibrante Raggiunta soglia dopo alcuni secondi
Ambiente statico Nessun movimento Nessuna attivazione

📦 Espansioni possibili

  • Integrazione con Home Assistant / MQTT (via ESP8266)
  • Salvataggio dati con timestamp su SD/RTC
  • Notifiche via Telegram bot o Pushbullet
  • Filtro software per eliminare falsi positivi

✅ Conclusione

Questo progetto offre una base concreta per un sistema anti-vibrazione / terremoto, utile in:

  • Cantieri
  • Monitoraggio di oggetti fragili
  • Sistemi civili di primo allarme

 

 

GENERALI

MODELLO

Sensore di Shock FC-06

MATERIALI

pbc + metallo +componenti

COMPATIBILITA’

ARDUINO

COMPONENTI ELETTRICI

VOLTAGGIO DI INPUT

5V

PESO E DIMENSIONI

PESO DEL PRODOTTO

10g

PESO DEL PACCHETTO

0.2 kg

DIMENSIONI DEL PRODOTTO

(L x W x H)

24 x 1.5 x 1 cm

DIMENSIONI DEL PACCHETTO

(L x W x H)

10 x 5 x 2 cm

CONTENUTO DELLA CONFEZIONE

CONTENUTO DELLA CONFEZIONE

1 x Modulo

Abbiamo disponibili datasheet di tutti i componenti, qualora non fosse presente nella scheda download del prodotto inviaci un messaggio dal modulo contattaci e lo pubblicheremo il prima possibile nel nostro sito.

[/vc_column_text][/vc_column][/vc_row]

Informazioni aggiuntive

Peso 15 g