Woodworking Plans

🔥+ Woodworking Plans 07 Aug 2020 {Navy Blue wins again! This DIY furniture makeover is stunning, it's amazing what some paint can do to a thrift store dresser! This painted dresser was done in ...Feb 21, 2017 - Explore ChelseaLinman's board "Spray Paint Dresser" on Pinterest. See more ideas about Furniture makeover, Painted furniture and Diy ...|DIY Decorating; How To Spray Paint Furniture! in 5 easy steps. WOW. How ...|This roughened up the wood a bit and since I was using spray paint, ... How to Spray Paint Furniture - www.classyclutter.net ... DIY Art Work.|If you plan on spray painting more than one thing in your life, I highly, ... Are you a brush/roller furniture painter or do you prefer spray paint?|and they also offer it in a spray (which I haven't tried yet, but plan to!). I've heard great things about it. Oil-based primer is also great for furniture.|Using a landscape painting for inspiration, treat your old furniture ... Last, apply a metallic finish coat of spray paint in semigloss or gloss finish.|With our tips on how to paint furniture (particularly the ones about the ... surface of the bureau's drawer fronts and frame before spray-painting ...|I used Krylon champagne nouveau spray paint which I purchased at hobby lobby and bought some knobs ...|Using a landscape painting for inspiration, treat your old furniture ... Last, apply a metallic finish coat of spray paint in semigloss or gloss finish.|With our tips on how to paint furniture (particularly the ones about the ... surface of the bureau's drawer fronts and frame before spray-painting ...|The best way showing how to paint furniture so that the finish lasts for ... designs in what probably won't be the same kind of paint (either satin latex or latex enamel). ... I used white spray paint primer, paint and a top coat.|Sanding a furniture piece also helps it absorb paint better. What a fun DIY dresser makeover with spray paint and new hardware. I can'.|A quality dresser lasts for decades or longer, but its style may not. ... A stain-blocking primer prevents wood oils and wood stain from bleeding through to the paint. ... as an oil-rubbed bronze specialty spray paint over old black metal pulls. ... She's written numerous DIY articles for paint and decor companies, ...|Spray paint gives mismatched, outdated or beat-up furniture a fresh ... as-is once they're spray painted, give them a bit more style with patterns, designs or a ...|How to Spray Paint Furniture. Spray paint for furniture is available in a wide range of colors and textures that can cover many different materials, like wood, metal ...|What makes the paint economical is that one can performs like two cans, so it saves you time and money. The price also fits nicely into a DIY'ers ...|55 Trendy ideas for bedroom furniture makeover diy dressers ideas Bedroom Furniture ... A dresser makeover with spray paint – Furniture Makeover & Furniture ...|Paint colors may vary slightly from those shown. Instructions. Invest time in good prep work to get the best final product ...|Did you know you can spray paint furniture? ... means I'm teaming up with some amazing thrifty bloggers to show you how to DIY for Less.|I use Krud Kutter in a spray bottle. This is my favorite cleaner because it doesn't need to be rinsed off. Less prep, yay! furniture cleaner for DIY white painted ...|Can you spray paint furniture indoors? Without a doubt! See how I spray painted this dresser in the middle of my living room - with no fear of overspray.|Did you find an old painted dresser or ugly cabinet that you want to spruce up? There's a right ... How to Repaint Furniture | The Painted Dresser Project. by M.E. Gray ... Set your hardware aside if you plan on reusing it. Sadly ...|Take your furniture from drab to fab with just a few coats of spray paint. Here's how to spray-paint like a pro.|how to distress furniture with spray paint and a sander. DIY Tips & Tricks· Furniture. 2 Sep. One of the most asked questions I get from friends is how I get the ...|When we first read that we could paint wood furniture without ... we go: four easy DIY steps to painting a tall wood dresser with chalk-style paint.|This painting tools list is all you need to paint wood furniture for a professional look! ... Here, I am covering the essentials DIY painting tools for painting wood furniture – be it a brand new build ... Don't miss this post on the best gold spray paint!|Like most of the new and gently used furniture at Habitat for Humanity ReStore, ... pink stain for the wood parts of the furniture, I have a plan to update the hardware in ... I chose a metallic silver spray paint to quickly dust a few coats on the tray.|by Kevin - DIY Dork. Bring New Life to a Dresser With Chalk Spray Paint! ... and I'd love to invite you to check out all the other furniture makeovers, custom builds, ...|Looking for an easy DIY project? You won't believe these before-and-after spray paint photos! ... It made furniture look expensive!" If you're interested in learning ...|My new favorite furniture paint is Velvet Finishes. Velvet Finishes paint ... Spray a gloss topcoat or any other spray topcoat on in light coats.|How to spray paint wood furniture. Simple tutorial includes step by step photos. Easy DIY for a cheap craigslist find. This project can be done in ...|Prep, Problems, Best Furniture Paint, and the 5 STEPS to a Perfect Paint ... Painting furniture is one of the simplest DIY projects on the planet. ... “The spray paint I used left a matte line, even though the paint was high gloss”.|Disassembled, baby cribs are great for DIY furniture makeovers. See how creative ... Lend the legs shimmer power with a coat of metallic spray paint. Top with a ...|Today I'm sharing the basic steps for how to paint furniture. ... For this dresser, I used spray on Zinsser for the drawers for a super smooth finish – it goes on quickly and ... I love your blog for all the how-to's on DIY projects :).|Apply the perfect finish to your DIY projects with the most innovative craft paints for wood. Shop popular chalked paints, milk paints, stains & more.|Did you know that you can paint furniture, floors, cabinets, and even pottery? ... With the right formula and a little planning, a paint-focused makeover isn't ... of a wooden base; using spray paint on metal stools, for example, will ...|If you're looking to build your own dresser, we've compiled a list of 15 DIY dresser ... To begin, start stripping off any layers of paint until you get to the bare wood. ... is some sandpaper, mirrors, gunther mastic, chrome spray paint, and primer.|Do YOU paint the inside of your drawers? ... Sign up to get your dose of Inspiration and DIY Furniture Painting Tips! ... After painting a piece of furniture, if I open the drawer and the interior of the drawer takes away from my finished piece; I'll paint ... Can you just use rustoleum spray paint inside the drawers.|Spray painting drawer fronts can be tricky. I have a few tips that I have learned over the years. The drawers will glide in and out, without paint ...|Thank you for sharing helpful tips. I plan on spray painting a nightstand and to be honest i was not going to use primer. You changed my mind!|DIY Mirrored Dresser: I've been infatuated with these mirrored furniture pieces ... Spray Primer – I used Rustoleum Rusty Metal Primer; Spray Paint – I used ...|What you need: ~Spray paint (I used three different colors(gray, metallic silver, and black) 5 cans total) ~Lace (I used a quarter of a yard any color will work I used ...|The Difference between Laminate and Wood Veneer Furniture {and how ... Spray paint is oil-based too, so it's super durable and less likely to crack ... and I'm planning on painting it two more times with the white color I want.|Sure, you've probably Googled “how to paint/refinish furniture” only ... Step 4: Use a degreasing spray and Brillo pad to clean the entire piece.|With a bit of liquid sander/deglosser, spray primer, spray paint, sandpaper, and stain, you can turn virtually any piece of wood furniture into a beautiful ...|How to paint wooden furniture : a step-by-step tutorial. ... I saw a spray paint that included both paint and primer in it. Can I go ... Here is my plan: Sand now more completely, and paint one more coat of SW with floetrol added.|Don't get rid of that old wooden dresser just yet. Give it a second look, and this time try to see past its paint job or cracked coat of ... decor already in the room where you plan to put the piece once it's refinished. ... Interested in spray-painting?|I will use exterior grade latex paint for the furniture pieces I build. It adheres to the raw wood nicely and holds up well to the elements. Install a DIY ...|Use Chalk Spray Paint for a Nightstand Makeover ... Painting furniture just got a lot easier. ... Get ready for the easiest DIY project ever.|About · Free Furniture Plans · Free Printables · Videos · Q&A · Room Tours; Shop. Shop Our Furniture · Shop Our Favorite Finds · Shop By Room · Shanty Style.|I am always searching for cheap vintage furniture that can be rescued from ... It took me six cans of spray primer to coat the dresser and all the drawers, but it worked ... I mixed together a few cans of yellow paint that I had in my garage until I ... I was planning to give the dresser a layer of brown glaze so that it wouldn't be so ...|If you've been wondering exactly how to paint IKEA furniture but just can't find the ... usually their items are not so crazy expensive that you feel scared to try your hand at DIY'ing them. ... Cleaning your paint spray gun is also a massive pain.|DIY Blogger Diane Henkler of InMyOwnStyle.com tells Glidden® ... I paint a lot of furniture—tables, chairs, hutches, cabinets, dressers, and ...|Spray painting is much more time effective and my furniture ends up looking store bought. Sidenote: If I had a super nice paint sprayer…I would ...|I was planning to distress a little, so I painted two coats on the areas I didn't plan to distress (the previously painted white parts), and one coat on ...|Painting Furniture with Spray Paint. Spray paint is so quick and easy. It offers coverage without brush stroke and easy cleanup. Also, since spray ...|How to spray paint hardware! Sometimes you find old pieces and furniture and you love the hardware, but not the color, let me show you how to ...|It's sort of a gun metal looking finish. diy shabby chic furniture refurb krylon looking glass paint. Three coats of Krylon Looking Glass Spray Paint. While spraying ...|How to properly paint wood furniture? What steps are ... Then, lay the cloth on the area where you plan to paint. Make sure to give the primer ... You can use a spray paint, a paint sprayer, a brush or a roller. I prefer using foam ...|We love this spray paint organizer! It's an easy DIY project from the Instructables. spray paint organizer ... Style. Industrial Style Furniture Plans.|White is one of the most popular paint choices for painted furniture as it creates an ... You do not need to buy expensive drop cloths unless you plan on painting on the rug. Living in ... If you do use this brand, consider the spray paint primer…|Just goes to show that sometimes you have to change plans. ... Looking for the perfect paint color for a furniture revamp? ... difference between milk paint, spray paints, chalk paint, specialty furniture paints and traditional paints. ... Tutorial from Sarah M. Dorsey Designs for this piece here.

Woodworking Plans We're celebrating my daughter's birthday with a Hawaiian theme. Make these DIY hula grass skirts out of plastic table cloths for all your party ...

Adirondack Chair Plans Ebay
Following
instructablescircuitsProjectsCommunity
By tttapa in CircuitsArduino

for 1 last update 2020/08/07 108,136108,136

the 1 last update 2020/08/07 547547

Woodworking Planshow to Woodworking Plans for 179

Featured

Introduction: Custom Arduino MIDI Controller

UPDATE (03-04-2017):You can find an updated version of the code on my GitHub. All things hardware related in this Instructable are still valid, but the code has been updated. Things like TeeOnArdu no longer work with the newer versions of the Arduino IDE, so use the code from GitHub instead.

If you''s a sufficiently high demand (and if I can find the time), I''n''ve been playing around with both Arduino and DAWs (Digital Audio Workstation) for quite some time now, so when I needed a MIDI controller, I decided to build one myself, rather than buying one.

While browsing through the Google results, I came across Fuzzy-Wobble''s controllers were based on Teensy microcontrollers, and I only had a couple Arduino''s HIDUINO project. Using his custom firmware, you could let an Arduino show up as a USB MIDI device. More on this in just a second. After playing around with the Uno for some time, I felt kind of limited by the 6 analog inputs of the board. So I took my Arduino Leonardo with its 12 analog inputs, thinking that MIDI over USB should be possible, since it has USB capabilities built in the main chip? Well, not exactly ... A quick Google search told me that the Arduino software didn''software''s Instructable!

Woodworking Planshow to Woodworking Plans for Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Hardware Shopping

Woodworking Planshow to Woodworking Plans for There are just 5 things that you really need to build your own MIDI controller, everything else is optional.

Necessary:

  • Arduino or Teensy
  • Potentiometers
  • Potentiometer knobs
  • Wires
  • Enclosure
  • USB cable

I went for the Leonardo + headers, since it''retired''t been able to try this, so I can''s quite good, since Fuzzy-Wobble''s think about what kind of I/O we will need for our controller.

  • Digital I/O - for switches, buttons, LEDs, port expanders and multiplexers, ...
  • Digital inputs with interrupts - for rotary encoders (and easier for momentary buttons)
  • Analog inputs - for potentiometers and faders
  • Analog outputs - for LEDs (and maybe analog meters?)

Woodworking Planshow to Woodworking Plans for And what do these boards have to offer?

Uno:

  • 18 digital I/O*
  • 2 interrupt capable pins
  • 6 analog inputs
  • 6 analog outputs (PWM)

(*) Digital pins 0 and 1 can not be used as I/O, because they are needed for serial communication with the computer (through the onboard ATmega16U2).

for 1 last update 2020/08/07 Leonardo:Leonardo:

  • 20 digital I/O
  • 5 interrupt capable pins
  • 12 analog pins
  • 7 analog outputs (PWM)

Well, the Uno is no match for the Leonardo, you''t need lots of I/O. Secondly, the USB to Serial chip on the Uno is the same as on the Mega 2560, and this one obviously has much more I/O. I haven''ll need a Leonardo or Micro (or an Uno with analog multiplexers or a Mega 2560). Well, that''ll be covering the Leonardo and the Uno, but feel free to try some other boards, and let me know in the comments, or with your own Instructable. I''t have to install TeeOnArdu.

So, in conclusion: You can use this Instructable with an Arduino Uno, Mega, Mega the 1 last update 2020/08/07 2560, Due, Leonardo, Micro, Lilypad USB, or with a Teensy.So, in conclusion: You can use this Instructable with an Arduino Uno, Mega, Mega 2560, Due, Leonardo, Micro, Lilypad USB, or with a Teensy.

If you''re using a Leonardo, Micro, Lillypad USB or Teensy, use the instructions for the Leonardo

Step 2: Design Layout

The advantage of building it yourself is not being limited to one design. You can create your own crazy controller that fits your needs, and you can even add in extra knobs later on.

I work a lot with Tracktion 6. It''t screw anything in just yet, you first have to solder wires to every component.

Step 4: Connections

Were going to hook up our potentiometers and faders as simple voltage dividers. You can read more on this Wikipedia page if you''ll get a voltage between 0V and 5V on your output. This voltage can be read by the Arduino''t really matter where you put the resistor, as long as the polarity of the LED is correct.

! Always use a resistor in series with your LEDs, otherwise, there are only two ways this can go: 1. you fry your LED; 2. you fry your Arduino !

Mount everything

Woodworking Planshow to Woodworking Plans for Using the appropriate nuts and screws, mount everything in your enclosure. If an LED doesn''s ground. You could also link them in a chain.

  • Connect all +5V''s +5V. You could also link them in a chain.
  • Connect all other wires to the appropriate Arduino pin. Potentiometers and faders go to analog inputs**, and switches go to digital inputs. LEDs go to a digital output.
  • (**) On the Leonardo, analog inputs A6-A11 are located on the digital header. They are marked with the 1 last update 2020/08/07 a white dot, and their numbers are written on the back of the board.(**) On the Leonardo, analog inputs A6-A11 are located on the digital header. They are marked with a white dot, and their numbers are written on the back of the board.

    Step 6: Code Time! Well, Almost ...

    Arduino Uno

    Woodworking Planshow to Woodworking Plans for For the Uno, you''s custom firmware. This is a HEX file you burn to the chip using Atmel''t change your program while running the MIDI firmware. That''ll have to upload the sketch before we can flash the ATmega16U2, so I''t work with the latest versions of the Arduino IDE, that''s how to install all the necessary software to get MIDI working on the Leonardo (or Micro):

    1. Download the official Arduino IDE from their site. I tried both version 1.6.7 and 1.6.8.
    2. Unzip and/or install the IDE and run it.
    3. Go to your /Arduino/ folder and create a folder named hardware.
      (Where is your Documents folder if you''Executables''other files''Linux udev rules''all files''Downloads''Properties''Permissions''Allow executing file as program''next''arduino-1.0.6''Executables''next''next''MIDI''all''next''Install''s ''-software from GitHub. On the right hand side, there is a button ''.
    4. Extract the ZIP file in your Downloads folder, and open the files in your file browser.
    5. There should be a folder called ''. Double-click it and copy the directory ''.
    6. Go to your /home/Executables/arduino-1.0.6/hardware folder, and past the TeeOnArdu folder here.
    7. In the terminal (CTRL+ALT+T), go to the Arduino directory:
      cd Executables/arduino-1.0.6/
    8. Run the Arduino software:
      ./arduino
    9. Inside the Arduino software, under '', select '' as your board.
    10. Set '' to ''.
    11. Now you''t use the Adafruit download links, but use the links in steps 1, 4 and 16 (mentioned above).

      Teensy

      Teensies have their own libraries, so it is sufficient to just install the Arduino IDE and the Teensyduino add-on:

      1. Download the official Arduino IDE from their site. I recommend version 1.6.9.
      2. Unzip and/or install the IDE.
      3. If you are on Linux, execute the following command in a terminal:
        sudo usermod -a -G dialout $USER

        to add your user to the dialout group to gain access to the serial ports.

      4. Go to the Teensyduino download page, download it, and carefully follow the instructions.

      5. Open the Arduino IDE, go to Tools>Board, and the 1 last update 2020/08/07 select the right Teensy.Open the Arduino IDE, go to Tools>Board, and select the right Teensy.

      6. Woodworking Planshow to Woodworking Plans for Go to Tools>USB Type and select MIDI.

      MIDI messages

      Woodworking Planshow to Woodworking Plans for Before we start programming, let''t changed.

      A MIDI message consists of 3 bytes, and has 4 parts:

      1. Status Byte: in our case, this will consist of a '' and a ''.
      2. Data Byte 1: a 7-bit number.
      3. Data Byte 2: another 7-bit number.

      For our MIDI controller, we''ll need a second channel. Data 1 will be the note number, the address if you will, of the button, and Data 2 (the velocity, how hard you strike the note) doesn''ll just make it 127 (100%).

      General notation noteOn: 1001 cccc 0nnnnnnn 0vvvvvvv
      where cccc is the channel, nnnnnnn is the number of the button, and vvvvvvv the velocity
      For example: pressing button 15 (0b00001111) on channel 1 would send this message: 1001 0000 00001111 01111111

      General notation noteOff: 1000 cccc 0nnnnnnn 0vvvvvvv
      where cccc is the channel, nnnnnnn is the number of the button, and vvvvvvv the velocity
      For example: releasing button 15 (0b00001111) on channel 1 would send this message: 1000 0000 00001111 01111111


      ControlChange messages are used for controllers that can have a wide range of values, like a potentiometer, or a fader. This value has 7 bits, so it has a range from 0 to 127 (0% - 100%). Here is a list of all controllers and their corresponding numbers.

      General notation ControlChange: 1011 cccc 0nnnnnnn 0vvvvvvv
      where cccc is the channel, nnnnnnn is the number of the controller, and vvvvvvv the value of the controller.
      For example: turning the volume (controller number 7 or 0b00000111) of channel 8 (0b1000) to the maximum (127 or 0b01111111) will send this message: 1011 1000 00000111 01111111

      More information about the MIDI protocol can be found on midi.org, in this PDF, or on Wikipedia.

    Step 7: The Code - Analog

    The Uno

    I added a lot of comments to this piece of code. Try to read them to understand the code, and adapt it to your own needs.

    I attached a .ZIP file with the code.

    Extract it and open it with the Arduino IDE. Connect your Arduino via USB. Select the right board and port from the '' menu, and hit CTRL+U to compile your code and upload for 1 last update 2020/08/07 it to the board.
    Then hit CTRL+SHIFT+M to open the serial monitor. Select a baud rate of 115200 in the drop-down menu in the right corner. Wait for the LED on pin 13 to light up. You should see 6 different messages. When you turn one of the potentiometers, you should see more messages.Extract it and open it with the Arduino IDE. Connect your Arduino via USB. Select the right board and port from the '' menu, and hit CTRL+U to compile your code and upload it to the board.
    Then hit CTRL+SHIFT+M to open the serial monitor. Select a baud rate of 115200 in the drop-down menu in the right corner. Wait for the LED on pin 13 to light up. You should see 6 different messages. When you turn one of the potentiometers, you should see more messages.

    If this works, you can proceed to the next step.

    The Leonardo

    I added a lot of comments to this piece of code. Try to read them to understand the code, and adapt it to your own needs.

    I attached a .ZIP file with the code.

    Extract it and open it with the Arduino IDE. Connect your Arduino via USB. Make sure your board is set to '', and '' is set to ''. Select the right port from the '' menu, and hit CTRL+U to compile your code and upload it to the board. If the upload fails, try uploading again, while pressing the reset button on the Arduino when uploading.

    When the uploading is complete, unplug the USB cable, and plug it back in. Your computer should now recognize your Leonardo as a MIDI device.

    Step 8: The Code - Analog: Testing

    The Uno

    The code for the ATmega328 is now uploaded, but the ATmega16U2 is still just a serial - USB converter. Now we need to program it to be a serial - MIDI-over-USB converter.

    This is how you do for 1 last update 2020/08/07 it on Windows (Vista - 10) :This is how you do it on Windows (Vista - 10) :

    1. Download the latest Java Runtime Environment from the Java site.
    2. Run the java installer.
    3. Click ''.
    4. Close the installer when finished.
    5. Download '' from the Atmel site.
    6. Run the installer.
    7. Click ''.
    8. Accept the terms in the License agreement and click ''.
    9. Click ''.
    10. Click ''.
    11. Click '' when completed.
    12. Click ''.
    13. Now, connect the Arduino to your computer, and use a small screwdriver to connect the reset pin of the second ICSP header to the ground. This is the 6-pin ICSP header close to the USB port. (see image)
      The ATmega16U2 is now in DFU mode (Device Firmware Update). Read more here.
    14. Go to the Control Panel in Windows. Click ''.
    15. Under '', click ''.
    16. In Device Manager, there is a category ''. In this category, there should be something like '' or ''. Right click the device, and select ''.
    17. Choose ''
    18. Then hit '' and browse to C:\Program Files\Atmel\Flip 3.4.7\usb in the new window.
    19. Make sure '' is checked, then click ''.
    20. In the Windows Security window that pops up, click ''.
    21. You should get a notification that Windows has successfully updated the driver software for ''.
    22. Download the Arduino firmware from the Arduino GitHub page by clicking '' and then CTRL+S to save.
    23. Change the location to your Downloads folder, delete the .txt extension, and choose '' (keep the .hex extension). Then hit ''.
    24. Download Dimitri Diakopoulos''RAW''All files''ATmega16U2''OK''Open''arduino_midi.hex''Run''Sound, video and game controllers''MIDI''ll be showing it on Mixxx, a free, open source, all platform digital DJ software.

      1. Turn all knobs and faders to zero.
      2. Connect your Arduino to your computer if you haven''MIDI controller''MIDI Learning Wizard''OK''Begin''Next''t want to assign the shown control, just click ''.
      3. When you''OK''t worry, we can easily adapt the code to support the switches and buttons too.
        Now we''re on Linux or Mac.)

        If you check Device Manager again, the Arduino should show up under ''.

        The new sketch is in the attached .ZIP file. Extract it, and open it in the Arduino IDE.

        Try to read the comments, and adapt it to your own needs.

        Woodworking Planshow to Woodworking Plans for After you have uploaded the sketch, you''re ready to go!

        The Leonardo

        You don''Upload''re ready to go!

    Step 10: Hey, What About Rotary Encoders?

    About rotary encoders

    Potentiometers and faders are great for controlling volumes and frequencies, but sometimes you find yourself in need of something that can turn forever, so you can scroll through your playlists, or maybe you''s when rotary encoders come in.

    They may look like a potentiometer, but there are 3 major differences:

    1. A rotary encoder can turn forever, while a potentiometer has a fixed range (usually around 270°).
    2. A rotary encoder sends digital signals, while a potentiometer '' analog voltages.
    3. A rotary encoder sends relative messages, while a potentiometer reports its absolute angle.

    Decoding a rotary encoder

    Before we can use them, we first have to understand how they work. There''ll try to give a quick explanation.

    A rotary encoder basically consists of two switches. When it''90° out of phase''quadrature outputs''quarter''s assume we turn the encoder clockwise (CW on the image). Every time the A signal rises, (red vertical line) the B signal is high, and every time the A signal falls (green line), the B signal is low. Now imagine turning it counterclockwise (CCW). Now every time the A signal rises (green line), the B signal is low, and every time the A signal falls (red line), the B signal is high. So by checking the B value when the A value changes, we know what direction the shaft is going in. This is also true for the changes of the B channel. By counting the pulses, we know how much we rotate it.

    Because checking pin A and B in the loop of our sketch would be too slow if there are other things running as well, and we don''s site, and chapter 11 in the Atmel Datasheet (Uno or Leonardo).

    Interrupts are, simply put, parts of your code that only execute when something is triggered, like a pin change. The main loop is interrupted, and the ISR or Interrupt Service Routine is called. It''s impossible to explain in one Instructable. Anyway, if we attach an interrupt to the pins of the rotary encoder, we can make sure we don''t be worrying to much about interrupts, since we''s encoder library, which handles this for us.

    There are two kinds of rotary encoders: mechanical, and optical. The first image is a mechanical one: there''s an example in image 3 (source: Kawasaki Heavy Industries). It''s one problem with mechanical encoders, and that is due to the fact that the connection is never perfect. You can have small spikes when connecting and disconnecting, and the Arduino will also detect those, and give us wrong readings. A simple solution is to add two 100nF capacitors between our A and B outputs and the ground.

    Step 11: Connecting the Rotary Encoders

    Soldering

    Whoa easy, put that soldering iron down for just now, first check the datasheet of your specific encoder, to see what''t have the datasheet, try connection it to two LEDs (+resistor ! ). Connect the anodes of the LEDs to the +5V of an Arduino or other power supply, connect their cathodes via two resistors to two of the pins of the encoder, and connect the third pin to the ground of the Arduino. Now slowly turn the encoder. LED 1 should light up first, then LED2, then LED1 should go out, and finally LED2 should go out. The order of the LEDs lighting up should be like this: (â—‹ â—‹) (â—Ź â—‹) (â—Ź â—Ź) (â—‹ â—Ź) (â—‹ â—‹).If this is the case, the common, or C pin of the encoder is the one you connected to the ground. If this is not the case, and the LEDs go on or off simultaneously, swap two wires and try again. (Don''t matter.

    Woodworking Planshow to Woodworking Plans for Soldering BIS

    Okay, go ahead, you can solder the wires to it. Use a black one for the common pin and two red ones to the A and B pins. It''s only 2 and 3. This information can be found on the attachInterrupt reference page.
    If you really need more encoders, you could use one interrupt pin, and one normal pin per encoder, or even in extreme cases two normal pins, but this is not at all recommended, it will give very poor results.
    There is no need to add external pull-up resistors, you can use the internal ones, even when using interrupts.

    Step 12: Programming With the Encoders

    Encoder libraries

    The easiest way to use encoders in your program is to use an encoder library. I used the PJRC encoder library.

    To use it in your sketch, copy the encoder folder into your Arduino '' folder, restart the Arduino IDE, and include the header file in your sketch, by adding this line at the top of your file:

    #include <Encoder.h>

    More about libraries on the Arduino site.

    Then simply create a member of the encoder class:
    Encoder name(pin_1, pin_2); where name is the name you want to give to the encoder, and pin_1 & pin_2 are the pins where you connect the encoder.

    That''s last value was 96, and you turn the encoder clockwise for 1 step, the new value will be 97 obviously, but the Arduino shouldn''+1''t fast enough to refresh the read function 4 times, it will discover that the read function has changed more than 1 step since last time. For example, the read function''+4''t really send negative numbers over MIDI. There are three ways to send the sign of a number.

    1. Add 64. This is probably the simplest one. This basically maps 0 to 64 (which is 128/2). For example, if I want to send -1, I add 64, = 63 and I send it. If I want to send +1, I also add 64, = 65. If I just send 64, the computer will do nothing, because it knows it''s 0, the number defined by the other bits is positive, when it''s 0 based). For example: +4 would be 0b00000100, and -4 would be 0b01000100.
    2. A third way is to define +1 as 0, and -1 as 127. We can continue this: +2 = 1, and -2 = 126, etc. until +63 = 63, and -63 = 65.

    So, if your encoder does strange things in your particular software, like jumping really far if you only rotate one step, you can change this in your program.

    However, maybe you don''t get discouraged by the seemingly long install procedure, if you follow the instructions, you should be fine. Once everything is set up, it is really easy to use!

    The MIDI_controller library itself is installed like any other Arduino library.

    These are the instructions for Arduino IDE 1.6.x:

    1. Download the library included at the bottom of this step.
    2. In the '' menu click '' and then ''.
    3. Browse to your Downloads directory, double-click it, and in the right-hand column, select MIDI_controller.zip.
    4. Click ''.
    5. Restart the IDE to load the keywords (so you get the orange color for functions etc.)

    That''potentiometer''t use those functions outside of the setup or the loop.

    For explanation of what for 1 last update 2020/08/07 the functions do and what they are made for, read following reference.For explanation of what the functions do and what they are made for, read following reference.

    Analog

    The analog class is meant for analog inputs, like potentiometers and faders (or analog sensors that output a value between 0 and 5V). An invalid pin number will result in the LED on pin 13 blinking at 1Hz.

    Create member

    • Analog (byte pin, byte controller, byte channel, byte resolution);

    Woodworking Planshow to Woodworking Plans for pin is the analog pin to read from. It''s all 7-bit numbers. (MIDI uses 7-bit numbers for sending values) Use a value lower than 128, like 64, if there''t matter for a normal button, as long as it''pulse''mute''solo''t matter for a normal switch, as long as it''t called again, after sending the noteOn message. If you just put this in your loop, however, you should be fine.)

    • bank(byte pin, byte note, byte channel);

    This function enables you to use one switch (together with a bank switch) for multiple controls. If the bank switch is in the OFF position, the note and channel will be those that were defined during member creation, if the bank switch is in the ON position, the note and channel will be those that were entered as arguments of this function.

    pin is the digital pin with the switch connected. The internal pull-up resistor will be enabled.

    note is the note to use when the switch is on.

    channel is the channel to use when the switch is on.

    • detachBank();

    Woodworking Planshow to Woodworking Plans for This function disables the bank functionality that was set up with the function bank. The note and channel will be those that were defined during member creation again, regardless of the state of the switch. The pin of the switch defined in the bank function will be set as an input without pull-up resistor again.

    Constants

    • None.

    Examples

    • DigitalLatch_example
    • DigitalLatch_bank_example


    RotaryEncoder

    This library is meant to use with a quadrature encoder. It''s encoder library. It sends relative messages. The way negative values are handled can be set. Connect the common pin of the encoder to the ground, the internal pull-up resistors will be used. An invalid pin number will result in the LED on pin 13 blinking at 1Hz.

    Create member

    • RotaryEncoder(byte pin1, byte pin2, byte controller, byte channel, int speedMultiply, byte pulsesPerStep, byte mode);

    pin1 is the first interrupt pin with the encoder connected.

    pin2 is the second interrupt pin with the encoder connected.

    controller is the MIDI controller number (data 1 in the MIDI message). This is how it will appear in your MIDI software, like a unique address.

    channel is the MIDI channel.

    Woodworking Planshow to Woodworking Plans for speedMultiply is the value that will be multiplied with the relative displacement, if the encoder is not fast enough in your software. If, for example, speedMultiply is set to 5, and the encoder were to send a '' message, a '' message will now be sent. Default is 1.

    pulsesPerStep is the number of pulses the encoder outputs when you turn it one step or click. On a normal rotary encoder, this is 4. When you set it to 4, it will change 1 unit in your software per click you turn, instead of 4. This is mostly more logical. For jog wheels however, you may want to set it to 1, to take advantage of the full resolution of the wheel. Use '' or '' as argument.

    mode is the way the MIDI message is sent (in order to make it a signed number). There are 3 modes available. Use '', '' or '' as argument.

    Functions

    • refresh();

    Woodworking Planshow to Woodworking Plans for This function checks the encoder position, and if it has changed since last time, the relative change is sent over MIDI.

    the 1 last update 2020/08/07 ConstantsConstants

    • NORMAL_ENCODER

    set pulsesPerStep to 4, for normal rotary encoders.

    • JOG

    set pulsesPerStep to 1, for jog wheels.

    • ADD_64

    First mode for relative MIDI messages. This is probably the simplest one. This basically maps 0 to 64 (which is 128/2). For example, if I want to send -1, I add 64, = 63 and I send it. If I want to send +1, I also add 64, = 65. If I just send 64, the computer will do nothing, because it knows it''s 0, the number defined by the other bits is positive, when it''s 0 based). For example: +4 would be 0b00000100, and -4 would be 0b01000100.

    • POS1_NEG127

    Third mode for relative MIDI messages. Define +1 as 1, and -1 as 127. We can continue this: +2 = 2, and -2 = 126, etc. until +63 = 63, and -63 = 65.

    Examples

    • Encoder_example

    Woodworking Planshow to Woodworking Plans for sendMidi.h

    This is not a class, it''t want this, or if you want to use all your pins as inputs, use ''.

    delay is the delay (in milliseconds) to add after every message that sent. 5 or 10ms works fine. Increase for stability, decrease for faster response. Use '' to continue as soon as the message is sent, without delay. (NOTE: it is normal for the '' to become very dim if you use short or no delay, this is just because the on-time is very short.)

    • sendMidi(byte messageType, byte channel, byte data1, byte data2);

    Sends a MIDI message.

    messageType is the type of message, like noteOn, noteOff or CC. This is a 4-bit number.

    channel is the MIDI channel. This is a 4-bit number as well.

    data1 is the first data byte. This is a 7-bit number.

    data2 is the second data byte. This the 1 last update 2020/08/07 is also a 7-bit number.data2 is the second data byte. This is also a 7-bit number.

    NOTE: read step 6 for more information on MIDI messages.

    • sendMidi(byte messageType, byte channel, int data);

    Sends a the 1 last update 2020/08/07 MIDI messageSends a MIDI message

    messageType is the type of message, like Program Change or Pitch Bend.

    channel is the MIDI channel. This is a 4-bit number as well.

    data is the value to be sent. 7-bit in case of a Program Change, to pick an instrument for a channel, or a number between -8192 and 8191 in case of a Pitch Bend.

    Constants

    • NO_BLINK

    The LED will blink not blink when a message is sent. The LED pin will also not be set as output.

    • NO_DELAY

    Woodworking Planshow to Woodworking Plans for No delay will be added after the message is sent.

    • NOTE_ON

    Message type: 0x90, use to turn on a note. Use NOTE_OFF or send again with velocity = 0 to turn off again.

    • NOTE_OFF

    Message type: 0x80, use to turn off a note.

    • CC

    Message type: 0xB0 (Control Change), use to send analog values, like values from a potentiometers.

    • PROGRAM_CHANGE

    Message type: 0xC0 (Program Change), use to set the instrument of a certain channel. (Channel 10 is percussion).

    • PITCH_BEND

    Message type: 0xE0 (Pitch Bend), use to send large analog values.

    Woodworking Planshow to Woodworking Plans for the 1 last update 2020/08/07 DebugDebug

    In the MIDI_controller library folder, there is a file ''. If you are having problems with your MIDI messages, uncomment the "" line. This will send all MIDI messages over Serial, at 9600 baud, in HEX notation. You could also use tools like '' to troubleshoot MIDI messages.

    Woodworking Planshow to Woodworking Plans for NOTE: don''t hesitate to ask me a question in the comments.

    If you want to share your own controller, feel free to post your photos and links in the comments!

    What''m also experimenting with system exclusive messages, that can have any length, and are used to address settings other than the control change messages.

    Thanks a lot for reading this (rather long) Instructable, I really hope you the 1 last update 2020/08/07 learned something new, and that you are motivated to build your own MIDI controller!Thanks a lot for reading this (rather long) Instructable, I really hope you learned something new, and that you are motivated to build your own MIDI controller!

    Tttapa, 30/08/2015

    (edit: 23/08/2016)

    Participated in the
    Remix 2.0 Contest

    Participated in the
    First Time Author Contest

    3 People Made This Project!

    Did you make this project? Share it with us!

    Recommendations

    Time Measure (Tape Measure Clock) by scealuxWoodworking Planshow to Woodworking Plans for in Arduino
    Woodworking Planshow to Woodworking Plans for 182 182 Woodworking Planshow to Woodworking Plans for 44K
    • Arduino Contest 2020

    • First Time Author Contest

    • Space Challenge

    179 Discussions

    0
    careyjd

    Question 22 for 1 last update 2020/08/07 days ago Question 22 days ago

    Hi - I followed the instruction and the Leonardo now shows up as a midi device and works fine....but, if I want to load a new code and use it as a Arduino Leonardo again instead of a midi device, it no longer shows up as a USB comm port and I can''Arduino AVR Boards''Arduino AVR Boards''Arduino AVR Boards''Arduino AVR Boards''ve ever found when trying to figure out how to make something I need. Thank you.

    0
    JoeD182

    Question 1 year ago

    Great project BTW.
    Checking the latest code...
    looking at the Analog Multiplexer example, I assume it would not be difficult to do a Digital Multiplex version, so that I may use many buttons via multiplexing.
    I looked at MIDI_Controller.h and I could see where it goes over AnalogMultiplex, but I did not see any mention of Digital Multiplex or maybe Button Multiplex.

    Bank selecting..
    I did not see, but also assume it would not be difficult to use a button or two to change the modes of several buttons connected via multiplex?

    Any assistance would be apprechiated.

    thanks

    0
    tttapa

    Answer 1 year ago

    Hi, you can use the AnalogMultiplex class with an analog multiplexer with buttons and other digital inputs.
    If you want to use a digital multiplexer, you should still be able to use the AnalogMultiplex class, however, you need to use external pull-up resistors.

    0
    JoeD182

    Reply 1 year ago

    gotcha, same example, but just wire it for buttons and external pull ups, cool

    Now, what about using the for 1 last update 2020/08/07 shift button to change the modes of a set of buttons on one of the multiplex chips? can this button also be part of one of the multiplexers, or does it need to be a discreet into the Arduino or Teensy?Now, what about using the shift button to change the modes of a set of buttons on one of the multiplex chips? can this button also be part of one of the multiplexers, or does it need to be a discreet into the Arduino or Teensy?

    0
    JoeD182

    Question 2 years ago on Step 14

    Great instructable!
    I''ve tried a few different settings for the encoder, as pointed out in the example sketch''t recognize the two directions. It sees it as though I''ve double checked my wiring and am using inputs 2 and 3 on the teensy.

    0
    ManoloM14

    Answer 1 year ago

    You have solved it? I have the same problem