INHOUDSOPGAWE:

Rotary Encoder -knoppie: 6 stappe
Rotary Encoder -knoppie: 6 stappe

Video: Rotary Encoder -knoppie: 6 stappe

Video: Rotary Encoder -knoppie: 6 stappe
Video: Interfacing Rotary Encoder With Arduino Uno Using ChatGPT Generated Arduino Code | Coders Cafe 2024, November
Anonim
Rotary Encoder -knoppie
Rotary Encoder -knoppie

Dit is 'n draaibare afstandsbediening gebaseer op 'n roterende encoder. Dit het die volgende funksies.

  • Battery werk met 'n baie lae stroomverbruik wanneer dit geaktiveer word
  • Outomatiese aktivering wanneer die beheer gedraai word
  • Outomatiese slaap na 'n tydperk van onaktiwiteit
  • Opstelbare aksies wanneer beheer verander word

    • Eenvoudige webtoegang met posisie gerapporteer
    • MQTT verslagdoening
    • Beheer van Lighwaverf lamp dimmer
  • Baie klein grootte
  • Lae koste
  • Sagteware -opdatering via wifi
  • Beheer van toegang tot wifi -netwerk

Stap 1: Komponente en gereedskap benodig

Benodig komponente en gereedskap
Benodig komponente en gereedskap
Benodig komponente en gereedskap
Benodig komponente en gereedskap
Benodig komponente en gereedskap
Benodig komponente en gereedskap

Die volgende komponente is nodig

Omhulsel - 3D -gedrukte omhulsel beskikbaar by

www.thingiverse.com/thing:3173779

  • ESP-12F ESP8266 module
  • Rotary Encoder control (EC11) + knop
  • Skakelaar aan/af
  • 3 -pen aansluiting
  • LIPO battery 400mAh 802030
  • 3.3V spanningsreflektor (xc6203)
  • 220 uF kapasitor
  • Weerstande 1M, 4K7 (2)
  • Schottky -diode 1N5819 (2)
  • P -kanaal MOSFET (AO3401)
  • Emalje draad (soldeerbaar)
  • Sluit draad aan

Die volgende gereedskap is nodig

Fynpunt soldeerbout

Stap 2: Elektronika

Elektronika
Elektronika

Die elektronika is gebaseer op 'n ESP-12F-module. 'N Klein hoeveelheid ondersteuningselektronika word gebruik om die battery te reguleer en om outomaties aan en af te skakel.

Die kragbeheer is via die EN-sein op die ESP-12F, wat hoog moet wees om die module aan te skakel. Dit word laag gehou deur die 1M -weerstand, maar kan deur die MOSFET -transistor hoog getrek word. Die 4u7 -kondensator gee 'n paar sekondes se aktivering, selfs nadat die MOSFET uitgeskakel is.

Die MOSFET -transistor word aanvanklik aangeskakel deur een van die roterende kode -skakelaars wat geaard word terwyl dit draai. Dit kan dan deur 'n GPIO -sein aangehou word terwyl die ESP8266 -kode begin.

Die MOSFET skakel af wanneer die GPIO -sein vrygestel word nadat onaktiwiteit vir 'n tydsduur opgespoor is.

Stap 3: Montering

Vergadering
Vergadering
Vergadering
Vergadering

Ek het die volgende monteerstappe gedoen.

  • Druk 3D -omhulsel af
  • Pas aan/uit -skakelaar en 3 -pins laaipunt. Gebruik hars om dit vas te maak en knip interne etikette tot die minimum lengte af
  • Maak die bene vas aan die draaiknop sodat hulle gelyk is aan die voet om die hoogte te verminder
  • Heg 4 drade aan om te beheer. Die een kant van die drukknopskakelaar is gekoppel aan die sentrale aansluiting van die kode skakelaars.
  • Bevestig die encoder in die omhulsel en maak dit vas met die monteermoer. Voeg knoppie by
  • Monteer die reguleerder op die kondensator en heg die drade daarvan aan die kragpenne op die ESP-12F-module
  • Soldeer ander elektroniese komponente aan die agterkant van die ESP-12F-module. Ek het emalje koperdraad gebruik om dit aan te sluit. 'N Kort draadjie is op die EN -pen gebruik, aangesien daar verskeie komponente daaraan geheg is.
  • Soldeer aan die aansluitdraad aan die aan / uit -skakelaar
  • Soldeersel op die battery lei na die laaipunt en voer vanaf die aan / uit -skakelaar
  • Soldeer aan die draad van die aan/af skakelaar na die toevoer van die reguleerder.
  • Heg die 4 draad van die encoder aan die bord.

Let wel: ek het deurgaans smd -komponente gebruik om die grootte so klein as moontlik te hou. As u groter komponente gebruik, moet u waarskynlik die hoogte van die 3D -omhulsel verhoog. Net so as u 'n ander battery gebruik. Die afmetings is maklik verstelbaar in die SCAD -lêer.

Stap 4: sagteware

Die sagteware vir hierdie projek is beskikbaar op

Dit is 'n Arduino -gebaseerde projek, dus stel 'n esp8266 Arduino -ontwikkelingsomgewing op. U kan die wagwoorde vir WifiManager en sagteware -opdatering in die ino -lêer op iets meer verstandig stel.

Dit moet saamgestel word in Arduino ESP8266 IDE en in die reeks opgelaai word na die module.

By die eerste gebruik begin 'n toegangspunt waarmee 'n telefoon of tablet gekoppel moet word. Sien kode vir wagwoord. Die blaaier op die telefoon of tablet moet dan gebruik word om toegang te verkry tot 192.168.4.1, wat die plaaslike wifi -ssid en wagwoord kan kies. Dit hoef slegs een keer gedoen te word of as die wifi -netwerk verander. Van dan af sal die module, indien nodig, aansluit by die plaaslike wifi -netwerk.

Sommige ondersteuningslêers moet ook opgelaai word. Dit is in die datagids van die git. Hulle kan opgelaai word deur toegang tot ip/upload te verkry. Sodra dit opgelaai is, kan ip/edit gebruik word om die oplaai makliker te maak.

Stap 5: Konfigurasie

Konfigurasie is vervat in die rotaryEncoderConfig.txt -lêer

Dit het twee basisparameters (gasheernaam en onaktiwiteit -time -out millisekondes plus die opstel van tot 3 roterende enkoders.

Alhoewel hierdie build slegs 1 encoder gebruik, bied die biblioteek wat gebruik word tot 3.

Elke encoder het 'n reël in die config -lêer met 'n aantal parameters.

  • pin1, pin2, knoppie GPIO -penne
  • min waarde van encoder
  • maksimum waarde van encoder
  • beginposisie waarde (laaste waarde word ook onthou wanneer dit geaktiveer is.
  • tipe aksie om uit te voer 0 = Geen, 1 = web GET, 2 = UDP / Lightwave, 3 = MQTT
  • interval is minimum duur in ms tussen aksies
  • aksiesjabloon is 'n basiese sjabloon vir aksie
  • par1, par2, par3, par4, par5 is addisionele parameters

Die aksiesjabloon bevat veranderlikes wat voor gebruik vervang word

  • $ p Rotary -posisie
  • $ d Rotary rigting
  • $ e encoder nommer (0 is eerste)
  • $ l maak 'n liggolffunksie
  • $ x, $ y, $ z, $ u, $ v plaasvervanger par1 - par5
  • $ t vervangingswisselaar
  • $ c plaasvervanger komma

Stap 6: Bediening

Nadat wifi ingestel is, word die beheer geaktiveer deur in beide rigtings daarop te klik. Dit verander nie die posisie of veroorsaak 'n aksie nie.

Van dan af sal enige rotasie die gekonfigureerde aksie aktiveer. Die minimum aksie -interval sal moontlik die aksies wat uitgevoer word, beperk terwyl die kontroleknop gedraai word. Byvoorbeeld, as die minimum interval 2000mS is, kan 'n vinnige rotasie slegs die eerste en laaste verandering stuur. Die laaste posisie sal altyd 'n aksie veroorsaak, so as 'n dimmer beheer word, sal die waarde daarvan die eindposisie weerspieël, selfs al word sommige tussenstappe gemis.

LightwaveRF -werking

'N Voorbeeld word in die meegeleverde konfigurasielêer getoon. Die basiese aksie is UDP na die Lightwaverf -skakel. Die gasheer -ip en poortnommer word in par1 en par2 geplaas. Die kamer/toestel string word in par3 geplaas.

Die skakel moet eers met die skakel gekoppel word sodat dit opdragte vanaf die mac -adres van die esp8266 kan aanvaar. Om dit te doen, plaas 'n lêer genaamd initLink, txt in die liasseringstelsel en stuur dan 'n opdrag deur die kontroleknop een stap te draai (na aktivering). Dit stuur 'n paringopdrag na die skakel wat erken moet word deur op 'n knoppie op die skakel te druk. Die initLink -lêer word outomaties uitgevee.

Onderhoud

Die toestel kan in 'n instandhoudingsmodus geplaas word, waar dit nie outomaties sal afskakel nie, deur aan te skakel terwyl die draaiknop ingedruk word. Om dit uit hierdie modus te kry, skakel dit net weer aan en weer aan.

Aanbeveel: