Sommario:

Misurazione della velocità del motore con Arduino: 6 passaggi
Misurazione della velocità del motore con Arduino: 6 passaggi

Video: Misurazione della velocità del motore con Arduino: 6 passaggi

Video: Misurazione della velocità del motore con Arduino: 6 passaggi
Video: Arduino Lezione 23: motori cc, PWM e potenziometro 2024, Dicembre
Anonim
Misurazione della velocità del motore con Arduino
Misurazione della velocità del motore con Arduino
Misurazione della velocità del motore con Arduino
Misurazione della velocità del motore con Arduino
Misurazione della velocità del motore con Arduino
Misurazione della velocità del motore con Arduino

E' difficile misurare i giri del motore ???Non credo. Ecco una semplice soluzione.

Solo un sensore IR e Arduino nel tuo kit possono farlo.

In questo post fornirò un semplice tutorial che spiega come misurare gli RPM di qualsiasi motore utilizzando il sensore IR e Arduino UNO/nano

Forniture:

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

2. Sensore IR (Amazon)

3. Motore DC qualsiasi (Amazon)

4. LCD 16*2 (Amazon)

Strumenti utilizzati

1. Saldatore (Amazon)

2. Spelafili (Amazon)

Passaggio 1: Passaggio: 1 Garantire le condizioni di lavoro di sensori e dispositivi

Cos'è un sensore IR? Il sensore IR è un dispositivo elettronico che emette luce per rilevare un oggetto dell'ambiente circostante. Un sensore IR può misurare il calore di un oggetto e rilevarne il movimento. Di solito, nello spettro infrarosso, tutti gli oggetti irradiano una qualche forma di radiazione termica. Questi tipi di radiazioni sono invisibili ai nostri occhi, ma il sensore a infrarossi è in grado di rilevare queste radiazioni.

Che cos'è un motore CC? Un motore a corrente continua (CC) è un tipo di macchina elettrica che converte l'energia elettrica in energia meccanica. I motori CC prendono energia elettrica attraverso la corrente continua e convertono questa energia in rotazione meccanica.

I motori DC utilizzano campi magnetici che si verificano dalle correnti elettriche generate, che alimentano il movimento di un rotore fissato all'interno dell'albero di uscita. La coppia e la velocità in uscita dipendono sia dall'assorbimento elettrico che dal design del motore.

Cos'è Arduino?

Arduino è una piattaforma elettronica open source basata su hardware e software di facile utilizzo. Le schede Arduino sono in grado di leggere input - luce su un sensore, un dito su un pulsante o un messaggio Twitter - e trasformarlo in un output - attivando un motore, accendendo un LED, pubblicando qualcosa online. Puoi dire alla tua scheda cosa fare inviando una serie di istruzioni al microcontrollore sulla scheda. Per farlo si utilizza il linguaggio di programmazione Arduino (basato su Wiring) e il Software Arduino (IDE), basato su Processing.

Scarica ARDUINO IDE

Passaggio 2: come funziona?

Quindi qual è la logica dietro questo??

Funziona in modo molto simile all'encoder. Gli encoder sono piuttosto difficili da capire per i principianti. Tutto quello che devi sapere è che il sensore IR genera impulsi e stiamo scoprendo l'intervallo di tempo tra ogni impulso.

In questo caso il sensore IR invierà un impulso ad Arduino ogni volta che il suo raggio IR viene intercettato con le eliche dei motori. Normalmente usiamo eliche a due pale ma io ho usato eliche a tre pale come mostrato in figura. a seconda del numero di pale dell'elica è necessario modificare alcuni valori durante il calcolo dei giri.

supponiamo di avere un'elica che ha due pale. Ad ogni giro del motore la lama intercetterà due volte il raggio IR. Quindi il sensore IR produrrà impulsi ogni volta che le intercetta.

Ora dobbiamo scrivere un programma che possa misurare il numero di impulsi prodotti dal sensore IR in un determinato intervallo di tempo.

Ci sono più di un modo per risolvere un problema, ma dobbiamo scegliere quale è il migliore in questo codice ho misurato la durata tra gli interrupt (sensore IR)Ho usato le funzioni micros() per misurare la durata degli impulsi in microsecondi.

puoi usare questa formula per misurare RPMRPM = ((1/durata)*1000*1000*60)/lame

dove, durata - intervallo di tempo tra gli impulsi.

60 - secondi a minuti

1000 - Mill in sec

1000 - micro per macinare

pale - n. di ali nell'elica.

Display LCD - Arduino aggiorna i registri di comando e dati del display LCD. Che visualizza i caratteri ASCII sul display LCD.

Passaggio 3: programma il tuo Arduino usando Arduino IDE

#includere

LCD a cristalli liquidi (9, 8, 7, 6, 5, 4); const int IR_IN = 2; //sensore IR INPUT unsigned long prevmicros; // Per memorizzare l'ora senza segno di lunga durata; // Per memorizzare la differenza di orario unsigned long lcdrefresh; // Per memorizzare il tempo in cui lcd deve aggiornare int rpm; // Valore RPM booleano stato attuale; // Stato attuale della scansione dell'input IR boolean prevstate; // Stato del sensore IR nella scansione precedente void setup() { pinMode(IR_IN, INPUT); lcd.begin(16, 2); prevmicros = 0; prevstate = BASSO; } void loop() { /////////////////////////////////////////// ///////////////////////////////////// RPM Stato corrente di misurazione = digitalRead(IR_IN); // Legge lo stato del sensore IR if(prevstate != currentstate) // Se c'è un cambiamento nell'input { if(currentstate == LOW) // Se l'input cambia solo da HIGH a LOW { duration = (micros() - prevmicros); // Differenza di tempo tra i giri in microsecondi rpm = ((60000000/duration)/3); // rpm = (1/ time millis)*1000*1000*60; prevmicros = micros(); // memorizza il tempo per il calcolo del giro netto } } prevstate = currentstate; // memorizza questi dati di scansione (scansione precedente) per la scansione successiva //////////////////////////////////// /////////////////////////////////////////////// Display LCD se ((millis()-lcdrefresh) >= 100) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Velocità del motore"); lcd.setCursor(0, 1); lcd.print("RPM = "); lcd.print(rpm); lcdrefresh = millis(); } }

Passaggio 4: simulazione con Proteus

Simulazione con Proteus
Simulazione con Proteus

Questo progetto ha funzionato perfettamente quando ho provato a simularlo con l'aiuto di proteus.

Invece di usare il sensore IR ho usato un generatore di impulsi DC che simulerà l'impulso IR simile a quello generato quando i raggi IR colpiscono le pale delle eliche.

devi apportare modifiche al tuo programma a seconda del sensore che usi

Il sensore IR con LM358 deve utilizzare questo comando.

if(currentstate == HIGH) // Se l'input cambia solo da LOW a HIGH

Il sensore IR con LM359 deve utilizzare questo comando.

if(currentstate == LOW) // Se l'input cambia solo da HIGH a LOW

Passaggio 5: esecuzione dell'hardware

Esecuzione hardware
Esecuzione hardware
Esecuzione hardware
Esecuzione hardware
Esecuzione hardware
Esecuzione hardware

Per lo schema utilizzare le immagini di simulazione o fare riferimento ai codici del programma ed eseguire i collegamenti di conseguenza. Carica il codice del programma su Arduino e misura gli RPM di qualsiasi motore. Resta sintonizzato per il mio prossimo post e guarda il mio canale YouTube.

Consigliato: