Arduino Nano y Visuino: Ahorre el valor del codificador rotatorio en EEPROM: 11 pasos (con fotos)

Arduino Nano y Visuino: Ahorre el valor del codificador rotatorio en EEPROM: 11 pasos (con fotos)

Tabla de contenido:

Anonim

Visuino ha incluido EEPROM Apoyo por bastante tiempo, pero nunca tuve la oportunidad de escribir un tutorial sobre él. Recientemente, sin embargo, pocas personas han pedido ayuda para usar el EEPROM, así que decidí hacer uno.

En este tutorial, te mostraré lo fácil que es utilizar Arduino. EEPROM para guardar los valores para que puedan usarse la próxima vez que Arduino se encienda después de apagarse.

Suministros:

Paso 1: Componentes

  1. Uno Arduino Placa compatible (uso Arduino Nano, porque tengo uno, pero cualquier otro estará bien)
  2. Uno Codificador rotatorio Módulo que obtuve de este conjunto de 37 sensores baratos.
  3. 5 Mujer-mujer cables de puente

Paso 2: Conecta el codificador rotatorio a Arduino

  1. Conectar Suelo(Alambre negro), Poder(cable rojo), Dirección(Cable verde), Reloj(Cable amarillo) y Cambiar (Alambre blanco) al Codificador rotatorio Módulo (Foto 1)
  2. Conecte el otro extremo de la Cable de tierra(Alambre negro) a Suelo pin de la Arduino tablero (Foto 2)
  3. Conecte el otro extremo de la Alambre de la energía(cable rojo) al 5V pin de potencia de la Arduino tablero (Foto 2)
  4. Conecta el Cable de reloj(Cable amarillo) a Pin digital 2 del Arduino tablero (Foto 3)
  5. Conecta el Alambre de direccion(Cable verde) a Pin digital 3 del Arduino tablero (Foto 3)
  6. Conecta el Cable de interruptor(Alambre blanco) a Pin digital 4 del Arduino tablero (Foto 3)
  7. Foto 4 muestra dónde están los Suelo, 5V Poder, Digital 2, Digital 3 y Digital 4 alfileres de la Arduino Nano.

Paso 3: Inicie Visuino y seleccione el tipo de placa Arduino

Para comenzar a programar el Arduino, necesitarás tener el Arduino IDE instalado desde aquí:

¡Asegúrese de instalar 1.6.7 o superior, de lo contrario este Instructable no funcionará!

los Visuino: http://www.visuino.com también necesita ser instalado.

  1. comienzo Visuino como se muestra en el primera foto
  2. Haga clic en el "Herramientas"en el componente Arduino (Foto 1) en Visuino
  3. Cuando aparezca el cuadro de diálogo, seleccione Arduino Nano como se muestra en Foto 2

Paso 4: En Visuino: agregue un elemento EEPROM entero y configure el pin digital 4 a medida que se levanta

Usar el EEPROM Módulo del componente Arduino, necesitamos agregarle un elemento donde almacenemos el valor. Podemos añadir múltiples elementos de diferentes tipos. En nuestro caso ya que almacenaremos datos enteros, añadiremos Elemento entero. Además, el botón (Interruptor) del codificador rotatorio que utilicé no tiene una resistencia de recuperación incorporada, por lo que habilitaremos la resistencia de recuperación Arduino para Pin digital 4 donde el botón está conectado:

  1. En el inspector de objetos, expanda el "Módulos"propiedad, luego expandir la"EEPROM"sub-propiedad, y haga clic en el""botón al lado del valor del"Elementos" propiedad (Foto 1)
  2. En el "Elementos"editor seleccionar"Entero", Y luego haga clic en"+"para agregar un elemento entero (Foto 2)
  3. Cierra el "Elementos"diálogo
  4. En el inspector de objetos, expanda el "Digital"propiedad, luego expandir la"Digital 4", a continuación, establezca el valor de la"Es pull up"propiedad a"Cierto' (Foto 3)

Paso 5: En Visuino: agregue, configure y conecte el componente del codificador rotatorio

Para leer los datos del codificador rotatorio, agregaremos y conectaremos un Visuino componente:

  1. Tipo "giratorio"en el cuadro Filtro de la caja de herramientas de componentes, seleccione el"Sensor de codificador rotatorio" componente (Foto 1), y suéltalo en el área de diseño.
  2. Opcionalmente, en el Inspector de objetos, establezca el valor de "Intervalo de rebote"propiedad a"5' (Foto 2) Esto suprimirá el ruido de rebote en algunos codificadores giratorios. Si su codificador no es ruidoso, puede dejar el valor de esta propiedad como "0'.
  3. Conecta el "Afuera"pin de la Digital 2 canal del Arduino componente a la "Reloj (A)"pin de la RotaryEncoderSensor1 (Foto 3)
  4. Conecta el "Afuera"pin de la Digital 3 canal del Arduino componente a la "Dirección (b)"pin de la RotaryEncoderSensor1 (Foto 4)

Paso 6: En Visuino: agregue arriba / abajo el componente del contador y establezca el elemento de valor en él

Agregaremos un contador para contar los pulsos del codificador rotatorio. También necesitamos establecer un valor desde el EEPROM en el contador cuando se enciende la alimentación. Para ello tendremos que añadir "Valor ajustado"elemento al contador, y agregue un pin a su propiedad Value:

  1. Tipo "contar"en el cuadro Filtro de la caja de herramientas de componentes, seleccione el"Contador arriba / abajo" componente (Foto 1), y suéltalo en el área de diseño.
  2. Haga clic en el "Herramientas"botón de la UpDownCounter1 componente (Foto 2)
  3. En el "Elementos"editor seleccione la opción"Valor ajustado”, Y luego haga clic en"+"botón de la izquierda para agregar un"Valor ajustado"Elemento (Foto 3)
  4. En el inspector de objetos, haga clic en el Alfiler botón en la parte delantera de la "Valor" propiedad (Foto 4), y seleccione "Integer SinkPin' (Foto 5)
  5. Cierra el "Elementos"diálogo.

Paso 7: En Visuino: conecte el componente del contador arriba / abajo

  1. Conecta el "Arriba"pin de la RotaryEncoderSensor1 componente a la "Arriba"pin de la UpDownCounter1 componente (Foto 1)
  2. Conecta el "Abajo"pin de la RotaryEncoderSensor1 componente a la "Abajo"pin de la UpDownCounter1 componente (Foto 2)
  3. Conecta el "Afuera"pin de la"Modules.EEPROM.Elements.Integer1"elemento de la Arduino componente a la "Valor"pin de entrada de la"Elements.Set Value1"elemento de la UpDownCounter1 componente (Foto 3)
  4. Conecta el "Afuera"pin de la UpDownCounter1 componente a la "En"pin de entrada de la"Modules.EEPROM.Elements.Integer1"elemento de la Arduino componente (Foto 4)
  5. Conecta el "Afuera"pin de la UpDownCounter1 componente a la "En"pin de entrada de la"Serie 0"canal del Arduino componente (Foto 5)

Paso 8: En Visuino: agregue y conecte el botón de rebote y los componentes del inversor

Utilizaremos el Botón (Switch) de la Codificador rotatorio (presionando el eje hacia abajo) para guardar el valor actual del contador en el EEPROM. Como el botón tiene el valor predeterminado de Verdadero y el valor de Falso cuando se presiona, lo invertiremos. Los botones generalmente tienen un ruido de rebote cuando se presionan o se sueltan. Ya hice un tutorial sobre cómo eliminar el ruido, y aquí usaremos el mismo componente del botón de rebote para eliminar el ruido:

  1. Tipo "botón"en el cuadro Filtro de la caja de herramientas de componentes, seleccione el"Botón de rebote" componente (Foto 1), y suéltalo en el área de diseño.
  2. Tipo "invertir"en el cuadro Filtro de la caja de herramientas de componentes, seleccione el"Inversor booleano (no)" componente (Foto 2), y suéltalo en el área de diseño.

  3. Conecta el "Afuera"pin de la Digital 4 canal del Arduino componente a la "En"pin de la Botón 1 componente (Foto 3)
  4. Conecta el "Afuera"pin de la Botón 1 componente a la "En"pin de la Inversor1 componente (Foto 4)
  5. Conecta el "Afuera"pin de la Inversor1 componente a la "Recuerda"pin de entrada de la"Modules.EEPROM.Elements.Integer1"elemento de la Arduino componente (Foto 5)

Paso 9: En Visuino: agregue y conecte el inicio, y los componentes de múltiples fuentes del reloj

Queremos cargar el valor almacenado en el EEPROM en el contador tan pronto como el código Arduino comience a ejecutarse. Para esto podemos utilizar el "comienzo"componente. Genera un evento de reloj cuando el código Arduino comienza a ejecutarse. También queremos cargar el Valor del elemento Establecer valor primero, y luego establecer ese valor en el contador. Para hacer esto, necesitamos que los eventos ocurran en un orden específico Podemos usar el "Reloj Multi Source"para generar múltiples eventos en el orden especificado:

  1. Tipo "comienzo"en el cuadro Filtro de la caja de herramientas de componentes, seleccione el"comienzo" componente (Foto 1), y suéltalo en el área de diseño.
  2. Tipo "reloj"en el cuadro Filtro de la caja de herramientas de componentes, seleccione el"Reloj Multi Source" componente (Foto 2), y suéltalo en el área de diseño.

  3. Conecta el "Afuera"pin de la Inicio1 componente a la a laEn"pin de entrada de la ClockMultiSource1 componente (Foto 3)
  4. Conecta el "Pin 0"pin de salida de la ClockMultiSource1 componente, a la "Recordar"pin de entrada de la"Modules.EEPROM.Elements.Integer1"elemento de la Arduino componente (Foto 4)
  5. Conecta el "Pin 1"pin de salida de la ClockMultiSource1 componente, a la "en"pin de entrada de la"Elements.Set Value1"elemento de la UpDownCounter1 componente (Foto 5)

Paso 10: generar, compilar y cargar el código Arduino

  1. En Visuino, Prensa F9 o haga clic en el botón que se muestra en Foto 1 para generar el código Arduino y abrir el IDE de Arduino
  2. En el Arduino IDE, haga clic en el Subir botón, para compilar y subir el código (Foto 2)

Paso 11: Y jugar …

Puedes ver el proyecto conectado y en ejecución en Foto 1.

En Foto 2 puedes ver el completo Visuino diagrama.

  1. Si abres Terminal serial en el Arduino IDE o Visuino, verá que el valor inicial del contador se restablece a cero (o lo que haya sido almacenado en el EEPROM antes de) (Foto 3)
  2. Si giras el Codificador rotatorio, verá que el valor del contador cambia (Foto 4)
  3. Si presionas el eje de la Codificador rotatorio abajo, el valor actual del contador se guardará en el EEPROM
  4. Si apaga el Arduino y luego lo enciende nuevamente y conéctelo con Terminal serial, verá que el contador se inicializará con el valor guardado en el EEPROM (Foto 5) y en mi caso cambiará inmediatamente de 0 a 23 (El valor que guardé en el EEPROM)
  5. Puede continuar cambiando el contador girando el Codificador rotatorio (Foto 6)

¡Felicidades! Has aprendido a leer y escribir valores en Arduino's EEPROM con Visuino.

También se adjunta el Visuino Proyecto, que he creado para este Instructable. Puedes descargarlo y abrirlo en Visuino: