Testeaza-ti precizia: Joc Arduino cu senzor de vibratii SW-420

Testeaza-ti precizia: Joc Arduino cu senzor de vibratii SW-420

Salutare, drag pasionat de electronica! Sunt Oana de la Bitmi.ro si ma bucur sa revin cu un nou proiect interactiv. Astazi iti voi arata cum sa construiesti un joc distractiv de reflexe si atentie bazat pe un senzor de vibratii SW-420, controlat de o placa de dezvoltare Arduino Uno.

Acest proiect este ideal atat pentru incepatori, cat si pentru cei care doresc sa invete cum sa integreze senzori de miscare/vibratie cu semnalizatoare sonore (buzzer) si vizuale (LED-uri). Scopul jocului este sa testezi cat de stabil poti tine un obiect fara a declansa senzorul de vibratii sau sa reactionezi rapid atunci cand sistemul detecteaza o miscare!

Ce este senzorul SW-420 si cum functioneaza?

Senzorul SW-420 este un modul electronic destinat detectarii vibratiilor, socurilor si inclinatiilor. In interiorul senzorului se afla un element de contact mobil (o mica bila metalica sau un arc) care, la aparitia unei vibratii sau a unei miscari bruste, intrerupe temporar circuitul electric.

Modulul include un comparator de precizie LM393 si un potentiometru integrat care iti permite sa ajustezi sensibilitatea la vibratii. Cand mediul este stabil, iesirea digitala (DO) ramane in stare LOW (sau HIGH, in functie de configuratie), iar cand este detectata o vibratie peste pragul setat, starea pinului se schimba instantaneu, trimitand un semnal catre placa Arduino.

Componente necesare

Pentru a construi acest joc vei avea nevoie de urmatoarele componente:

Joc Arduino cu senzor de vibratii SW-420

Exemplu cod

Conecteaza placa ta Arduino Uno la computer prin cablul USB, deschide mediu de dezvoltare Arduino IDE, selecteaza placa si portul din meniul Tools, apoi incarca codul de mai jos:

const int vibrationPin = 2; // Pinul D2 conectat la DO de pe SW-420
const int redLED = 4;       // LED-ul rosu pentru alarma/greseala
const int greenLED = 5;     // LED-ul verde pentru stare activa/OK
const int buzzer = 8;       // Buzzer-ul pentru semnal sonor

void setup() {
  pinMode(vibrationPin, INPUT);
  pinMode(redLED, OUTPUT);
  pinMode(greenLED, OUTPUT);
  pinMode(buzzer, OUTPUT);
  
  Serial.begin(9600);
  
  // Stare initiala: LED verde aprins (Jocul a inceput)
  digitalWrite(greenLED, HIGH);
  digitalWrite(redLED, LOW);
  digitalWrite(buzzer, LOW);
  
  Serial.println("Jocul a inceput! Pastreaza senzorul nemiscat...");
}

void loop() {
  int sensorValue = digitalRead(vibrationPin);

  if (sensorValue == HIGH) { // S-a detectat vibratie/miscare
    triggerAlarm();
  }
}

void triggerAlarm() {
  Serial.println("VIBRATIE DETECTATA! Ai pierdut runda!");
  
  // Aprinde LED-ul rosu si stinge LED-ul verde
  digitalWrite(greenLED, LOW);
  digitalWrite(redLED, HIGH);
  
  // Emitere semnal sonor de alerta
  for (int i = 0; i < 3; i++) {
    digitalWrite(buzzer, HIGH);
    delay(150);
    digitalWrite(buzzer, LOW);
    delay(150);
  }
  
  delay(2000); // Pauza de 2 secunde inainte de resetare
  
  // Resetare joc
  digitalWrite(redLED, LOW);
  digitalWrite(greenLED, HIGH);
  Serial.println("Joc resetat! Incearca din nou...");
}

Cum functioneaza proiectul?

Conceptul din spatele proiectului este simplu si eficient:

  • In functia setup(): Pinii sunt initializati. LED-ul verde se aprinde, indicand ca jocul este activ si ca jucatorul trebuie sa mentina platforma sau senzorul perfect nemiscat.
  • In functia loop(): Microcontrolerul citeste continuu starea pinului digital conectat la senzorul SW-420. Daca nu exista socuri, jocul continua normal.
  • Functia triggerAlarm(): Atunci cand senzorul detecteaza o vibratie brusc sau o miscare nedorita, starea pinului se schimba. Arduino intrerupe jocul, stinge LED-ul verde, aprinde LED-ul rosu si activeaza buzzer-ul pentru a emite un semnal sonor de avertizare. Dupa o pauza de resetare, jocul reincepe automat.

Daca aveti intrebari sau nelamuriri, nu ezitati sa ma contactati la adresa de e-mail electronica@bitmi.ro si voi raspunde cu drag. De asemenea, astept cu nerabdare sa primesc poze sau videoclipuri cu proiectele voastre la aceeasi adresa.

Sper ca acest proiect v-a inspirat si ca v-ati bucurat de procesul de construire!