Contagiri Arduino con encoder da stampante. Tachimetro. Un esempio di funzionamento con una fotoresistenza e un display LCD HD44780 su Arduino


Un tachimetro è un dispositivo utilizzato per misurare il numero di giri di un oggetto in un dato intervallo di tempo. Tipicamente il valore è espresso in giri al minuto o giri al minuto. In precedenza, i tachimetri erano dispositivi puramente meccanici in cui la rotazione veniva trasmessa al contagiri attraverso una connessione meccanica (cavo o albero), il numero di giri al minuto veniva determinato utilizzando trasmissione ad ingranaggi ed è stato visualizzato su una scala circolare. Dall'avvento dell'elettronica moderna, i tachimetri sono cambiati molto. Questo articolo descrive un tachimetro digitale senza contatto acceso Basato su Arduino. La velocità del motore può anche essere controllata utilizzando un circuito simile. RPM e altre informazioni vengono visualizzate su un display LCD 16×2. Schema elettrico Di seguito è mostrato il tachimetro digitale basato su Arduino.

Schema elettrico


Sensore di giri
Un fototransistor a infrarossi e un LED a infrarossi costituiscono il sensore. Un fototransistor a infrarossi è un tipo di fototransistor che risponde solo alle onde infrarosse. Utilizzando un fototransistor a infrarossi è possibile evitare l'influenza di altre interferenze luminose ambiente. Il fototransistor e il LED a infrarossi sono disposti in parallelo. Il resistore R2 limita la corrente attraverso il diodo a infrarossi. Il nastro guida riflettente è incollato sull'oggetto rotante (albero, disco o ventola) in linea con il sensore. Ho utilizzato una ventola di raffreddamento con una tensione di alimentazione di 9V/100mA. Lo spazio tra il sensore e la striscia guida riflettente non deve superare 1 cm. Quando la striscia guida riflettente passa davanti al sensore, le onde infrarosse vengono riflesse verso il fototransistor. Il fototransistor conduce di più in un dato momento e, di conseguenza, la tensione su R3 (resistore da 68K) aumenta rapidamente. Il risultato sarà un segnale la cui forma è mostrata sotto all'emettitore del fototransistor. Il numero di giri al minuto può essere determinato calcolando il numero di impulsi ascendenti in un dato intervallo di tempo.


Calcolo dei giri al minuto
Arduino viene utilizzato per calcolare il valore RPM e visualizzare questo valore sul display LCD. L'emettitore del fototransistor è collegato al pin Interrupt 0 (pin digitale 2) di Arduino. L'interruzione di Arduino è configurata per essere attivata da un fronte di salita. Di conseguenza, viene elaborata un'interruzione per ciascun impulso ascendente nella forma d'onda dell'emettitore. Il numero di interruzioni ricevute in un dato momento viene calcolato incrementando la variabile, utilizzando il programma di servizio interruzioni. Il tempo trascorso durante un ciclo di calcolo viene determinato utilizzando la funzione millis(). La funzione millis() restituisce il numero di millisecondi trascorsi dall'accensione della scheda Arduino. Chiamando la funzione millis() prima e dopo il ciclo di calcolo e calcolando la loro differenza si ottiene il tempo trascorso durante il ciclo di calcolo. Il valore (numero di interruzioni/volte al millisecondo) * 60000 determinerà il numero di giri al minuto (RPM).

Controllo della velocità del motore
Nel circuito è incluso anche un dispositivo per il controllo della velocità del motore tramite un potenziometro. Il transistor Q1 viene utilizzato per controllare il motore. La sua base è collegata al pin PWM 9 di Arduino tramite il resistore limitatore di corrente R1. Il motore del potenziometro di controllo della velocità R4 è collegato al pin analogico A0 di Arduino. La tensione su questo pin viene convertita in un valore compreso tra 0 e 1023 utilizzando la funzione anlogRead. Questo valore viene quindi diviso per quattro per ottenere l'intervallo compreso tra 0 e 255. Successivamente dato valore viene scritto sul pin 9 PWM utilizzando la funzione anlogWrite. Il risultato è un'onda quadra sul pin 9 il cui duty cycle è proporzionale al valore scritto utilizzando la funzione analogWrite. Ad esempio, se il valore è 255, il ciclo di lavoro sarà del 100%, mentre se il valore è 127, il ciclo di lavoro sarà del 50% circa. D1 è un diodo a ricircolo e C1 è un condensatore di soppressione del rumore (disaccoppiatore). Il numero di giri e il ciclo di lavoro vengono visualizzati sullo schermo LCD utilizzando la libreria LiquidCrystal standard. Leggi questo articolo: Interfaccia display LCD per Arduino. Di seguito è mostrato il codice completo per il tachimetro digitale basato su Arduino.

Codice del programma
#includere LCD a cristalli liquidi (12,11,6,5,4,3); int pwm=9; vaso intero=A0; valore float=0; intero percentuale; giro mobile=0; int giri/min; int vecchio=0; tempo intero; void isr() //routine di servizio di interruzione ( rev++; ) void setup() ( lcd.begin(16,2); //inizializza LCD attachInterrupt(0,isr,RISING); //collegamento dell'interruzione ) void loop() (delay(1000); detachInterrupt(0); //stacca l'interrupt time=millis()-oldtime; //trova l'ora rpm=(rev/time)*60000; //calcola rpm oldtime=millis(); / /salva l'ora corrente rev=0; valore=analogRead(pot); //legge il valore POT del controllo di velocità=valore/4; //imposta la percentuale di velocità desiderata=(valore/255)*; 100; //trova il ciclo di lavoro % lcd.clear(); lcd.print("___TACHIMETRO___"); print(" RPM"); lcd.print(" ");
Note
La scheda Arduino può essere alimentata con un'alimentazione a 9V tramite una presa di corrente esterna.
La tensione di 5 V richiesta per alcuni componenti del circuito può essere fornita da una sorgente da 5 V sulla scheda Arduino.
La ventola utilizzata utilizza una tensione di 9V/100mA. Il transistor 2N2222 può sopportare solo correnti fino a 800 mA. Tienilo a mente quando scegli un carico.
Il display LCD utilizzato è JHD162A.
Il potenziometro R5 può essere utilizzato per regolare il contrasto del display LCD. Una volta connesso, sul display non verrà visualizzato nulla. Regolare R5 finché non appare un'immagine sul display. La tensione ottimale sul cursore del potenziometro R5 è compresa tra 0,4 e 1 V.
Il fototransistor a infrarossi e il diodo a infrarossi sono stati rimossi dal modulo di interruzione foto LTH-1550.
La superficie laterale del fototransistor deve essere coperta con nastro isolante.
La posizione del sensore è mostrata nella figura seguente.

Questo descrive un dispositivo digitale che misura la velocità di un'auto e la velocità dell'albero motore del suo motore. L'indicatore è un display LCD di tipo 1602A, è standard, basato sul controller HD44780.

La designazione 1602A in realtà significa che è su due righe di 16 caratteri ciascuna. L'indicatore è stato acquistato su Aliexpress, trovato cercando “HD44780” (prezzi da 81 rubli). Come già accennato, questo indicatore ha due linee. Quindi, nella riga superiore il dispositivo mostra la velocità dell'auto e nella riga inferiore la velocità del motore.

A differenza di molti computer di bordo, come "Orion-BK" e simili, nonché di dispositivi con indicatori LED a sette segmenti, questo display LCD, quando la retroilluminazione è attiva, fornisce un'immagine molto immagine chiara, perfettamente visibile sia alla luce che di notte al buio, cosa particolarmente importante per l'uso automobilistico.

Il circuito del dispositivo si basa su una scheda ARDUINO UNO già pronta, su cui si trova il microcontrollore ATMEGA328, nonché tutte le sue "tubazioni" necessarie per il suo funzionamento, compreso un programmatore USB e un alimentatore.

Il costo di ARDUINO UNO su Aliexpress parte da 200 rubli. Descrizione della scheda ARDUINO UNO, nonché software per esso e per la connessione a un personal computer è fornito dall'autore in L.1, quindi se qualcuno non sa cos'è ARDUINO e "con cosa si mangia", assicurati di leggere prima l'articolo in L.1.

Il dispositivo è collegato tramite alimentazione all'uscita dell'interruttore di accensione dell'auto e riceve segnali dai suoi sensori Hall, uno dei quali è un sensore di accensione e il secondo un sensore di velocità.

Diagramma schematico

Il dispositivo può funzionare solo su un'auto con motore a iniezione (le auto a carburatore non hanno il sensore di velocità e non tutte hanno il sensore di accensione). Lo schema del dispositivo è mostrato in Figura 1. In questa figura, la scheda ARDUINO UNO è mostrata schematicamente come una “vista dall'alto”.

Riso. 1. Diagramma schematico tachimetro e contagiri basati su Arduino.

Per abbinare le porte ai sensori, vengono utilizzate cascate sui transistor VT1 e VT2. Poiché l'alimentazione viene fornita al dispositivo dall'uscita dell'interruttore di accensione, funziona solo quando l'accensione è inserita. Il sensore di velocità, così come il sensore di accensione del veicolo, sono sorgenti di impulsi la cui frequenza dipende dalla rotazione delle parti meccaniche del veicolo.

Il sensore di accensione di un'auto con motore a benzina a quattro cilindri genera due impulsi per giro dell'albero motore. Se il motore non ha quattro cilindri, la frequenza di ripetizione degli impulsi sarà diversa.

I sensori di velocità sono diversi, ma per la maggior parte, soprattutto per le auto domestiche, forniscono 6000 impulsi per chilometro. Anche se ce ne sono alcuni che danno 2500 impulsi al chilometro, forse ce ne sono altri.

Programma

Il programma C++ con commenti dettagliati è riportato nella Tabella 1. Il funzionamento del programma si basa sulla misurazione del periodo degli impulsi provenienti dai sensori e sul successivo calcolo della velocità e della velocità di rotazione dell'albero motore.

Tabella 1. Codice sorgente programmi.


Per funzionare, utilizzare la funzione pulsaln, che misura in microsecondi la durata del fronte positivo o negativo dell'impulso in ingresso. Quindi, per scoprire il periodo, è necessario aggiungere la durata dei semicicli positivi e negativi.

dove T è il periodo in secondi e F è la velocità in km/h. Poiché il periodo è misurato in microsecondi, la formula effettiva è:

Se il sensore ha 2500 impulsi per km (giapponese), la formula sarà questa:

Pertanto, dato che il periodo è misurato in microsecondi:

Per misurare la velocità dell'albero motore, viene utilizzata la formula:

dove T è il periodo in secondi e F è la velocità di rotazione dell'albero motore in giri al minuto. Poiché il periodo è misurato in microsecondi, la formula effettiva è:

Successivamente i risultati vengono visualizzati nelle righe corrispondenti del display LCD. Le unità di misura sono indicate come “km/h” e “ob/tip” (se non ti piace puoi cambiarlo).

Se non c'è segnale di ingresso, ad esempio, l'accensione è inserita, ma il motore non viene avviato o guidato, nelle righe in cui non c'è segnale ci sarà la scritta "inf".

In linea di principio non è necessaria alcuna configurazione. Tuttavia, se non si sa quanti impulsi per chilometro fornisce il sensore di velocità di una determinata automobile, è necessario prima chiarirlo.

Oppure è possibile regolare sperimentalmente il numero, che è diviso in un periodo, controllando con il quadrante del tachimetro, il che è molto problematico, oppure impossibile se il tachimetro standard è difettoso (che potrebbe essere il motivo per la fabbricazione di questo dispositivo).

Ma è meglio scoprire i parametri del sensore di velocità. E poi calcola il numero diviso per il periodo nel programma. Indichiamo questo numero X e il numero di impulsi per chilometro N. Quindi X può essere calcolato utilizzando la seguente formula:

X = 3600000000 /N

Ad esempio, se il sensore fornisce, diciamo, 2500 impulsi per chilometro:

X= 3600000000 / 2500 = 1440000

Oppure, se il sensore fornisce 6000 impulsi per chilometro:

X= 3600000000 / 6000 = 600000

Insomma

In caso di malfunzionamento del dispositivo, potrebbe essere necessario ottimizzare la modalità operativa degli stadi di ingresso sui transistor VT1 e VT2, rispettivamente, selezionando le resistenze dei resistori R3 e R6, nonché le capacità dei condensatori C2 e S3.

Karavkin V. RK-12-16.

Letteratura:

1. Karavkin V. Lampeggiatore dell’albero di Natale su ARDUINO come rimedio alla paura dei microcontrollori.” RK-11-2016.

Un contagiri è uno strumento utile per contare gli RPM (giri al minuto) di una ruota o di qualsiasi cosa stia girando. Il modo più semplice per realizzare un contagiri è utilizzare un trasmettitore e un ricevitore IR. Quando la connessione tra loro si interrompe, sai che qualcosa sta girando e puoi utilizzare il codice per calcolare gli RPM in base alla frequenza dell'interruzione della comunicazione.

In questo articolo vedremo come utilizzare un trasmettitore e un ricevitore IR per realizzare un tachimetro utilizzando Arduino. Il risultato viene visualizzato su un display LCD 16x2.

L'obiettivo di questo progetto è creare un sistema con un input e un output. All'ingresso del dispositivo è presente un segnale che cambia dal livello alto (+5 V) a quello basso (+0 V) quando la comunicazione viene interrotta. In base a questo segnale, Arduino incrementerà il valore del contatore interno. Quindi essere eseguito lavorazioni aggiuntive e calcolo, e quando il trigger viene interrotto, il numero di giri calcolato verrà visualizzato sul display LCD.

Per la comunicazione utilizzeremo un raggio IR proveniente da un LED IR collegato tramite un resistore a bassa resistenza in modo che si illumini intensamente. Utilizzeremo un fototransistor come ricevitore, che “si chiude” in assenza di luce dal LED IR. Una ventola del computer verrà posizionata tra il trasmettitore IR e il ricevitore e accesa. Un ricevitore IR collegato tramite un circuito a transistor genererà interruzioni. Per l'output verrà utilizzato il risultato Display LCD dell'Arduino interfaccia in modo da poter visualizzare il valore RPM finale sul display LCD.

Elementi:

Consiglio di sviluppo

Resistenza trimmer 5 kOhm

Ponticelli

connettori SIP

2xtransistor NPN 2N2222

LED a infrarossi

Fototransistor

Resistenza da 10 ohm

Resistenza 100 kOhm

Resistenza 15 kOhm o 16 kOhm

Ventola del computer

Elenco dettagliato degli articoli

Tutti gli elementi utilizzati nel progetto sono elencati sopra, ma descriverò più in dettaglio le funzioni degli elementi principali.

Arduino UNO

Questo Scheda Arduino, che utilizzeremo per elaborare gli impulsi provenienti dall'interruzione del raggio IR, che segnalano la presenza di una ventola del computer tra il ricevitore e il sensore. L'Arduino utilizzerà questi impulsi insieme a un timer per calcolare il numero di giri della ventola.

Schermo LCD 16×2

Una volta che Arduino ha calcolato gli RPM, questo valore verrà visualizzato sul display in modo intuitivo.

Resistenza trimmer 5 kOhm

Questo trimmer verrà utilizzato per regolare il contrasto del display LCD 16x2. Fornisce una tensione analogica compresa tra 0 e +5V, consentendo di regolare la luminosità del display LCD.

LED a infrarossi e fototransistor

Il fototransistor si accende quando viene colpito da una potente luce IR. Pertanto, quando il LED IR è acceso, mantiene aperto il fototransistor, ma se il LED IR è coperto, ad esempio, da una ventola, il fototransistor è chiuso.

2N3904 e 2N3906

Questi transistor vengono utilizzati per convertire il livello del segnale per fornire impulsi di uscita dal fototransistor ad Arduino, in cui non sono presenti tensioni diverse da +0 e +5V.

Diagramma schematico


Nel circuito l'interfaccia di comunicazione con il display LCD è semplificata e prevede solo 2 linee di controllo e 4 linee dati.

Caratteristiche dello schema

Interfaccia LCD 16×2

2 pin di controllo e 4 per il trasferimento dei dati sono collegati da Arduino al display LCD. Questo è ciò che dice al display LCD cosa fare e quando farlo.

Circuito di interruzione del raggio IR

Il segnale di interruzione del raggio IR va al 2° digitale Perno dell'Arduino. Questo interrompe Arduino, permettendogli di contare gli impulsi e permettendo al tachimetro di ricevere i dati.

Libreria LCD Arduino

Per questo progetto utilizzeremo la libreria LCD Arduino. Fondamentalmente aggiorneremo semplicemente il valore RPM sulla seconda riga a quello nuovo.

Per prepararti, dai un'occhiata al codice seguente, che utilizza questa libreria per visualizzare "Hello, World!" sul display LCD. Nel contagiri utilizzeremo un codice simile, in particolare: "lcd.print(millis()/1000);".


Comprendere le funzioni di questa libreria LCD nel modo più dettagliato possibile prima di procedere. Non è troppo complicato ed è ben documentato sul sito web di Arduino.

Calcolo RPM utilizzando Arduino

Poiché stiamo per calcolare il numero di giri della ventola di un computer, dobbiamo capire che stiamo utilizzando l'interruzione del raggio IR per il calcolo. Questo è molto comodo, ma dobbiamo tenere presente che la ventola del computer ha 7 pale. Ciò significa che 7 interruzioni equivalgono a 1 giro.

Se stiamo monitorando gli interrupt, dobbiamo sapere che ogni 7 interrupt significa che è appena avvenuta 1 rotazione completa. Se teniamo conto del tempo necessario per completare una rivoluzione, possiamo facilmente calcolare gli RPM.

Tempo della prima rivoluzione = P * (μS/giro)

Giri/min = giri/min = 60.000.000 * (μS/min) * (1/P) = (60.000.000 / P) * (giri/min)

Per calcolare l'RPM utilizzeremo la formula sopra riportata. La formula è precisa e la precisione dipende da quanto bene Arduino riesce a tenere traccia del tempo tra le interruzioni e a contare il numero di giri completi.

Assemblaggio del circuito

Nella foto qui sotto potete vedere tutto dettagli necessari e ponticelli come nello schema.


Per prima cosa collegare +5V e le linee dati/controllo del display LCD. Poi display LCD, potenziometro del contrasto e LED di accensione.


L'interruttore del raggio IR è assemblato. Cerca di mantenere una certa distanza tra il LED IR e il fototransistor. Questa foto mostra la distanza tra il LED IR e il fototransistor dove posizionerò la ventola del computer.


Basta parlare di hardware! Iniziamo a creare il firmware/programma per vedere come funziona il dispositivo!

Parte software

Ci sono due parti principali del codice, che sono mostrate e dettagliate di seguito:

Ciclo di aggiornamento LCD di base

Aggiornamento dell'ora dell'interruzione

Il ciclo principale conta i giri e gli aggiornamenti del display LCD. Poiché il ciclo principale è un gigantesco ciclo while(1), sarà sempre in esecuzione, verranno conteggiati gli RPM e il display LCD verrà aggiornato più volte al secondo. La funzione nell'interrupt conta il tempo tra gli interrupt IR, quindi puoi contare gli RPM nel ciclo principale.

Ricorda che la ventola di un computer ha 7 pale, quindi questo contagiri è progettato per funzionare solo con quelle ventole. Se la ventola o un altro dispositivo produce solo 4 impulsi per giro, modificare il codice in "(time*4)".

Ecco un video dimostrativo di come funziona il contagiri.

Le due ventole funzionano a circa 3000 giri al minuto e 2600 giri al minuto, con un errore di circa +/-100 giri al minuto.

Recensione del contagiri su Arduino

La ventola genera impulsi di interruzione e in uscita vediamo RPM. Sebbene la precisione non sia del 100%, ma di circa il 95%, con il costo degli elementi di 10 dollari, ha senso costruire questo contagiri su Arduino.

Cosa fare adesso?

I sistemi basati sulla rottura del fascio sono utili non solo per le misurazioni RPM, ma anche come altri sensori. Ad esempio, vuoi sapere se una porta è aperta o chiusa. Forse vuoi sapere se qualcosa passava sotto il robot. Esistono molti usi per l'interruzione del raggio e il circuito utilizzato qui è così semplice che ci sono molti modi per migliorarlo e costruire altri fantastici dispositivi.

Conclusione

Nel complesso, considero questo progetto un successo... Ma è una questione di tempo ed esperienza.. In un modo o nell'altro, il sistema funziona come previsto e in modo abbastanza affidabile, e abbiamo ottenuto il risultato atteso. Spero che ti sia piaciuto leggere questo articolo e imparare come creare il tuo contagiri usando Arduino!

Articolo originale su Inglese(traduzione: Aleksandr Kasjanov per il sito cxem.net)

Il modulo sensore velocità motore è progettato principalmente per rilevare la velocità di rotazione dell'albero del motore elettrico. Questo modulo, insieme ad un microcontrollore, può determinare, oltre alla velocità, il numero di impulsi e la posizione dell'albero.



In genere, i sensori misurano una quantità registrando determinati eventi, quindi collegando il numero di eventi al periodo di tempo in cui si sono verificati.


Quindi in questo caso viene misurata la velocità: qui gli eventi significano impulsi ricevuti come risultato del funzionamento di un sensore ottico durante la rotazione di un disco con fessure. Il sensore è costituito da un LED e un fototransistor, che rileva la presenza o l'assenza di luce dal LED.


Schema


Il circuito presentato può essere utilizzato per inviare impulsi registrati a un microcontrollore. La base dello schema è sensore ottico OS25B10 (OC1) con LED e uscita fototransistor.


Il successivo è il doppio comparatore IC LM393 (IC1), configurato come un semplice trigger Schmitt. LED verde(LED1) indica la presenza di tensione applicata al circuito e il LED rosso (LED2) monitora l'uscita del modulo sensore velocità motore. Raccomandato tensione operativa modulo è compreso tra 4,5 e 5,5 V.




Si noti che il resistore R1 (180 ohm) viene utilizzato qui per limitare la corrente operativa del LED all'interno del sensore ottico OS25B10 (OC1). Se necessario, puoi modificarne il valore per il tuo prototipo. Puoi anche regolare il valore del resistore R2 (10 kOhm) per ottenere la tensione richiesta per il tuo circuito. Il resistore R7 (10K) è un resistore pull-up opzionale.


Disco codificatore


Un disco codificatore posizionato nello slot del sensore divide il sensore ottico in modo che vi sia un LED su un lato del disco e un fototransistor sull'altro lato. Se il percorso del raggio luminoso proveniente dal LED non è bloccato dal disco, il fototransistor passerà corrente, altrimenti verrà chiuso.

Sensore di velocità di rotazioneFC -03

Modulo sensore di velocità o movimento lineare. Tipo di modulo FC-03. È progettato per controllare i parametri meccanici delle parti mobili di vari meccanismi per scopi domestici ed educativi. Se installato su piattaforme di base di piccola robotica, consente di assemblare sistemi di controllo motorio e stabilire il controllo sul movimento di un oggetto.

Installazione del sensore di velocità di rotazione FC-03 sul telaio di un robot su ruote.

Caratteristiche

Alimentazione 3,3 - 5 V
Larghezza libera per disco scanalato 5 mm
Dimensioni modulo 38 x 14 x 7 mm
Foro di montaggio per vite da 3 mm

ContattiFC-03



I contatti sono segnati sulla lavagna.

VCC - alimentatore.
GND- filo comune, alimentazione negativa.
DO - uscita del segnale a impulsi.
AO - uscita diretta dal fotoaccoppiatore ITR9608.

Principio di funzionamento


L'elemento sensibile del modulo è una coppia ottica ITR9608. In una sporgenza dell'alloggiamento è presente un LED a infrarossi diretto verso un fototransistor situato nell'altra sporgenza. Se si inserisce una piastra opaca nello spazio tra le sporgenze, la radiazione IR del LED viene bloccata e il fototransistor viene chiuso. Tale componente viene talvolta chiamato fotointerruttore, ma rileva solo l'interruzione flusso luminoso. Come mostrato nello schema, dall'emettitore del transistor il segnale entra nel circuito del dispositivo.

La luce è bloccata da una piastra fissata alla parte mobile del meccanismo controllato. Utilizzando il sensore, il movimento verso le posizioni estreme del piano in movimento viene determinato quando l'elemento strutturale ad esso associato entra nel sensore. Misurano i parametri di rotazione di varie parti meccaniche. Ecco come vengono convertiti i parametri meccanici quantità elettriche e ulteriormente nei valori del programma.

Il sensore di velocità di rotazione FC-03 viene utilizzato per misurare la velocità di rotazione. Non può essere utilizzato per determinare la direzione di rotazione. Un disco con fori è installato sull'albero motore o sul cambio. Il fotoaccoppiatore del modulo ha uno slot largo 5 mm. Quando il disco ruota, come mostrato nell'animazione, nella fessura si alternano costantemente fori e sezioni della piastra. Il sensore converte l'alternanza degli elementi del disco in impulsi elettrici. L'elettronica del modulo rende il segnale del sensore adatto alla percezione digitale chip logici o microcontrollore.

SchemaFC-03




Il segnale da ITR9608 va all'ingresso del comparatore LM393, dalla sua uscita al pin D0 e l'indicatore LED si accende segnale digitale costituito da livelli logici alto e basso. Il segnale sull'uscita A0 proviene direttamente dall'ITR9608 senza conversione in livelli logici. L'uso del comparatore LM393 consente di ottenere fronti di impulso lisci e aumentare leggermente il carico di corrente dell'uscita del sensore, installare un LED nel circuito che indica lo stato dell'uscita.

Indicazione

Sulla scheda sono presenti 2 LED. Uno mostra l'attivazione del sensore di velocità di rotazione FC-03, l'altro mostra l'assenza di ostacoli nel sensore. Quando accendi il dispositivo per la prima volta, entrambi i LED dovrebbero accendersi. Quando una piastra metallica viene portata nello spazio libero dell'interruttore, un LED dovrebbe spegnersi.

Applicazione

Utilizzando il sensore, è possibile misurare non solo la velocità di rotazione, l'accelerazione, ma anche la distanza percorsa da un robot su ruote e registrare la vita utile del motore. È particolarmente importante controllare la velocità di rotazione delle ruote quando ciascuna ruota è azionata dal proprio motore. Per il movimento in linea retta, le velocità di rotazione di tutte le ruote devono essere uguali e, durante la svolta, obbedire all'algoritmo del sistema di controllo.


Mentre il disco ruota, un numero noto di fori attraversa la fessura del sensore in un giro. Contando il numero di fori, puoi determinare 1 giro della ruota o, ad esempio, 15,5 giri. Misurando il numero di giri nell'unità di tempo, otteniamo la frequenza di rotazione della ruota, e quindi la velocità dell'oggetto. Sulla base dei segnali provenienti dal sensore e avendo un valore esatto degli intervalli di tempo, il dispositivo calcola i parametri di movimento. L'uso di un microcontrollore è rilevante qui.
Il seguente programma Arduino consente di determinare il numero di giri al minuto e visualizza i risultati nella finestra del terminale seriale.

#define PIN_DO 2 // Imposta il pin utilizzato in Arduino
impulsi interi volatili senza segno;
giri/min flottante;
non firmato da molto tempoOld;
#define HOLES_DISC 15

Contatore vuoto()
{
impulsi++;
}

Configurazione nulla()
{
Serial.begin(9600);
modalità pin(PIN_DO, INPUT);
impulsi = 0;
tempoVecchio = 0;

}

ciclo vuoto()
{
if (millis() - timeOld >= 1000)
{
detachInterrupt(digitalPinToInterrupt(PIN_DO));
giri/min = (impulsi * 60) / (FORI_DISC);
Serial.println(rpm);

TimeOld = millis();
impulsi = 0;
attachInterrupt(digitalPinToInterrupt(PIN_DO), contatore, FALLING);