Taula de continguts:

Mesura de la velocitat del motor mitjançant Arduino: 6 passos
Mesura de la velocitat del motor mitjançant Arduino: 6 passos

Vídeo: Mesura de la velocitat del motor mitjançant Arduino: 6 passos

Vídeo: Mesura de la velocitat del motor mitjançant Arduino: 6 passos
Vídeo: Lesson 10: Using Potentiometer reading voltage, Analog and Digital 2024, Desembre
Anonim
Mesura de la velocitat del motor mitjançant Arduino
Mesura de la velocitat del motor mitjançant Arduino
Mesura de la velocitat del motor mitjançant Arduino
Mesura de la velocitat del motor mitjançant Arduino
Mesura de la velocitat del motor mitjançant Arduino
Mesura de la velocitat del motor mitjançant Arduino

És difícil mesurar les rpm del motor ??? No ho crec. Aquí teniu una solució senzilla.

Només un sensor IR i Arduino del vostre equip poden fer-ho.

En aquest post donaré un senzill tutorial que explica com mesurar la RPM de qualsevol motor mitjançant sensor IR i Arduino UNO / nano

Subministraments:

1. Arduion uno (Amazon) / Arduion nano (Amazon)

2. Sensor IR (Amazon)

3. Motor de corrent continu qualsevol (Amazon)

4. LCD 16 * 2 (Amazon)

Eines utilitzades

1. Soldador (Amazon)

2. Filferro (Amazon)

Pas 1: pas: 1 Assegureu-vos de la condició de treball dels sensors i dels dispositius

El sensor IR és un dispositiu electrònic que emet la llum per detectar algun objecte de l’entorn. Un sensor IR pot mesurar la calor d’un objecte i detectar el moviment. Normalment, a l’espectre infrarojos, tots els objectes irradien alguna forma de radiació tèrmica. Aquest tipus de radiacions són invisibles als nostres ulls, però el sensor d’infrarojos pot detectar aquestes radiacions.

Un motor de corrent continu (CC) és un tipus de màquina elèctrica que converteix l’energia elèctrica en energia mecànica. Els motors de corrent continu prenen energia elèctrica a través del corrent continu i converteixen aquesta energia en rotació mecànica.

Els motors de corrent continu utilitzen camps magnètics que es produeixen a partir dels corrents elèctrics generats, cosa que potencia el moviment d’un rotor fixat dins de l’eix de sortida. El parell i la velocitat de sortida depenen tant de l’entrada elèctrica com del disseny del motor.

Què és Arduino?

Arduino és una plataforma electrònica de codi obert basada en maquinari i programari fàcils d’utilitzar. Les plaques Arduino són capaces de llegir les entrades (llum d’un sensor, un dit sobre un botó o un missatge de Twitter) i convertir-lo en una sortida: activant un motor, encenent un LED, publicant alguna cosa en línia. Podeu dir a la vostra placa què fer enviant un conjunt d’instruccions al microcontrolador de la placa. Per fer-ho, utilitzeu el llenguatge de programació Arduino (basat en el cablejat) i el programari Arduino (IDE), basat en el processament.

Descarregueu IDE ARDUINO

Pas 2: com funciona?

Quina és la lògica que hi ha darrere d'això?

Funciona molt similar al codificador. Els codificadors són difícils d’entendre per als principiants. Tot el que heu de saber és que el sensor IR genera pols i estem descobrint l’interval de temps entre cada pols.

En aquest cas, el sensor IR enviarà un pols a Arduino quan el seu feix IR sigui interceptat amb hèlixs de motors. Normalment fem servir hèlixs amb dues pales, però he utilitzat hèlix amb tres pales, tal com es mostra a la figura. depenent del nombre de pales de l'hèlix, hem de modificar alguns valors durant el càlcul de RPM.

considerem que tenim una hèlix que té dues pales. Per a cada motor de revolució, la fulla interceptarà el raig IR dues vegades. Així, el sensor IR produirà polsos sempre que les interceptin.

Ara hem d’escriure un programa que pugui mesurar el nombre d’impulsos produïts pel sensor IR en un interval de temps concret.

Hi ha més d’una manera de resoldre un problema, però hem de triar quina és la millor en aquests codis. He mesurat la durada entre les interrupcions (sensor IR). He utilitzat funcions micros () per mesurar la durada dels impulsos en micro segons.

podeu utilitzar aquesta fórmula per mesurar el RPMRPM = ((1 / durada) * 1000 * 1000 * 60) / fulles

on, durada - interval de temps entre polsos.

60 segons a minuts

1000 - molí a seg

1000 - micro a molí

fulles: no hi ha ales a l'hèlix.

Pantalla LCD: Arduino actualitza els registres de comandes i dades de la pantalla LCD. Que mostra els caràcters ASCII a la pantalla LCD.

Pas 3: programa el teu Arduino amb Arduino IDE

#incloure

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // Sensor IR INPUT sense signar prevmicros llargs; // Emmagatzemar temps sense signar una llarga durada; // Per emmagatzemar diferència de temps sense signar lcdrefresh llarg; // Per emmagatzemar el temps perquè lcd refresqui int rpm; // Valor RPM estat actual booleà; // Estat actual de la previsió booleana d'escaneig d'entrada IR; // Estat del sensor IR a la configuració anterior del buit d’escaneig () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = BAIX; } void loop () {//////////////////////////////////////////////// /////////////////////////////////////// RPM Measurement currentstate = digitalRead (IR_IN); // Llegiu l’estat del sensor IR si (prevstate! = Currentstate) // Si hi ha un canvi a l’entrada {if (currentstate == BAIX) // Si l’entrada només canvia d’ALTA a BAIXA {durada = (micros () - prevmicros); // Diferència horària entre revolució en microsegons rpm = ((60000000 / durada) / 3); // rpm = (1 / milis de temps) * 1000 * 1000 * 60; prevmicros = micros (); // emmagatzema el temps per al càlcul de revolucions de nectes}} prevstate = currentstate; // emmagatzema aquestes dades d’escaneig (previ escaneig) per al proper escaneig /////////////////////////////////////// //////////////////////////////////////////////// Display LCD si ((millis () - lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Velocitat del motor"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

Pas 4: simulació mitjançant Proteus

Simulació mitjançant Proteus
Simulació mitjançant Proteus

Aquest projecte va funcionar perfectament quan vaig intentar simular-ho amb l'ajut de proteus.

En lloc d’utilitzar un sensor d’IR, he utilitzat un generador d’impulsos de corrent continu que simularà el pols d’IR de manera similar a la generada quan els raigs IR colpegen les pales de les hèlixs.

heu de fer canvis al programa en funció del sensor que utilitzeu

El sensor IR amb LM358 ha d'utilitzar aquesta ordre.

if (currentstate == HIGH) // Si l'entrada només canvia de BAIX a ALT

El sensor IR amb LM359 ha d'utilitzar aquesta ordre.

if (currentstate == LOW) // Si l'entrada només canvia de HIGH a LOW

Pas 5: execució del maquinari

Execució de maquinari
Execució de maquinari
Execució de maquinari
Execució de maquinari
Execució de maquinari
Execució de maquinari

Per fer esquemes, utilitzeu les imatges de simulació o consulteu els codis del programa i feu les connexions en conseqüència. Pengeu el codi del programa a Arduino i mesureu la RPM de qualsevol motor. Estigueu atents a la meva pròxima publicació i mireu el meu canal de YouTube.

Recomanat: