Innholdsfortegnelse:

Rotary Encoder -knapp: 6 trinn
Rotary Encoder -knapp: 6 trinn

Video: Rotary Encoder -knapp: 6 trinn

Video: Rotary Encoder -knapp: 6 trinn
Video: Как построить ПЛК Arduino с модулем часов реального времени и поворотным энкодером 2024, November
Anonim
Roterende encoder -knapp
Roterende encoder -knapp

Dette er en roterende fjernkontroll basert på en roterende encoder. Den har følgende funksjoner.

  • Batteridrevet med svært lavt strømforbruk når den er aktivert
  • Automatisk aktivering når kontrollen roteres
  • Automatisk søvn etter en periode med inaktivitet
  • Konfigurerbare handlinger når kontrollen endres

    • Enkel internettilgang med posisjon rapportert
    • MQTT -rapportering
    • Kontroll av Lighwaverf lampedimmer
  • Veldig liten størrelse
  • Lav kostnad
  • Programvareoppdatering via wifi
  • Administrasjon av tilgang til wifi -nettverk

Trinn 1: Komponenter og verktøy som trengs

Nødvendige komponenter og verktøy
Nødvendige komponenter og verktøy
Nødvendige komponenter og verktøy
Nødvendige komponenter og verktøy
Nødvendige komponenter og verktøy
Nødvendige komponenter og verktøy

Følgende komponenter er nødvendige

Etui - 3D -trykt kabinett tilgjengelig på

www.thingiverse.com/thing:3173779

  • ESP-12F ESP8266-modul
  • Rotary Encoder control (EC11) + Knott
  • Av/på skyvebryter
  • 3 -pinners stikkontakt
  • LIPO batteri 400mAh 802030
  • 3.3V spenningsrefulator (xc6203)
  • 220uF kondensator
  • Motstander 1M, 4K7 (2)
  • Schottky -diode 1N5819 (2)
  • P -kanal MOSFET (AO3401)
  • Emaljetråd (loddbar)
  • Koble til ledningen

Følgende verktøy er nødvendig

Fint punktloddejern

Trinn 2: Elektronikk

Elektronikk
Elektronikk

Elektronikken er basert på en ESP-12F-modul. En liten mengde støtteelektronikk brukes til å regulere batteriet og sørge for automatisk av- og påslåing.

Strømkontrollen er via EN-signalet på ESP-12F som må være høyt for at modulen skal starte. Dette holdes lavt av 1M -motstanden, men kan trekkes høyt av MOSFET -transistoren. 4u7 kondensatoren gir minst flere sekunders aktivering selv etter at MOSFET slås av.

MOSFET -transistoren slås først på av at en av de roterende kodebryterne blir jordet når den svinger. Den kan deretter fortsette med et GPIO -signal når ESP8266 -koden starter.

MOSFET slås av når GPIO -signalet slippes etter at inaktivitet i en tidsavbruddsperiode er oppdaget.

Trinn 3: Montering

montering
montering
montering
montering

Jeg utførte følgende monteringstrinn.

  • Skriv ut 3D -kabinett
  • Monter på/av -bryteren og 3 -pinners laderpunkt. Bruk harpiks til å fikse på plass og klipp ned interne tagger til minimum lengde
  • Fest bena på dreiekontrollen slik at de er i flukt med basen for å minimere høyden
  • Fest 4 ledninger til kontrollen. Den ene siden av trykknappbryteren er koblet til den sentrale kontakten på kodebryterne.
  • Fest encoderen i etui og fest den med monteringsmutteren. Legg til knott
  • Monter regulatoren på kondensatoren og fest ledninger fra den til strømstiftene på ESP-12F-modulen
  • Lodd andre elektroniske komponenter på baksiden av ESP-12F-modulen. Jeg brukte emaljert kobbertråd for å koble disse til. En kort trådstump ble brukt på EN -pinnen, da denne har flere komponenter festet til den.
  • Loddetinn på tilkoblingsledningen til av / på -bryteren
  • Loddetinn på batteriet fører til ladepunktet og matingen fra av / på -bryteren
  • Lodding på ledning fra av/på -bryter til regulatorinngang.
  • Fest de 4 ledningene fra koderen til kortet.

Merk at jeg brukte smd -komponenter hele tiden for å holde størrelsen så liten som mulig. Hvis du bruker større komponenter, må du sannsynligvis øke høyden på 3d -kabinettet. På samme måte hvis du bruker et annet batteri. Dimensjonene kan enkelt justeres i SCAD -filen.

Trinn 4: Programvare

Programvaren for dette prosjektet er tilgjengelig på

Det er et Arduino -basert prosjekt, så sett opp et esp8266 Arduino utviklingsmiljø. Det kan være lurt å sette passordene for WifiManager og programvareoppdatering i ino -filen til noe mer fornuftig.

Den bør kompileres i Arduino ESP8266 IDE og serieopplastes til modulen.

Første gangs bruk starter et tilgangspunkt som skal kobles til på en telefon eller nettbrett. Se kode for passord. Nettleseren på telefonen eller nettbrettet bør deretter brukes til å få tilgang til 192.168.4.1 som vil tillate valg av lokal wifi -ssid og passord. Dette trenger bare gjøres en gang, eller hvis wifi -nettverket endres. Fra da av vil modulen koble til lokalt wifi -nettverk om nødvendig.

Noen støttefiler bør også lastes opp. Disse er i datamappen til git. De kan lastes opp ved å gå til ip/upload. Når disse er lastet opp, kan ip/edit brukes til å laste opp videre på en enklere måte.

Trinn 5: Konfigurasjon

Konfigurasjonen finnes i filen rotaryEncoderConfig.txt

Dette har to grunnparametere (vertsnavn og inaktivitet timeout millisekunder pluss konfigurering av opptil 3 roterende kodere.

Selv om denne bygningen bare bruker 1 koder, tillater biblioteket som brukes opptil 3.

Hver encoder har en linje i konfigurasjonsfilen med et antall parametere.

  • pin1, pin2, knapp GPIO -pins
  • min verdi av encoder
  • maks verdi på encoder
  • startposisjonsverdi (siste verdi huskes også når den er aktivert.
  • type handling som skal utføres 0 = Ingen, 1 = web GET, 2 = UDP / Lightwave, 3 = MQTT
  • intervallet er minimumsvarighet i ms mellom handlingene
  • handlingsmal er en grunnleggende mal for handling
  • par1, par2, par3, par4, par5 er tilleggsparametere

Handlingsmalen har variabler som blir erstattet før bruk

  • $ p Rotary posisjon
  • $ d Roterende retning
  • $ e -kodernummer (0 er først)
  • $ l gjør en lysbølgefunksjon
  • $ x, $ y, $ z, $ u, $ v substitutt par1 - par5
  • $ t erstatningsteller
  • $ c erstatte komma

Trinn 6: Drift

Etter at wifi er konfigurert, aktiveres kontrollen ved å klikke den ett trinn begge veier. Dette endrer ikke posisjonen eller utløser en handling.

Fra da av vil enhver rotasjon utløse den konfigurerte handlingen. Minste handlingsintervall vil potensielt begrense handlingene som utføres når kontrollen roteres. For eksempel hvis minimumsintervallet er 2000mS, kan en rask rotasjon bare sende den første og siste endringen. Den siste posisjonen vil alltid utløse en handling, så hvis en dimmer blir kontrollert, vil verdien gjenspeile sluttposisjonen, selv om noen mellomtrinn går glipp av.

LightwaveRF -drift

Et eksempel vises i den medfølgende konfigurasjonsfilen. Den grunnleggende handlingen er UDP til Lightwaverf -lenken. Verts -ip og portnummer settes i par1 og par2. Rom/enhet -strengen settes i par3.

Koblingen må først kobles til lenken for at den skal kunne godta kommandoer fra mac -adressen til esp8266. For å gjøre dette, plasser en fil som heter initLink, txt inn i arkivsystemet og send deretter en kommando ved å rotere kontrollen ett trinn (etter aktivering). Dette sender en sammenkoblingskommando til lenken som må bekreftes ved å trykke på en knapp på lenken. InitLink -filen blir automatisk slettet.

Vedlikehold

Enheten kan settes i en vedlikeholdsmodus der den ikke slår seg av automatisk, ved å slå på med dreieknappen trykket inn. For å få den ut av denne modusen, er det bare å slå den av og på igjen.

Anbefalt: