Cách sử dụng Rotary Encoder

Ứng dụng Arduino trong điều khiển thiết bị điện, điện tử.
Xêm thêm tại: http://kythuatvatlieu.org/magazine/arduino.html
Post Reply
User avatar
support
Posts: 244
Joined: 05 Jan 2017, 09:34

Cách sử dụng Rotary Encoder

Post by support » 19 Sep 2017, 16:34

Mua công tắc này tại: http://banlinhkien.vn/goods-3256-cong-t ... -ec11.html (Công tắc vô cấp EC11)
Sử dụng

Code: Select all

#include <RotaryEncoder.h>
const int PA = 2;
const int PB = 3;
// Setup a RoraryEncoder for pins A2 and A3:
RotaryEncoder encoder(PA, PB); //Họ đã tạo Pull up

void setup()
{
  Serial.begin(57600);
  Serial.println("SimplePollRotator example for the RotaryEncoder library.");
} // setup()


// Read the current position of the encoder and print out when changed.
void loop()
{
  static int pos = 0;
  encoder.tick();

  int newPos = encoder.getPosition();
  if (pos != newPos) {
    Serial.print(newPos);
    Serial.println();
    pos = newPos;
  } // if
} // loop ()

Code: Select all

#include<ButtonV2.h>

#define numOfButtons 2
ButtonV2 buttonArray[numOfButtons];

const byte ButtonPins[numOfButtons] = {2, 3};

void setup()
{ 
  Serial.begin(115200);
  for(byte n = 0; n < numOfButtons; n++){
	pinMode(ButtonPins[n], INPUT_PULLUP);
    buttonArray[n].SetStateAndTime(LOW);
	}
  Serial.println("ready");
}

void loop()
{
  static byte i = 0;
  
  byte type = buttonArray[i].CheckButton(ButtonPins[i]); // current time and length of time to press the button as many times as you can ie. 1.5 seconds
  switch (type)
  {
    case WAITING:
      break;
    case PRESSED:
      Serial.println("pressed 1 time");
      break;
    case DOUBLE_PRESSED:
      Serial.println("pressed 2 times");
      break;
    case MULTI_PRESSED:
      Serial.println("pressed 3 times");
      break;
    case HELD:
      Serial.println("Button HELD");
      break;
  }
  
  i++; 
  if(i > (numOfButtons - 1) )
    i = 0;
}
Attachments
Rotary.jpg
Rotary.jpg (87.06 KiB) Viewed 100 times
output.png
output.png (71.09 KiB) Viewed 100 times
rotary.png
rotary.png (15.27 KiB) Viewed 100 times
RotaryEncoderSignal-1024x516.jpg
RotaryEncoderSignal-1024x516.jpg (72.81 KiB) Viewed 100 times


Post Reply