usuarios de Akai mpc's y más cosas

Entradas etiquetadas como ‘LC’

Adaptando el módulo SD de LC Studio para Arduino Uno

Recientemente he adquirido un módulo lector de tarjetas SD para conectar con Arduino, de la marca LC Studio en mi proveedor de componentes electrónicos local. Me dijeron que era compatible con Arduino y como su precio era muy económico me la lleve muy contento para casa.

tarjeta sd LC

Un módulo para almacenar y leer datos desde una tarjeta SD es muy útil. Puedes almacenar los datos leídos por los sensores para posteriormente procesarlo o bien leer desde la tarjeta SD las posiciones de un robot previamente almacenadas, por ejemplo.

Así cuando dispuse a conectar la LC Studio, según la documentación de Arduino nos dice que los pines para el protocolo SPI se conectan de esta manera:

Pines Arduino Uno Pines tarjeta SD LC Studio
11 MOSI
12 MISO
13 SCK
10 (configurable) CS

Una vez realizado el montaje, veo que con los programas de ejemplo que vienen con la librería de Arduino para la tarjeta SD me da todo tipo de errores. En un principio pensé que estaba algo mal en el cableado, pero cerciorándome que todas las conexiones estaban correctas, me di cuenta que los errores se debían a envío incorrecto de los comandos para leer o escribir en la tarjeta SD, con el resultado de que me corrompía los ficheros de la tarjeta SD. Una rápida búsqueda por internet me llevó a la siguiente página: http://www.extremadura-web.es/Blog/2012/11/16/cableando-sd-lc-studio-en-arduino-uno-y-mega/

Sacando como conclusión que el proveedor Chino LC Studio había implementado en esta tarjeta el manejo de pines con niveles +3.3v y como Arduino Uno tiene implementado por lo pines de salida la lógica de +5v, con lo que ya teníamos localizado el error que resulta bajo el protocolo SPI.

En el enlace que puse más arriba solucionan el problema de la lógica desde +5 a +3.3v mediante un sencillo divisor de tensión, pero en vista que tendría que poner un de par resistencias por cada pin. He pensado que podría usar un integrado que me solucione la papeleta. Buceando por internet he encontrado el CD4050.

image01

Es un desplazador de niveles de voltaje en función del voltaje de referencia, que le entra por la patilla 1. Como vemos tenemos hasta 6 entradas/salidas para adaptar los niveles de tensión.  De esta forma, si alimentamos la patilla 1 con 3.3v y metemos, por ejemplo, lógica de 5v por la patilla2, obtendríamos lógica de  3.3v por la patilla de salida 3. Perfecto. Manos a la obra.

Lo primero es realizar el esquema de las conexiones, para ello armado con fritzing realizo la ruta de conexiones que voy a seguir:

sd_LC_level_shifter

 

Para probar si todo va bien realizo el montaje sobre la protoboard:

20140719_204945

20140719_204954

Y aquí como conectamos al integrado 4050

20140719_205111

Y las conexiones sobre Arduino Uno

20140719_205038

Cargamos el  código de ejemplo que viene con la librería SD y hacemos las comprobaciones de que todo va correcto.

No olvidarnos de configurar el pin de selección CS como 10 según nuestro montaje

20140719_205217

Vemos que lee y escribe en la tarjeta SD de forma correcta

20140719_205244

Ahora queda integrar todo esto en una shield que podamos conectar fácilmente a nuestro Arduino, para ello he realizado esta sencilla implementación a una sola cara para que podamos realizarla en nuestra casa.

 

placa01

La representación 3D de la placa quedaría algo como así:

20140719_205352placa03


Nube de etiquetas