Controlador Arduino personalizado MIDI (10 / 14 paso)

Paso 10: Hey, ¿qué pasa con los codificadores rotativos?

Sobre codificadores rotatorios

Potenciómetros y faders son excelentes para el control de volúmenes y frecuencias, pero a veces te encuentras necesitando algo que puede girar para siempre, por lo que puede desplazarse por sus listas de reproducción, o tal vez eres un DJ y desea añadir ruedas de avance lento a su mando para rayar. Cuando codificadores rotativos vienen en.

Puede parecer como un potenciómetro, pero hay 3 grandes diferencias:

  1. Un codificador rotatorio puede girar para siempre, mientras que un potenciómetro tiene una gama fija (generalmente alrededor de 270°).
  2. Un codificador envía señales digitales, mientras que un potenciómetro 'salidas' voltajes analógicos.
  3. Un codificador envía mensajes relativa, mientras que un potenciómetro informa su ángulo absoluto.

Descifrar un codificador rotatorio

Antes de que podemos utilizarlos, primero tenemos que entender cómo funcionan. Hay un documento largo en el Arduino Playground, pero voy a intentar dar una explicación rápida.

Un codificador rotatorio consiste básicamente de dos interruptores. Cuando se gira, los dos pasadores de estos interruptores (A y B) ser conectados y desconectados el pin común (C). (Ver imagen 1, crédito: RobotRoom)
Esto resulta en dos ondas cuadradas. Estas ondas cuadradas son idénticas, pero el tiempo es diferente. Decimos que están 90° fuera de fase: la segunda ola comienza su ciclo cuando la primera onda es 1/4 de su ciclo. (90 º es 1/4 de un completo de 360°, por lo tanto, el '90° fuera de fase". A y B se denominan también 'cuadratura salidas', porque son un barrio fuera de fase.)

Echa un vistazo a la segunda imagen (fuente: Arduino Playground). Supongamos que nos gire el codificador hacia la derecha (a la derecha en la imagen). Cada vez que una señal se levanta, (línea roja vertical) la señal B es alta, y cada vez que una señal baja (línea verde), la señal B es baja. Ahora imagine girándolo en sentido antihorario (CCW). Ahora cada vez que una señal levanta (línea verde), la señal B es baja, y cada vez que una señal baja (línea roja), la señal B es alta. Comprobando el valor de B cuando el valor cambia, sabemos qué dirección va el eje. Esto vale también para los cambios del canal B. Contando los pulsos, sabemos cuánto nos gire.

Porque marcar el pin A y B en el circuito de nuestro sketch sería demasiado lento si hay otras cosas funcionando así, y no queremos perder ningún cambio de ellos, usamos interrupciones. Aquí están algunas grandes páginas sobre interrupciones: la Referencia de Arduino, sitio de Nick Gammony capítulo 11 en el Atmel Datasheet (Uno o Leonardo).

Interrupciones son, sencillamente, partes del código que se ejecutan sólo cuando algo se dispara, como un cambio de pin. El bucle principal se interrumpe, y se llama ISR o interrumpir el servicio de rutina. Es mucho más complejo que esto, pero es imposible explicar en una Instructable. De todos modos, si Atribuimos una interrupción a los pines del codificador rotatorio, podemos cerciorarnos de que no se pierda ningún cambio de pin, no importa lo que está sucediendo en otras partes de nuestro código. Puedes leer más sobre este tema en los enlaces anteriores, pero no vamos a ser preocupantes a mucho de las interrupciones, ya que usaremos biblioteca de codificador de PJRC, que se encarga de esto para nosotros.

Hay dos tipos de encoders rotativos: mecánicas y ópticas. La primera imagen es una mecánica: hay una estática y una placa móvil de metal, y hacer o las conexiones del freno. El segundo tipo es un codificador óptico: hay dos haces de luz (mayormente infrarroja), y un disco giratorio con dientes interrumpe el disco. Si la distancia entre las vigas es la proporción derecha comparada con la anchura de los dientes, sus ondas cuadradas será 90° fuera de fase. Hay un ejemplo en la imagen 3 (fuente: Kawasaki Heavy Industries). También es posible que dos anillos de abertura, que ya está en la fase correcta en el disco.

Hay un problema con codificadores mecánicos, y que es debido a que la conexión nunca es perfecta. Puede tener pequeñas espigas al conectar y desconectar, y el Arduino también detectar aquellos y nos dan lecturas mal. Una solución simple es agregar dos capacitores de 100nF entre nuestras salidas A y B y el suelo.

Artículos Relacionados

Controlador de DJ MIDI de estilo arcade

Controlador de DJ MIDI de estilo arcade

>>> esto no es muy acabado pero ya armado un poco del circuito. Voy a actualizar el instructivo y subir un video cuando se ordena <<<He sido DJ por cerca de 10 años, y para los últimos he intercambiado buena viejo vinilo moda vinilo virt
Interfaz Arduino USB MIDI

Interfaz Arduino USB MIDI

Hace unas semanas comencé a trabajar en un controlador MIDI con Arduino y ATmega32. Lo hice no terminado proyectado todavía. Está en desarrollo.Usted puede leer toda la historia aquí http://openhardware.ro/arduino-usb-midi-controller/.Pero durante lo
Señal de tráfico / luz de freno cables con controlador Arduino

Señal de tráfico / luz de freno cables con controlador Arduino

siempre ha querido una vieja señal de tráfico y finalmente consiguió uno recientemente.  Sin embargo, fue muy simple cableado para que todas las luces estaban fijos en.  ¿Qué divertido es esto?  También quería probar un controlador Arduino y pensé qu
Controlador Arduino DIY

Controlador Arduino DIY

mi Instructable primer es sobre cómo construir tu propio controlador Arduino!Usted puede construir en un protoboard, pero prefiero la soldadura mi propia. Para uso con proyectos. Esta junta wil no sean capaces de programar un chip ATmega. Yo utilice
Cómo instalar controlador Arduino R3

Cómo instalar controlador Arduino R3

Hoy voy a introducir la forma de instalar controlador Arduino R3.Espero útilPaso 1: Paso 1: driver descargar controlador Arduino R3Puede descargar aquí el driver del controlador Arduino R3Paso 2: Paso 2Conecte el cable de kit Arduino a tu ordenadorDe
Cómo crear un controlador de Dj MIDI

Cómo crear un controlador de Dj MIDI

así que esto era un proyecto escolar. Acabo de terminarlo. El documento adjunto al final es todo el proyecto, como lo he escrito bien a mano. Si desea tratar esta build me avisas y te puedo dar algunas sugerencias. También un alza para este proyecto
Controlador Arduino MIDI

Controlador Arduino MIDI

Un controlador MIDI es cualquier pieza de equipo que genera y transmite los datos MIDI para dispositivos compatibles con MIDI. En Resumen, si tiene botones en el controlador de MIDI, puede programar los botones a cualquier sonido que desee a través d
Controlador Arduino Midi con una distancia de ZX y gesto Sensor

Controlador Arduino Midi con una distancia de ZX y gesto Sensor

Bienvenido a este instructable sobre cómo construir un controlador Midi muy básico con la distancia de ZX de SparkFun y Sensor de gesto. Este instructable es parte de una asignación de la escuela.Nota: Se trata de ningún tutorial de codificación. El
Controlador de pie MIDI basados en Arduino DIY

Controlador de pie MIDI basados en Arduino DIY

Llevo muuuucho tiempo con intentar un lazador de guitarra durante un tiempo, pero no me gusta la idea de gastar dinero en un pedal específicos del lazador cuando puedo usar un ordenador para eso y desde que he estado aprendiendo arduino para divertir
Controlador de pie Midi Arduino para Ableton Live

Controlador de pie Midi Arduino para Ableton Live

Soy un geek. Yo lo sé. Me gustan las cosas DIY'ing. Compré una impresora 3d (que está sentado en mi oficina no funciona ahora mismo)... y como construir drones. Yo generalmente morder más de lo que puedo masticar y a menudo tiene que ir a otros para
Controlador de DJ MIDI PACMOD

Controlador de DJ MIDI PACMOD

para el cumpleaños de mi hijo le hice una controladora para DJ diseñado para parecerse a un viejo gabinete arcade de la máquina. Lo que sigue es un breve resumen del proceso para hacerlo, incluyendo el código.El Teensy fue elegido como el cerebro deb
Shield Arduino personalizado y sensores

Shield Arduino personalizado y sensores

Resumen:Este instructable construirá una serie de módulos de sensor de encargo y un escudo de Arduino. Dichos módulos están disponibles en muchas fuentes diferentes, pero los fanáticos de la Web de Instructables probablemente encontraría satisfacción
Controlador Arduino Rgb desde Vb.net

Controlador Arduino Rgb desde Vb.net

Hola, este es mi primer instractables, hoy te voy a mostrar cómo hacer una controladora rgb con un arduino UNO R3, controlado por una aplicación en vb.netCon este proyecto simplemente controlar su tira led y hacer de qué color te gustaperdón por mi i
Controlador de pie MIDI (Pedalera controladora MIDI) para Amplitube 3.

Controlador de pie MIDI (Pedalera controladora MIDI) para Amplitube 3.

Instrucciones de armado y puesta en funcionamiento del Midi pedal.(Pedalera controladora MIDI) para Amplitube 3.Hola, uso habitualmente el programa Amplitube 3 para practicar con mi Guitarra, realmente me gustan mucho los sonidos y posibilidades de c