Mini proiect (54) - Măsurarea turației unei turbine cu un senzor inductiv și ESP32

Măsurarea Turației unei Turbine cu un senzor inductiv și ESP32

 Proiectul are ca scop măsurarea turației unei turbine cu 11 pale folosind un senzor inductiv și un microcontroler ESP32. Turația turbinei este un parametru esențial în controlul și monitorizarea echipamentelor industriale și a proceselor care implică mișcarea de rotație.

Senzorul inductiv 

Un senzor inductiv este un dispozitiv electronic care detectează obiecte sau schimbări în mediu folosind principiul inductanței electromagnetice. Acesta constă într-o bobină sau o serie de bobine de sârmă înconjurate de un nucleu de ferită sau alt material feromagnetic.

 


 Iată cum funcționează în mod general:

  • Bobina Inductivă: Senzorul inductiv are o bobină de sârmă în interior, prin care trece un curent electric.

  • Generarea unui Câmp Magnetic: Atunci când curentul trece prin bobină, se creează un câmp magnetic în jurul acesteia. Mărimea acestui câmp magnetic depinde de intensitatea curentului electric care trece prin bobină.

  • Detectarea Obiectelor: Atunci când un obiect metalic intră în zona de acțiune a câmpului magnetic generat de senzor, acesta perturbă câmpul magnetic. Această perturbare poate fi detectată de senzor.

  • Generarea unui Semnal Electric: Senzorul inductiv convertește perturbarea câmpului magnetic într-un semnal electric. Această schimbare în semnal este ulterior utilizată pentru a declanșa o anumită acțiune sau pentru a indica prezența sau absența unui obiect metalic în zona senzorului.

Senzorii inductivi sunt adesea utilizați în aplicații industriale pentru detectarea prezenței sau absenței obiectelor metalice, controlul poziției în procese de fabricație sau chiar în sistemele de alarmă. Un avantaj important al senzorilor inductivi este faptul că pot funcționa fără contact direct cu obiectul detectat, ceea ce îi face durabili și potriviți pentru medii industriale dificile.

 Conectarea senzorului

Conectarea unui senzor inductiv NPN - NO (normal deschis) la un ESP32 poate fi realizată folosind un convertor de nivel logic. Iată pașii generali pe care îi poți urma:

Conectarea Senzorului Inductiv la ESP32

  • Alimentare:

    • Conectează pinul de alimentare (Vcc) al senzorului inductiv la o sursă de alimentare de 5-30V. Pentru că acest senzor funcționează și la 5 V eu l-am conecta la VIN de pe placa ESP32. Ar putea fi folosită o tensiune mai mare de la o sursă externă, de exemplu o baterie sau o altă sursă de alimentare care furnizează tensiunea corespunzătoare, dar în cazul acesta  ar trebui redusă tensiunea de intra pentru convertorul de nivel logic până la 5V.
  • Masă (GND):

    • Conectează pinul de masă (GND) al senzorului la pinul de masă (GND) al ESP32.
  • Ieșire (Out):

    • Conectează pinul de ieșire (Out) al senzorului inductiv la un pin  de intrare de pe placa de conversie logică HV1, iar de la această placă, se va conecta LV1 la un pin (de exemplu eu am folosit pinul 13) de pe ESP32 (vezi poza de mai jos).

  Aplicație practică

Calcularea turației unei turbine cu 11 pale din metal folosind un senzor inductiv implica monitorizarea frecventei semnalului generat de acest senzor în timpul funcționarii turbinei. Pentru a măsura turația unei turbine cu un senzor inductiv, se pot urma următorii pași generali:

  • Montare Senzor Inductiv:

    • Se poziționează senzorul inductiv astfel încât să detecteze trecerea fiecărei pale a turbinei. Se montează în așa fel încât pala metalică să perturbe câmpul magnetic al senzorului în timpul rotației.
    • Deoarece turbina are 11 pale, trebuie să se  configureze corect programul pentru a număra fiecare trecere a unei pale. Acest număr este important pentru a calcula turația.
  • Detectarea palelor - am configurat o întrerupere în software care incrementează o variabilă în momentul în care detectează o pală a turbinei , iar acesta se numește un impuls
  •  Calcularea Turației:
    • Poți calcula turația în funcție de numărul de impulsuri (detectări ale trecerii unei pale) într-un interval de timp. Formula de bază este: 
Turație=Număr de impulsuri / Timp
  • Durata unei rotații complete este suma duratelor celor 11 impulsuri detectate de senzorul inductiv
  • Turația în rotații pe minut (rpm) este de fapt de câte ori s-a învârtit turbina într-un minut.  
  • Deci dacă turbina s-a învârtit o singură dată o să avem 11 impulsuri de senzorul inductiv

Turația poate fi calculata utilizând formula:

Turație(rpm)=(Frecventa semnalului/Pulse per rotatie)×60

Unde:

  • Frecventa semnalului este frecventa semnalului generat de senzorul inductiv.

  • Pulse per rotatie reprezinta numărul de impulsuri sau pulsații detectate de senzor în timpul unei rotații complete a turbinei.

Este important sa cunoaștem pulse per rotație deoarece acesta depinde de configurația senzorului inductiv și de numărul de pale ale turbinei. In cazul unei turbine cu 11 pale, numărul de impulsuri pe rotație va fi 11×x, unde x este numărul de impulsuri generate de senzor în timpul unei rotații complete.

Există mai multe metode pentru calcularea turației unei turbine, iar alegerea depinde adesea de caracteristicile specifice ale senzorului sau dispozitivului folosit pentru a măsura rotația. Iată câteva alternative:

  • Măsurare timp între impulsuri:
    • Măsurați intervalul de timp dintre două impulsuri consecutive folosind funcții precum millis()( returnează timpul în milisecunde) sau micros() (returnează timpul în microsecunde) în limbajul Arduino
    • Calculați frecvența semnalului inversul timpului măsurat.
    • Apoi utilizați formula pentru a calcula turația.
  • Contorizare impulsuri într-un interval de timp:

    • Utilizez un timer pentru a contoriza numărul total de impulsuri într-un interval de timp fix.
    • Acest număr poate fi apoi folosit pentru a calcula turația.
     

 Componente


Schema electronică/sistem - Conectare Hardware

Implementare Software

Implementarea acestui algoritm pe un microcontroler ESP32 în limbajul C implică citirea frecvenței semnalului generat de senzorul inductiv și utilizarea formulei menționate anterior pentru a calcula turația turbinei. Iată o schiță a codului în limbajul C pentru platforma ESP32: 


#include "Arduino.h"

// Definirea pinului pentru conectarea senzorului inductiv
const int inductiveSensorPin = 13;

// Variabile pentru stocarea frecventei semnalului și turatiei
volatile int signalFrequency = 0;
int pulsePerRotation = 11;  // Numarul de impulse pe rotatie pentru o turbina cu 11 pale

void setup() {
  Serial.begin(115200);
  
  // Configurarea pinului senzorului inductiv ca intrare
  pinMode(inductiveSensorPin, INPUT);

  // Attach interrupt pentru a monitoriza schimbarile pe pin
  attachInterrupt(digitalPinToInterrupt(inductiveSensorPin), handleInterrupt, FALING);
}

void loop() {
  // Calcularea turatiei folosind formula
  float rotationSpeed = (float)signalFrequency / pulsePerRotation * 60;

  // Afisarea rezultatului
  Serial.print("Turatia: ");
  Serial.print(rotationSpeed);
  Serial.println(" rpm");

  // Așteptare pentru a evita afișarea prea rapidă a rezultatelor
  delay(1000);
}

// Funcție apelată la fiecare schimbare pe pinul senzorului inductiv
void handleInterrupt() {
  // Incrementarea frecvenței semnalului la fiecare schimbare de stare
  signalFrequency++;
}

Acest cod folosește funcția attachInterrupt pentru a detecta schimbările de stare pe pinul senzorului inductiv. Frecvența semnalului este măsurată în funcția handleInterrupt, iar turația este calculată în funcția loop pe baza frecvenței semnalului și afișată prin portul serial.

Asigurați-vă că ați setat corect pinul pentru senzorul inductiv (inductiveSensorPin) în funcția setup. De asemenea, ajustați variabila pulsePerRotation în funcție de numărul real de pale ale turbinei.

Documentație proiect

Afiliere eMag

 Linkurile de la secțiunea "Componente" conțin adresa mea de afiliere la eMag.ro, iar dacă cumperi folosind aceste linkuri vei susține blogul meu. Mulțumesc! 

eMag Genius:
Hai și tu în Genius! Abonează-te la Genius 12 luni și primești beneficii premium și 20 lei card cadou eMAG. Profită acum! eMag Genius

Mulțumesc pentru atenție!

Pentru întrebări și/sau consultanță tehnică vă stau la dispozitie pe blog mai jos în secțiunea de comentarii sau pe email simedruflorin@automatic-house.ro. O zi plăcută tuturor !

Back to top of page

Etichete

Afișați mai multe

Arhiva

Afișați mai multe