Grove - Sensor de Ángulo Rotatorio
El sensor de ángulo rotatorio produce una salida analógica entre 0 y Vcc (5V DC con Seeeduino) en su conector D1. El conector D2 no se utiliza. El rango angular es de 300 grados con un cambio lineal en el valor. El valor de resistencia es de 10k ohmios, perfecto para uso con Arduino. Esto también puede ser conocido como un "potenciómetro".
Hay otro producto, Grove - Rotary Angle Sensor(P). ¿Qué significa "P"? "P" significa "panel mount" (montaje en panel) en este producto. Es la versión hermana del Grove - Sensor de Ángulo Rotatorio. Son idénticos excepto que el conector Grove se mueve hacia atrás para que puedas usarlo fácilmente como un dispositivo de interfaz humana limpio y sin cables.
![]() | ![]() |
Versión
Versión del Producto | Cambios | Fecha de Lanzamiento |
---|---|---|
Grove-Rotary Angle Sensor(P) V1.1 | Inicial | Ene 2013 |
Grove-Rotary Angle Sensor V1.2 | Inicial | May 2014 |
Características
- Interfaz Grove
- Fácil de Usar
- Módulo Base Grove
Para más detalles sobre los módulos Grove, consulte Sistema Grove
Especificaciones
Elemento | Mín | Típico | Máx | Unidad |
---|---|---|---|---|
Voltaje | 4.75 | 5.0 | 5.25 | VDC |
Ángulo Rotatorio | 0 | / | 300 | Grados |
Dimensión | / | 19x19x30.1 | / | mm |
Plataformas Compatibles
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
Las plataformas mencionadas anteriormente como compatibles son una indicación de la compatibilidad de software o teórica del módulo. Solo proporcionamos biblioteca de software o ejemplos de código para la plataforma Arduino en la mayoría de los casos. No es posible proporcionar biblioteca de software / código de demostración para todas las plataformas MCU posibles. Por lo tanto, los usuarios tienen que escribir su propia biblioteca de software.
Primeros Pasos
Si esta es la primera vez que trabajas con Arduino, te recomendamos firmemente que veas Primeros Pasos con Arduino antes de comenzar.
Jugar Con Arduino
Hardware
- Paso 1. Prepara los siguientes elementos:
Seeeduino V4.2 | Base Shield | Grove-Rotary Angle Sensor | Grove-LED |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Obtener Uno Ahora | Obtener Uno Ahora | Obtener Uno Ahora | Obtener Uno Ahora |
- Paso 2. Conecta el Sensor de Ángulo Rotatorio Grove al puerto A0 del Escudo Base Grove.
- Paso 3. Conecta el LED Grove al puerto D3 del Escudo Base Grove.
- Paso 4. Conecta el Escudo Base Grove al Seeeduino.
- Paso 5. Conecta el Seeeduino a la PC mediante un cable USB.
Si no tenemos el Escudo Base Grove, también podemos conectar directamente el Sensor de Ángulo Rotatorio Grove y el LED Grove al Seeeduino como se muestra a continuación. El LED Grove debe conectarse a un puerto PWM. Para Seeeduino, estos son D3,5,6,9,10,11.
Seeeduino | Sensor de Ángulo Rotatorio Grove | Seeeduino | LED Grove |
---|---|---|---|
5V | Rojo | 5V | Rojo |
GND | Negro | GND | Negro |
NC | Blanco | NC | Blanco |
A0 | Amarillo | D3 | Amarillo |
Software
- Paso 1. Por favor copia el código de abajo al IDE de Arduino y súbelo al arduino. Si no sabes cómo subir el código, por favor revisa cómo subir código.
/*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);
}
- Paso 2. Ajusta el Sensor de Ángulo Rotatorio Grove y veremos que el LED Grove cambia el brillo.
Jugar con Codecraft
Hardware
Paso 1. Conecta un Sensor de Ángulo Rotatorio Grove al puerto A0, y conecta un LED Rojo Grove al puerto D3 de un Base Shield.
Paso 2. Conecta el Base Shield a tu Seeeduino/Arduino.
Paso 3. Conecta Seeeduino/Arduino a tu PC mediante un cable USB.
Software
Paso 1. Abre Codecraft, añade soporte para Arduino, y arrastra un procedimiento principal al área de trabajo.
Si esta es tu primera vez usando Codecraft, consulta también Guía para Codecraft usando Arduino.
Paso 2. Arrastra bloques como en la imagen de abajo o abre el archivo cdc que se puede descargar al final de esta página.
Sube el programa a tu Arduino/Seeeduino.
Cuando el código termine de subirse, el brillo del LED variará dependiendo del ángulo del sensor, y el valor del ángulo se mostrará en el Monitor Serie.
Jugar Con Raspberry Pi (Con Grove Base Hat para Raspberry Pi)
Hardware
- Paso 1. Elementos utilizados en este proyecto:
Raspberry pi | Grove Base Hat para RasPi | Sensor de Ángulo Rotatorio Grove |
---|---|---|
![]() | ![]() | ![]() |
Consigue UNO Ahora | Consigue UNO Ahora | Consigue UNO Ahora |
- Paso 2. Conecta el Grove Base Hat al Raspberry.
- Paso 3. Conecta el sensor rotatorio al puerto A0 del Base Hat.
- Paso 4. Conecta el Raspberry Pi a la PC a través del cable USB.
Para el paso 3 puedes conectar el sensor de ángulo rotatorio a cualquier Puerto Analógico pero asegúrate de cambiar el comando con el número de puerto correspondiente.
Software
Si estás usando Raspberry Pi con Raspberrypi OS >= Bullseye, tienes que usar esta línea de comandos solo con Python3.
- Paso 1. Sigue Setting Software para configurar el entorno de desarrollo.
- Paso 2. Descarga el archivo fuente clonando la librería grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Paso 3. Ejecuta los siguientes comandos para ejecutar el código.
cd grove.py/grove
python3 grove_rotary_angle_sensor.py 0
A continuación se muestra el código de 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()
If everything goes well, you will be able to see the following result
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
Puedes salir de este programa simplemente presionando ++ctrl+c++.
Es posible que hayas notado que para el puerto analógico, el número de pin en la serigrafía es algo como A0, A1, sin embargo en el comando usamos el parámetro 0 y 1, igual que el puerto digital. Así que por favor asegúrate de conectar el módulo en el puerto correcto, de lo contrario puede haber conflictos de pines.
Jugar Con Raspberry Pi (con GrovePi_Plus)
Hardware
- Paso 1. Prepara las siguientes cosas:
Raspberry pi | GrovePi_Plus | Grove-Rotary Angle Sensor | Grove-LED |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Consigue UNO Ahora | Consigue UNO Ahora | Consigue Uno Ahora | Consigue Uno Ahora |
- Paso 2. Conecta el GrovePi_Plus al Raspberry.
- Paso 3. Conecta el Grove-Rotary Angle Sensor al puerto A0 del GrovePi_Plus.
- Paso 4. Conecta el Grove-LED al puerto D5 del GrovePi_Plus.
- Paso 5. Conecta el Raspberry a la PC a través del cable USB.
Software
Si estás usando Raspberry Pi con Raspberrypi OS >= Bullseye, tienes que usar esta línea de comandos solo con Python3.
- Paso 1. Sigue Setting Software para configurar el entorno de desarrollo.
- Paso 2. Clona el repositorio de Github con Git.
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- Paso 3. Ejecuta los siguientes comandos para monitorear el volumen.
cd ~/GrovePi/Software/Python
python3 grove_rotary_angle_sensor.py
Aquí está el código de 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")
- Paso 4. Ajusta el Sensor de Ángulo Rotatorio Grove y veremos que el LED Grove cambia el brillo.
Jugar con TI LaunchPad
Leyendo el Potenciómetro (Sensor de Ángulo Rotatorio)
Este ejemplo muestra cómo leer la salida analógica proveniente del módulo potenciómetro Grove. ¡Estaremos combinando algunos módulos Grove en este ejemplo! Al girar la perilla del potenciómetro, mostraremos el valor de lectura analógica en la pantalla 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 - Archivo Esquemático del Sensor de Ángulo Rotatorio(P) v1.1
Grove-Archivo Esquemático del Sensor de Ángulo Rotatorio v1.2
Recursos
- [Eagle&PDF] Grove-Archivo Esquemático del Sensor de Ángulo Rotatorio v1.2
- [Eagle&PDF] Grove - Archivo Esquemático del Sensor de Ángulo Rotatorio(P) v1.1
- [Biblioteca] Repositorio de Github para el Sensor de Ángulo Rotatorio
- [Codecraft] Archivo CDC
Proyectos
Usando Grove-Sensor de Ángulo Rotatorio(P) para Controlar Grove LED: Usando Arduino/Genuino 101 para controlar el brillo de un LED a través del Grove-Sensor de Ángulo Rotatorio(P).
Módulo Grove de Ángulo Rotatorio:
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.