9 Replies Latest reply on Oct 17, 2015 12:12 AM by gaiar

    Grove - RotaryEncoder SKU: 111020001. Only negative data

    gaiar

      Hello

      I'm using Grove RotaryEncoder from Grove Indoor Environment Kit with Intel Edison and python wrapper.

      My code is based on Intel example

       

       

      import time, sys, signal, atexit
      import pyupm_rotaryencoder as upmRotaryEncoder
      
      # Instantiate a Grove Rotary Encoder, using signal pins D2 and D3
      myRotaryEncoder = upmRotaryEncoder.RotaryEncoder(2, 3);
      
      ## Exit handlers ##
      # This function stops python from printing a stacktrace when you hit control-C
      def SIGINTHandler(signum, frame):
        raise SystemExit
      
      
      # This function lets you run code on exit, including functions from myRotaryEncoder
      def exitHandler():
        print "Exiting"
        sys.exit(0)
      
      
      # Register exit handlers
      atexit.register(exitHandler)
      signal.signal(signal.SIGINT, SIGINTHandler)
      
      Read the value every second and detect motion
      while(1):
        print "Position: {0}".format(myRotaryEncoder.position())
        time.sleep(.1)
      

       

       

       

      But, I can't understand, why I'm receiving only negative data in all ways of rotating

      rotary_encoder = upmRotaryEncoder.RotaryEncoder(2, 3)
      last_data = None
      while (True):
          current_data = rotary_encoder.position()
          if current_data != last_data:
              last_data = current_data
              print("Position: {0}".format(last_data))
              time.sleep(.1)
      

      snip_20150912141659.png