Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Op Arduino gebaseerde RPM-teller met een nieuw en sneller algoritme

Componenten en benodigdheden

Arduino UNO
× 1
IR-nabijheidssensor
Gebruik de sensor die in dit project wordt aanbevolen, anders kunnen de resultaten variëren
× 1
Jumperdraden (algemeen)
× 3
Laserdiode, 655 nm
Je kunt een kant-en-klare laserpointer gebruiken en niet noodzakelijk de bovengenoemde.
× 1
DC-motor (generiek)
dit is om te testen.
× 1
USB-A naar mini-USB-kabel
× 1
Batterij, 9 V
× 1

Benodigde gereedschappen en machines

Soldeerdraad, loodvrij
Soldeerbout (algemeen)
alleen voor het solderen van draden aan motorkabels. U kunt ook andere middelen gebruiken.

Apps en online services

Arduino IDE

Over dit project

Dit project is ontwikkeld vanuit kras als een poging om de exacte RPM (rotaties) te meten per Minuut)waarde van verschillende motoren met een enkele IR sensor, een Arduino-bord en een essentieel hoofdingrediënt - een laserpointer (noodzakelijkerwijs rood).

Dit project maakt gebruik van het feit dat de IR-sensor ook het lage aantal IR-stralingen van de rode laser leest. Wanneer echter een blauw/groene laser wordt gebruikt, worden deze IR-stralingen veel minder en daalt de analoge leesspanning tot ca. 0.

Wanneer een blad van de ventilator die aan de motor is bevestigd in het pad van de laserstraal komt, blokkeert het het pad en de waarde daalt naar 0. Het ventilatorblad blijft draaien en zijn positie blijft veranderen met een constante stroomtoevoer. Er vindt een constante verandering van pad plaats. Wanneer het pad weer vrij wordt, raakt de laserstraal de sensor weer.

NIEUWE SINGLE SHOT ALGORITHM GEBASEERDE CODE, VOOR SNELLER EN VEEL MEER WIJZIG ADAPTIEVE METINGEN:-

De code voor dit project die door mij is ontwikkeld, gebruikt een nieuw ontwikkeld algoritme voor dit project. De algoritme is inderdaad uniek en is gebouwd om metingen te doen in minder dan 40 milliseconden en nauwkeurige resultaten te leveren. Een heel belangrijk kenmerk van dit programma is dat het een methode gebruikt die ik Single Shot Detection for Arduino noem. Het berekent het toerental van de motor telkens wanneer het ventilatorblad een obstakel vormt in het pad van de laserstraal. Dit komt omdat de obstructie van het pad van de laserstraal een 1/n volledige omwenteling markeert voor n aantal bladen in de ventilator. Dus, het programma is erg gevoelig naar zelfs minieme veranderingen in de RPM ( tot 2 decimalen) in elke 1/n de revolutie van de fan mes opnieuw waar n is de nummer van bladen van de fan. Vandaar dat dit unieke Single Shot Detection-algoritme extreem nauwkeurig is waarde van RPM en hogere gevoeligheid voor veranderingen in metingen.

In de hierboven weergegeven afbeelding van een uitvoer voorbeeld van de serie monitor in een test rennen, de waarderen van uitvoer screening kan duidelijk wees gezien die is over 2 keer een tweede. De RPM waarden zijn berekend tot twee plaatsen van decimalen elk tijd.

Iedereen die dit bekijkt, moet dit project een keer proberen en uw waardevolle beoordelingen delen. Vertel over uw experimenten en hun resultaten met betrekking tot dit algoritme. Suggesties voor nieuwe projecten zijn welkom in het opmerkingengedeelte. Als je het project leuk vindt, respecteer het dan.

Volg mijn profiel door op deze link te tikken(https://create.arduino.cc/projecthub/YASH36) @YASH36 voor enkele nieuwe projectupdates.

Tot die tijd, blijf veilig en geniet van Arduino!!

Code

  • RPM_counter_101
RPM_counter_101Arduino
Dit is de code voor de RPM-teller.
//code door YaSh.int sen =A0;const float wid =0.012; // pas de breedte van het ventilatorblad aan volgens uw behoeften.const float rad =0.045; // pas de straal van het detectiepunt aan in de fan blade.const float konst =6.2832; // 2*pi.float time_1;float time_2;float vel;float diff;float tnet;float rpm;void setup() {Serial.begin(9600); pinMode(sen,INPUT); Serial.print(" \n start de motor a.u.b. minstens 3 seconden van tevoren.\n"); delay(3000);}void loop(){ if(analogRead(sen)<950) { time_1 =millis(); vertraging (30); } if(analogRead(sen)>950) { time_2 =millis(); diff =(time_2-time_1); vel =breedte/diff; // rotatiesnelheid tnet =(konst*rad)/vel; //tijd =(2*pi*straal)/snelheid. tpm =(60000)/tnet; // tijd in ms naar minuten en vervolgens naar rpm conversiestap. }Serial.print("\n Het toerental is :"); Serial.println( rpm);}

Schema's

dit is de afbeelding voor de plaatsing van de basis en andere componenten schema voor het aansluiten van de sensor op het Arduino-bord

Productieproces

  1. Aerocultuur met Raspberry Pi en vochtigheidssensor
  2. Portenta- en thermokoppelsensor (met MAX6675)
  3. Arduino-gyroscoopspel met MPU-6050
  4. DHT11-sensor met LED's en een piëzo-luidspreker
  5. CO2-monitoring met K30-sensor
  6. Unopad - Arduino MIDI-controller met Ableton
  7. Temperatuur- en vochtigheidsdatalogger
  8. IOT - Smart Jar met ESP8266, Arduino en ultrasone sensor
  9. Eenvoudige obstakelsensor met Arduino
  10. Capacitieve vingerafdruksensor met een Arduino of ESP8266
  11. Arduino en OLED-gebaseerde mobiele automaten