Grove - Sensor de Ângulo Rotativo

O sensor de ângulo rotativo produz saída analógica entre 0 e Vcc (5 V CC com o Seeeduino) em seu conector D1. O conector D2 não é usado. A faixa angular é de 300 graus com uma variação linear de valor. O valor de resistência é de 10 k ohms, perfeito para uso com Arduino. Isso também pode ser conhecido como um “potenciômetro”.
Há outro produto, Grove - Rotary Angle Sensor(P). O que significa “P”? “P” é de “panel mount” neste produto. É a versão irmã do Grove - Rotary Angle Sensor. Eles são idênticos, exceto que o conector Grove é movido para a parte de trás, para que você possa usá-lo facilmente como um dispositivo de interface humana organizado e sem fios.
![]() | ![]() |
Versão
| Versão do Produto | Alterações | Data de Lançamento |
|---|---|---|
| Grove-Rotary Angle Sensor(P) V1.1 | Inicial | Jan 2013 |
| Grove-Rotary Angle Sensor V1.2 | Inicial | Mai 2014 |
Características
- Interface Grove
- Fácil de usar
- Módulo base Grove
Para mais detalhes sobre módulos Grove, consulte o Grove System
Especificações
| Item | Mín | Típico | Máx | Unidade |
|---|---|---|---|---|
| Tensão | 4.75 | 5.0 | 5.25 | VCC |
| Ângulo rotativo | 0 | / | 300 | Graus |
| Dimensão | / | 19x19x30.1 | / | mm |
Plataformas Suportadas
| Arduino | Raspberry Pi | |||
|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
As plataformas mencionadas acima como suportadas são uma indicação da compatibilidade de software ou teórica do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software / código de demonstração para todas as possíveis plataformas de MCU. Portanto, os usuários têm que escrever a própria biblioteca de software.
Primeiros Passos
Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que veja Getting Started with Arduino antes de começar.
Brincar com Arduino
Hardware
- Passo 1. Prepare os itens abaixo:
| Seeeduino V4.2 | Base Shield | Grove-Rotary Angle Sensor | Grove-LED |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
| Adquira agora | Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o Grove-Rotary Angle Sensor à porta A0 do Grove-Base Shield.
- Passo 3. Conecte o Grove-LED à porta D3 do Grove-Base Shield.
- Passo 4. Conecte o Grove - Base Shield ao Seeeduino.
- Passo 5. Conecte o Seeeduino ao PC por meio de um cabo USB.

Se não tivermos o Grove Base Shield, também podemos conectar diretamente o Grove-Rotary Angle Sensor e o Grove-LED ao Seeeduino, como abaixo. O Grove-LED deve ser conectado à porta PWM. Para o Seeeduino, elas são D3,5,6,9,10,11.
| Seeeduino | Grove-Rotary Angle Sensor | Seeeduino | Grove-LED |
|---|---|---|---|
| 5V | Red | 5V | Red |
| GND | Black | GND | Black |
| NC | White | NC | White |
| A0 | Yellow | D3 | Yellow |
Software
- Passo 1. Copie o código abaixo para a IDE do Arduio e faça o upload para o Arduino. Se você não sabe como enviar o código, verifique how to upload code.
/*macro definitions of Rotary angle sensor and LED pin*/
#define ROTARY_ANGLE_SENSOR A0
#define LED 3 //the Grove - LED is connected to PWM pin D3 of Arduino
#define ADC_REF 5 //reference voltage of ADC is 5v.If the Vcc switch on the seeeduino
//board switches to 3V3, the ADC_REF should be 3.3
#define GROVE_VCC 5 //VCC of the grove interface is normally 5v
#define FULL_ANGLE 300 //full value of the rotary angle is 300 degrees
void setup()
{
Serial.begin(9600);
pinMode(ROTARY_ANGLE_SENSOR, INPUT);
pinMode(LED,OUTPUT);
}
void loop()
{
float voltage;
int sensor_value = analogRead(ROTARY_ANGLE_SENSOR);
voltage = (float)sensor_value*ADC_REF/1023;
float degrees = (voltage*FULL_ANGLE)/GROVE_VCC;
Serial.println("The angle between the mark and the starting position:");
Serial.println(degrees);
int brightness;
brightness = map(degrees, 0, FULL_ANGLE, 0, 255);
analogWrite(LED,brightness);
delay(500);
}
- Passo 2. Ajuste o Grove-Rotary Angle Sensor e veremos o Grove-LED mudar o brilho.
Brincar com Codecraft
Hardware
Passo 1. Conecte um Grove - Rotary Angle Sensor à porta A0 e conecte um Grove - Red LED à porta D3 de um Base Shield.
Passo 2. Conecte o Base Shield ao seu Seeeduino/Arduino.
Passo 3. Conecte o Seeeduino/Arduino ao seu PC por meio de um cabo USB.
Software
Passo 1. Abra o Codecraft, adicione o suporte a Arduino e arraste um procedimento principal para a área de trabalho.
Se esta é a sua primeira vez usando o Codecraft, veja também o Guide for Codecraft using Arduino.
Passo 2. Arraste os blocos como na imagem abaixo ou abra o arquivo cdc que pode ser baixado no final desta página.

Envie o programa para o seu Arduino/Seeeduino.
Quando o código terminar de ser enviado, o brilho do LED irá variar dependendo do ângulo do sensor, e o valor do ângulo será exibido no Serial Monitor.
Brincar com Raspberry Pi (Com Grove Base Hat para Raspberry Pi)
Hardware
- Passo 1. Itens usados neste projeto:
| Raspberry pi | Grove Base Hat para RasPi | Grove - Rotary Angle Sensor |
|---|---|---|
![]() | ![]() | |
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o Grove Base Hat ao Raspberry.
- Passo 3. Conecte o sensor rotativo à porta A0 do Base Hat.
- Passo 4. Conecte o Raspberry Pi ao PC através de um cabo USB.

No passo 3 você pode conectar o sensor de ângulo rotativo a qualquer porta Analógica, mas certifique-se de alterar o comando com o número de porta correspondente.
Software
Se você estiver usando Raspberry Pi com Raspberrypi OS >= Bullseye, você deve usar esta linha de comando apenas com Python3.
- Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
- Passo 2. Baixe o arquivo-fonte clonando a biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Passo 3. Execute os comandos abaixo para rodar o código.
cd grove.py/grove
python3 grove_rotary_angle_sensor.py 0
A seguir está o código grove_rotary_angle_sensor.py.
import math
import sys
import time
from grove.adc import ADC
class GroveRotaryAngleSensor(ADC):
def __init__(self, channel):
self.channel = channel
self.adc = ADC()
@property
def value(self):
return self.adc.read(self.channel)
Grove = GroveRotaryAngleSensor
def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)
sensor = GroveRotaryAngleSensor(int(sys.argv[1]))
while True:
print('Rotary Value: {}'.format(sensor.value))
time.sleep(.2)
if __name__ == '__main__':
main()
Se tudo correr bem, você poderá ver o seguinte resultado
pi@raspberrypi:~/grove.py/grove $ python3 grove_rotary_angle_sensor.py 0
Rotary Value: 932
Rotary Value: 931
Rotary Value: 931
Rotary Value: 931
Rotary Value: 933
Rotary Value: 931
Rotary Value: 742
Rotary Value: 666
Rotary Value: 666
Rotary Value: 549
Rotary Value: 520
Rotary Value: 499
Rotary Value: 430
Rotary Value: 430
Rotary Value: 321
Rotary Value: 286
Rotary Value: 205
Rotary Value: 127
Rotary Value: 88
Rotary Value: 0
Rotary Value: 0
Rotary Value: 0
Rotary Value: 0
Rotary Value: 0
Rotary Value: 0
Rotary Value: 0
^CTraceback (most recent call last):
File "grove_rotary_angle_sensor.py", line 66, in <module>
main()
File "grove_rotary_angle_sensor.py", line 62, in main
time.sleep(.2)
KeyboardInterrupt
Você pode sair deste programa simplesmente pressionando ++ctrl+c++.
Você pode ter notado que, para a porta analógica, a numeração dos pinos na serigrafia é algo como A0, A1, porém no comando usamos os parâmetros 0 e 1, exatamente como na porta digital. Portanto, certifique-se de conectar o módulo na porta correta, caso contrário pode haver conflitos de pinos.
Brincar com Raspberry Pi (com GrovePi_Plus)
Hardware
- Passo 1. Prepare os itens abaixo:
| Raspberry pi | GrovePi_Plus | Grove-Rotary Angle Sensor | Grove-LED |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
| Adquira agora | Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o GrovePi_Plus ao Raspberry.
- Passo 3. Conecte o Grove-Rotary Angle Sensor à porta A0 do GrovePi_Plus.
- Passo 4. Conecte o Grove-LED à porta D5 do GrovePi_Plus.
- Passo 5. Conecte o Raspberry ao PC através de um cabo USB.

Software
Se você estiver usando Raspberry Pi com Raspberrypi OS >= Bullseye, você deve usar esta linha de comando apenas com Python3.
- Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
- Passo 2. Dê um git clone no repositório do Github.
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- Passo 3. Execute os comandos abaixo para monitorar o nível de ruído.
cd ~/GrovePi/Software/Python
python3 grove_rotary_angle_sensor.py
Aqui está o código grove_rotary_angle_sensor.py.
import time
import grovepi
# Connect the Grove Rotary Angle Sensor to analog port A0
# SIG,NC,VCC,GND
potentiometer = 0
# Connect the LED to digital port D5
# SIG,NC,VCC,GND
led = 5
grovepi.pinMode(potentiometer,"INPUT")
grovepi.pinMode(led,"OUTPUT")
time.sleep(1)
# Reference voltage of ADC is 5v
adc_ref = 5
# Vcc of the grove interface is normally 5v
grove_vcc = 5
# Full value of the rotary angle is 300 degrees, as per it's specs (0 to 300)
full_angle = 300
while True:
try:
# Read sensor value from potentiometer
sensor_value = grovepi.analogRead(potentiometer)
# Calculate voltage
voltage = round((float)(sensor_value) * adc_ref / 1023, 2)
# Calculate rotation in degrees (0 to 300)
degrees = round((voltage * full_angle) / grove_vcc, 2)
# Calculate LED brightess (0 to 255) from degrees (0 to 300)
brightness = int(degrees / full_angle * 255)
# Give PWM output to LED
grovepi.analogWrite(led,brightness)
print("sensor_value = %d voltage = %.2f degrees = %.1f brightness = %d" %(sensor_value, voltage, degrees, brightness))
except KeyboardInterrupt:
grovepi.analogWrite(led,0)
break
except IOError:
print ("Error")
- Passo 4. Ajuste o Grove-Rotary Angle Sensor e veremos o Grove-LED mudar o brilho.
Brincar com TI LaunchPad
Lendo o Potenciômetro (Rotary Angle Sensor)
Este exemplo mostra como ler a saída analógica vinda do módulo potenciômetro Grove. Vamos combinar alguns módulos Grove neste exemplo! Ao girar o botão do potenciômetro, exibiremos o valor de leitura analógica no display digital de 4 dígitos Grove.

/*
Rotary Angle Sensor
Demonstrates analog input by reading an analog sensor on J16 of the Grove Base BoosterPack. The speed of the red LED on the LaunchPad will change depending on the position of the potentiometer knob. This example will also display the analog reading value on the Grove 4-digital display.
The circuit:
* Potentiometer attached to pin 24 (J6 on Grove Base BoosterPack)
* center pin of the potentiometer to the analog pin
* one side pin (either one) to ground
* the other side pin to VCC (3.3V)
* Note: Because of unstable of the voltage, the value of the rotary angle sensor
varies slightly from run to run even you don't touch it.
Created by Oliver Wang
This example code is in the public domain.
https://www.seeedstudio.com/wiki/GROVE_-_Starter_Kit_v1.1b#Grove_-_Rotary_Angle_Sensor
*/
#include "TM1637.h"
/* Macro Define */
#define CLK 39 /* 4-digital display clock pin */
#define DIO 38 /* 4-digital display data pin */
#define ROTARY_ANGLE_P 24 /* pin of rotary angle sensor */
/* Global Variables */
TM1637 tm1637(CLK, DIO); /* 4-digital display object */
int analog_value = 0; /* variable to store the value coming from rotary angle sensor */
int8_t bits[4] = {0}; /* array to store the single bits of the value */
/* the setup() method runs once, when the sketch starts */
void setup() {
/* Initialize 4-digital display */
tm1637.init();
tm1637.set(BRIGHT_TYPICAL);
}
/* the loop() method runs over and over again */
void loop() {
analog_value = analogRead(ROTARY_ANGLE_P); /* read the value from the sensor */
memset(bits, 0, 4); /* reset array when we use it */
for(int i = 3; i >= 0; i--) {
/* get single bits of the analog value */
bits[i] = analog_value % 10;
analog_value = analog_value / 10;
tm1637.display(i, bits[i]); /* display by 4-digital display */
}
delay(100);
}
Grove - Rotary Angle Sensor(P) v1.1 Arquivo de Esquemático
Grove-Rotary Angle Sensor v1.2 Arquivo de Esquemático
Recursos
- [Eagle&PDF] Grove-Rotary Angle Sensor v1.2 Arquivo de Esquemático
- [Eagle&PDF] Grove - Rotary Angle Sensor(P) v1.1 Arquivo de Esquemático
- [Library] Repositório Github para Rotary Angle Sensor
- [Codecraft] Arquivo CDC
Projetos
Usando o Grove-Rotary Angle Sensor(P) para Controlar o Grove LED: Usando Arduino/Genuino 101 para controlar o brilho de um LED através do Grove-Rotary Angle Sensor(P).
Módulo Grove de Ângulo Rotativo:
Suporte Técnico & Discussão sobre o Produto
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.












