Sommario:

Pulsante encoder rotativo: 6 passaggi
Pulsante encoder rotativo: 6 passaggi

Video: Pulsante encoder rotativo: 6 passaggi

Video: Pulsante encoder rotativo: 6 passaggi
Video: Utilizzare un encoder rotativo con Arduino #89 2024, Novembre
Anonim
Pulsante codificatore rotante
Pulsante codificatore rotante

Questo è un telecomando rotante basato su un encoder rotativo. Ha le seguenti caratteristiche.

  • Funziona a batteria con un consumo di corrente molto basso quando attivato
  • Attivazione automatica quando il controllo viene ruotato
  • Sonno automatico dopo un periodo di inattività
  • Azioni configurabili quando si cambia il controllo

    • Accesso web semplice con posizione segnalata
    • Rapporti MQTT
    • Controllo del dimmer della lampada Lighwaverf
  • Dimensioni molto piccole
  • Basso costo
  • Aggiornamento software tramite wifi
  • Gestione dell'accesso alla rete wifi

Passaggio 1: componenti e strumenti necessari

Componenti e strumenti necessari
Componenti e strumenti necessari
Componenti e strumenti necessari
Componenti e strumenti necessari
Componenti e strumenti necessari
Componenti e strumenti necessari

Sono necessari i seguenti componenti

Custodia - Custodia stampata in 3D disponibile su

www.thingiverse.com/thing:3173779

  • Modulo ESP-12F ESP8266
  • Controllo Encoder rotativo (EC11) + Manopola
  • Interruttore a scorrimento On/Off
  • presa a 3 pin
  • Batteria LIPO 400mAh 802030
  • Riduttore di tensione 3,3V (xc6203)
  • Condensatore da 220uF
  • Resistori 1M, 4K7 (2)
  • Diodo Schottky 1N5819 (2)
  • MOSFET a canale P (AO3401)
  • Filo smaltato (saldabile)
  • Collegare il cavo

Sono necessari i seguenti strumenti

Saldatore a punta fine

Passaggio 2: elettronica

Elettronica
Elettronica

L'elettronica è basata su un modulo ESP-12F. Una piccola quantità di elettronica di supporto viene utilizzata per regolare la batteria e provvedere all'accensione e allo spegnimento automatico.

Il controllo dell'alimentazione avviene tramite il segnale EN sull'ESP-12F che deve essere alto affinché il modulo si accenda. Questo è mantenuto basso dal resistore da 1 M ma può essere tirato in alto dal transistor MOSFET. Il condensatore 4u7 fornisce un minimo di diversi secondi di attivazione anche dopo lo spegnimento del MOSFET.

Il transistor MOSFET viene inizialmente acceso da uno degli interruttori di codifica rotativi che viene messo a terra mentre gira. Può quindi essere mantenuto attivo da un segnale GPIO all'avvio del codice ESP8266.

Il MOSFET si spegne quando il segnale GPIO viene rilasciato dopo che viene rilevata l'inattività per un periodo di timeout.

Passaggio 3: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea

Ho eseguito i seguenti passaggi di montaggio.

  • Stampa 3d custodia
  • Montare l'interruttore on/off e il punto di ricarica a 3 pin. Utilizzare la resina per fissare in posizione e fissare i tag interni alla lunghezza minima
  • Abbassare le gambe sul controllo rotante in modo che siano a filo con la base per ridurre al minimo l'altezza
  • Collegare 4 fili al controllo. Un lato dell'interruttore a pulsante è collegato al connettore centrale degli interruttori di codifica.
  • Fissare l'encoder nella custodia e fissarlo con il suo dado di montaggio. Aggiungi manopola
  • Montare il regolatore sul condensatore e collegare i cavi da esso ai pin di alimentazione sul modulo ESP-12F
  • Saldare altri componenti elettronici sul retro del modulo ESP-12F. Ho usato del filo di rame smaltato per collegarli. Sul pin EN è stato utilizzato un corto spezzone di filo poiché ha diversi componenti collegati ad esso.
  • Saldare il cavo di collegamento all'interruttore di accensione/spegnimento
  • La saldatura sulla batteria porta al punto di ricarica e si alimenta dall'interruttore di accensione/spegnimento
  • Saldare il filo dall'interruttore on/off all'ingresso del regolatore.
  • Collegare i 4 fili dall'encoder alla scheda.

Nota che ho usato i componenti smd in tutto per mantenere le dimensioni il più piccole possibile. Se si utilizzano componenti più grandi, probabilmente sarà necessario aumentare l'altezza dell'involucro 3D. Allo stesso modo se si utilizza una batteria di dimensioni diverse. Le dimensioni sono facilmente regolabili nel file SCAD.

Passaggio 4: software

Il software per questo progetto è disponibile su

È un progetto basato su Arduino, quindi imposta un ambiente di sviluppo Arduino esp8266. Potresti voler impostare le password per WifiManager e l'aggiornamento del software nel file ino su qualcosa di più sensato.

Dovrebbe essere compilato nell'IDE Arduino ESP8266 e caricato in serie sul modulo.

Il primo utilizzo avvierà un punto di accesso a cui deve essere connesso su un telefono o tablet. Vedere il codice per la password. Il browser su telefono o tablet dovrebbe quindi essere utilizzato per accedere a 192.168.4.1 che consentirà la selezione di ssid e password del wifi locale. Questo deve essere fatto solo una volta o se la rete wifi cambia. Da quel momento in poi il modulo si collegherà alla rete wifi locale, se necessario.

Dovrebbero essere caricati anche alcuni file di supporto. Questi sono nella cartella dei dati di git. Possono essere caricati accedendo a ip/upload. Una volta che questi sono stati caricati, ip/edit può essere utilizzato per eseguire ulteriori caricamenti in modo più semplice.

Passaggio 5: configurazione

La configurazione è contenuta nel file rotaryEncoderConfig.txt

Questo ha due parametri di base (nome host e timeout di inattività in millisecondi più la configurazione di un massimo di 3 encoder rotativi.

Sebbene questa build utilizzi solo 1 codificatore, la libreria utilizzata ne consente fino a 3.

Ogni codificatore ha una riga nel file di configurazione con un numero di parametri.

  • pin1, pin2, pin GPIO del pulsante
  • valore minimo dell'encoder
  • valore massimo dell'encoder
  • valore della posizione iniziale (l'ultimo valore viene ricordato anche quando attivato.
  • tipo di azione da eseguire 0=Nessuno, 1=web GET, 2=UDP / Lightwave, 3=MQTT
  • l'intervallo è la durata minima in ms tra le azioni
  • il modello di azione è il modello di base per l'azione
  • par1, par2, par3, par4, par5 sono parametri aggiuntivi

Il modello di azione ha variabili che vengono sostituite prima dell'uso

  • $p Posizione Rotary
  • $d Direzione di rotazione
  • $e numero dell'encoder (0 è il primo)
  • $l crea una funzione onda luminosa
  • $x, $y, $z, $u, $v sostituiscono par1 - par5
  • $t sostituisce il contatore delle modifiche
  • $c sostituisce la virgola

Passaggio 6: operazione

Dopo aver impostato il wifi, il controllo viene attivato facendo clic su di esso un passaggio in entrambi i modi. Questo non cambia la posizione né attiva un'azione.

Da quel momento in poi qualsiasi rotazione attiverà l'azione configurata. L'intervallo minimo di azione limiterà potenzialmente le azioni eseguite durante la rotazione del controllo. Ad esempio, se l'intervallo minimo è 2000 mS, una rotazione rapida può inviare solo la prima e l'ultima modifica. L'ultima posizione attiverà sempre un'azione, quindi se viene controllato un dimmer, il suo valore rifletterà la posizione finale anche se vengono saltati alcuni passaggi intermedi.

Funzionamento a onde luminose RF

Un esempio è mostrato nel file di configurazione fornito. L'azione di base è UDP al collegamento Lightwaverf. L'ip host e il numero di porta vengono inseriti in par1 e par2. Le stringhe Stanza/Dispositivo vengono messe in par3.

Il collegamento deve prima essere associato al collegamento per consentirgli di accettare comandi dall'indirizzo mac di esp8266. Per fare ciò posizionare un file chiamato initLink, txt nel sistema di archiviazione e quindi inviare un comando ruotando il controllo di un passaggio (dopo l'attivazione). Questo invierà un comando di associazione al collegamento che deve essere riconosciuto premendo un pulsante sul collegamento. Il file initLink viene eliminato automaticamente.

Manutenzione

Il dispositivo può essere messo in una modalità di manutenzione in cui non si spegnerà automaticamente, accendendo con la manopola premuta. Per uscire da questa modalità è sufficiente spegnere e riaccendere.

Consigliato: