-
Update: Timers and interrupts
08/28/2016 at 14:06 • 0 commentsThere is a new version of the library available that uses a timer instead of a non-blocking delay. This has no affect on the function of the library but makes the code simpler to understand and read.
I have also been working on using pin interrupts instead of checking the pins every 5ms. There is some code in the dev branch on github but it doesn't work yet. The code gives a memory error on pin interrupts.
-
Remote rotary encoder (part 2, software)
08/22/2016 at 18:52 • 0 commentsThe code of the remote uses the UDP protocol to send the number of rotations to the client. The python code of the server(send.py) should be edited so line 4 has the IP of the client and the code of the client (recv.py) should be edited so line 7 has the IP of the ESP8266 that is running the client code.
The client has a neopixel stick with 8 neopixels connected at pin 12. Here is a video of the remote dimming the neopixels:
-
Remote rotary encoder (part 1, hardware)
08/19/2016 at 19:24 • 0 commentsFor the remote rotary encoder I use a spare board that I designed for another project. The board has the size of a normal flash drive and on board are: a ESP8266-03, a 3.3v regulator and a capacitor. And there are a few connections broken out: 2x GPIO, UART, Bootloader button and a second pair of power connections.
This board is perfect for this project because every necessary connection is available. On board is a bootloader button but I connected another button to is so I could access it without opening the case. The rotary encoder used in this project is a simple breakout from china like this one and is easy to wire up. It has 5 pins:
- CLK --- Clock
- DT --- Data
- SW --- Switch (On my module I had to solder on a 10k resistor)
- VCC --- Power
- GND --- Ground
Wiring:
- GPIO 12 --- CLK
- GPIO 13 --- DT
- SW --- Not connected
- VCC --- 5v
- GND --- GND