Rotary Encoder to Voltage (0v-5v) - MCP4725

jremington:
Sure, just output a voltage V = RPM*5.0/100.0

As you can see, V=5 if RPM=100, V=2.5 if RPM=50, etc.

The Adafruit tutorial I linked shows you how to output a voltage.

Keep in mind that 5V output from the MCP4725 corresponds numerically to 4095 at 12 bit resolution, so the formula that you will actually be using is V=4095.*RPM/100.

Hi jremington, thanks a lot for your reply. I’m new to coding with the Arduino. Can you please help me modify the existing sketch provided by adafruit to work with my application. I understand the mathematical calculation but don’t know how to code it.

/**************************************************************************/
/*! 
    @file     trianglewave.pde
    @author   Adafruit Industries
    @license  BSD (see license.txt)

    This example will generate a triangle wave with the MCP4725 DAC.   

    This is an example sketch for the Adafruit MCP4725 breakout board
    ----> http://www.adafruit.com/products/935
 
    Adafruit invests time and resources providing this open source code, 
    please support Adafruit and open-source hardware by purchasing 
    products from Adafruit!
*/
/**************************************************************************/
#include <Wire.h>
#include <Adafruit_MCP4725.h>

Adafruit_MCP4725 dac;

void setup(void) {
  Serial.begin(9600);
  Serial.println("Hello!");

  // For Adafruit MCP4725A1 the address is 0x62 (default) or 0x63 (ADDR pin tied to VCC)
  // For MCP4725A0 the address is 0x60 or 0x61
  // For MCP4725A2 the address is 0x64 or 0x65
  dac.begin(0x62);
    
  Serial.println("Generating a triangle wave");
}

void loop(void) {
    uint32_t counter;
    // Run through the full 12-bit scale for a triangle wave
    for (counter = 0; counter < 4095; counter++)
    {
      dac.setVoltage(counter, false);
    }
    for (counter = 4095; counter > 0; counter--)
    {
      dac.setVoltage(counter, false);
    }
}