Mündəricat:

Rotary Encoder Button: 6 Addım
Rotary Encoder Button: 6 Addım

Video: Rotary Encoder Button: 6 Addım

Video: Rotary Encoder Button: 6 Addım
Video: Interfacing Rotary Encoder With Arduino Uno Using ChatGPT Generated Arduino Code | Coders Cafe 2024, Noyabr
Anonim
Rotary Enkoder Düyməsi
Rotary Enkoder Düyməsi

Bu, fırlanan bir kodlayıcıya əsaslanan fırlanan uzaqdan idarəetmədir. Aşağıdakı xüsusiyyətlərə malikdir.

  • Batareya işə salındıqda çox aşağı cərəyan sərf edir
  • Nəzarət döndərildikdə avtomatik aktivləşdirmə
  • Bir müddət hərəkətsizlikdən sonra avtomatik yuxu
  • Nəzarət dəyişdirildikdə konfiqurasiya edilə bilən hərəkətlər

    • Vəzifə bildirilən sadə veb girişi
    • MQTT hesabatı
    • Lighwaverf lampa dimmerinin idarə edilməsi
  • Çox kiçik ölçü
  • Aşağı qiymət
  • Proqram təminatı wifi vasitəsilə
  • Wifi şəbəkəsinə girişin idarə edilməsi

Addım 1: Lazım olan komponentlər və alətlər

Lazım olan komponentlər və alətlər
Lazım olan komponentlər və alətlər
Lazım olan komponentlər və alətlər
Lazım olan komponentlər və alətlər
Lazım olan komponentlər və alətlər
Lazım olan komponentlər və alətlər

Aşağıdakı komponentlərə ehtiyac var

Çanta - 3D çaplı qutu burada mövcuddur

www.thingiverse.com/thing:3173779

  • ESP-12F ESP8266 modulu
  • Rotary Encoder Control (EC11) + Düymə
  • Açma/söndürmə sürüşmə açarı
  • 3 pinli yuva
  • LIPO batareya 400mAh 802030
  • 3.3V gərginlik refulatoru (xc6203)
  • 220 uF kondansatör
  • Rezistorlar 1M, 4K7 (2)
  • Schottky diod 1N5819 (2)
  • P kanalı MOSFET (AO3401)
  • Emaye tel (lehimli)
  • Tel bağlayın

Aşağıdakı vasitələrə ehtiyac var

İncə nöqtəli lehimləmə dəmiri

Addım 2: Elektronika

Elektronika
Elektronika

Elektronika ESP-12F moduluna əsaslanır. Batareyanı tənzimləmək və avtomatik açmaq və söndürmək üçün az miqdarda dəstək elektronikası istifadə olunur.

Güc nəzarəti, modulun işə düşməsi üçün yüksək olması lazım olan ESP-12F üzərindəki EN siqnalı vasitəsilə həyata keçirilir. Bu 1M rezistor tərəfindən aşağı səviyyədə saxlanılır, lakin MOSFET tranzistoru ilə yüksək çəkilə bilər. 4u7 kondansatörü, MOSFET söndürüldükdən sonra da minimum bir neçə saniyə aktivləşmə verir.

MOSFET tranzistoru, ilk növbədə, döndükdə torpaqlandığı dönən kod açarlarından biri tərəfindən açılır. ESP8266 kodu işə salındıqdan sonra GPIO siqnalı ilə davam etdirilə bilər.

MOSFET, bir fasilə müddəti üçün hərəkətsizlik aşkar edildikdən sonra GPIO siqnalı buraxıldıqda sönür.

Addım 3: Montaj

Məclis
Məclis
Məclis
Məclis

Aşağıdakı montaj addımlarını etdim.

  • 3d korpus çap edin
  • Açma/söndürmə düyməsini və 3 pinli şarj cihazını yerləşdirin. Yerində düzəltmək və daxili etiketləri minimum uzunluğa endirmək üçün qatrandan istifadə edin
  • Hündürlüyü minimuma endirmək üçün ayaqları altdan aşağıya doğru əyilmək üçün fırlanan idarəetmə vasitəsi ilə aşağı salın
  • Nəzarət etmək üçün 4 tel bağlayın. Düymə açarının bir tərəfi kod açarlarının mərkəzi konnektoruna bağlıdır.
  • Enkoderi çantaya bağlayın və montaj qozu ilə bərkidin. Düymə əlavə edin
  • Tənzimləyicini kondansatörə bağlayın və ondan ESP-12F modulundakı elektrik pinlərinə tellər bağlayın
  • ESP-12F modulunun arxa tərəfindəki digər elektron komponentləri lehimləyin. Bunları bağlamaq üçün emaye mis teldən istifadə etdim. EN pinində qısa bir tel çubuğu istifadə edilmişdir, çünki ona bir neçə komponent əlavə edilmişdir.
  • Bağlama telini açma / söndürmə düyməsinə bağlayın
  • Batareyadakı lehim, şarj nöqtəsinə və açma / söndürmə düyməsindən qidalanmaya səbəb olur
  • Açar/söndürmə düyməsindən tənzimləyici girişinə tel üzərində lehim.
  • Enkoderdən 4 teli lövhəyə bağlayın.

Ölçüsünü mümkün qədər kiçik saxlamaq üçün smd komponentlərindən istifadə etdim. Daha böyük komponentlərdən istifadə edirsinizsə, ehtimal ki, 3d korpusun hündürlüyünü artırmalısınız. Fərqli ölçüdə bir batareya istifadə edirsinizsə. Ölçülər SCAD faylında asanlıqla tənzimlənir.

Addım 4: Proqram təminatı

Bu layihə üçün proqram təminatı https://github.com/roberttidey/RotaryEncoderButton ünvanında mövcuddur.

Arduino əsaslı bir layihədir, buna görə esp8266 Arduino inkişaf mühiti qurun. WifiManager və ino faylında proqram yeniləməsi üçün parolları daha həssas bir şey olaraq təyin etmək istəyə bilərsiniz.

Arduino ESP8266 IDE -də tərtib olunmalı və seriyaya modula yüklənməlidir.

İlk dəfə istifadə edildikdə, bir telefon və ya tablet telefonuna bağlanmalı olan bir giriş nöqtəsi başlayacaq. Şifrə üçün koda baxın. Telefon və ya planşetdəki brauzer 192.168.4.1 daxil olmaq üçün istifadə olunmalıdır ki, bu da yerli wifi ssid və şifrənin seçilməsinə imkan verəcək. Bunu yalnız bir dəfə və ya wifi şəbəkəsi dəyişərsə etmək lazımdır. Lazım gələrsə, modul yerli wifi şəbəkəsinə qoşulacaq.

Bəzi dəstək faylları da yüklənməlidir. Bunlar git -in məlumat qovluğundadır. İp/yükləməyə daxil olaraq yüklənə bilərlər. Bunlar yükləndikdən sonra ip/redaktə daha asan şəkildə yükləmək üçün istifadə edilə bilər.

Addım 5: Konfiqurasiya

Konfiqurasiya rotaryEncoderConfig.txt sənədindədir

Bunun iki əsas parametri var (ana adı və hərəkətsizlik millisaniyələri üstəgəl 3 dönər kodlayıcının konfiqurasiyası.

Bu quruluş yalnız 1 kodlayıcıdan istifadə etsə də, istifadə olunan kitabxana 3 -ə qədər imkan verir.

Hər bir kodlayıcının konfiqurasiya faylında bir sıra parametrləri olan bir xətti var.

  • pin1, pin2, düymə GPIO pinləri
  • kodlayıcının minimum dəyəri
  • kodlayıcının maksimum dəyəri
  • başlanğıc mövqe dəyəri (aktivləşdirildikdə son dəyər də xatırlanır.
  • yerinə yetiriləcək hərəkət növü 0 = Yox, 1 = web GET, 2 = UDP / Lightwave, 3 = MQTT
  • interval, hərəkətlər arasındakı ms -dəki minimum müddətdir
  • hərəkət şablonu hərəkət üçün əsas şablondur
  • par1, par2, par3, par4, par5 əlavə parametrlərdir

Fəaliyyət şablonunda istifadə etməzdən əvvəl dəyişdirilən dəyişənlər var

  • $ p Rotary mövqeyi
  • $ d Dönmə istiqaməti
  • $ e kodlayıcı nömrəsi (0 əvvəldir)
  • $ l bir işıq dalğası funksiyası yaradır
  • $ x, $ y, $ z, $ u, $ v alt parite - par5
  • $ t əvəzedici sayğac
  • $ c əvəz vergül

Addım 6: Əməliyyat

Wifi qurulduqdan sonra hər iki tərəfə bir addım basaraq idarəetmə aktivləşdirilir. Bu mövqeyi dəyişdirmir və ya hərəkətə səbəb olmur.

Bundan sonra hər hansı bir fırlanma konfiqurasiya edilmiş hərəkəti tetikleyecektir. Minimum hərəkət intervalı, idarəetmə döndərilərkən edilən hərəkətləri məhdudlaşdıra bilər. Məsələn, minimum interval 2000 mS -dirsə, sürətli fırlanma yalnız ilk və son dəyişikliyi göndərə bilər. Son mövqe həmişə bir hərəkətə səbəb olacaq, buna görə bir dimmer idarə olunarsa, bəzi ara addımlar atılmasa da dəyəri son mövqeyi əks etdirir.

LightwaveRF əməliyyatı

Bir nümunə verilən konfiqurasiya faylında göstərilmişdir. Əsas hərəkət Lightwaverf bağlantısına UDP -dir. Ev sahibi ip və port nömrəsi par1 və par2 -ə qoyulur. Otaq/Cihaz simli par3 -ə qoyulur.

Esp8266 -nın mac ünvanından əmrləri qəbul etməsinə icazə vermək üçün keçid əvvəlcə bağlantı ilə əlaqələndirilməlidir. Bunu etmək üçün, initLink adlı bir faylı fayl sisteminə txt edin və sonra idarəetməni bir addım döndərərək (aktivləşdirdikdən sonra) bir əmr göndərin. Bu, bağlantıdakı bir düyməyə basaraq təsdiq edilməli olan bir əlaqələndirmə əmri göndərəcəkdir. İnitLink faylı avtomatik olaraq silinir.

Baxım

Cihaz, fırlanan idarəetmə düyməsini itələyərək açaraq avtomatik olaraq sönməyəcəyi bir təmir rejiminə keçirilə bilər. Bu rejimdən çıxmaq üçün yenidən söndürün və yenidən yandırın.

Tövsiyə: