¿Qué es la tecnología micro-hibrida?


Hace ya algun tiempo desde que el famoso fabricante japones de automóviles Toyota sacara al mercado su exitoso modelo Prius en el que por primera vez veíamos un coche convencional de gran consumo que no solo podia circular con su motor de combustión , sino que también podia circular con su motor eléctrico alimentado por unas baterías que se recargaban no solo con el motor de explosión sino también en las deceleraciones, en la frenada y en los descensos recuperando así de este modo una energia que de otro modo no se utilizaría, ayudando por tanto a colaborar con la reducción de gases contaminantes a la atmosfera y por tanto a minimizar nuestra actividad con el medio ambiente.

El Prius fue lanzado en el mercado japonés en 1997 y fue el primer vehículo híbrido producido en serie siendo lanzado en 2000 lanzado en otros mercados a nivel mundial de modo que desde su lanzamiento en 2009, el Prius de tercera generación ha vendido más de 1 millón de automóviles en el mundo entero hasta septiembre de 2011.

Es importante destacar que el Prius no es un automóvil eléctrico, tanto es así que la tercera versión de este modelo cuenta con un motor de gasolina de 1.8 litros de cilindrada (en las anteriores era de 1.5 litros) que trabaja coordinadamente con un motor eléctrico en una configuración denominada híbrida .

El motor eléctrico que se alimenta de una serie de baterías se recargan mientras el automóvil está en movimiento no requiriendo una fuente externa (problema en el que se enfrentan los vehículos eléctricos que tienen que ser «enchufados» periódicamente para recargarse, aunque al ser uno de los primeros modelos híbridos, hubo talleres en EEUU que lo modificaron para hacerlo enchufable también), ayudando así al motor de gasolina a encontrar condiciones ideales de funcionamiento y, bajo ciertas circunstancias y por determinados lapsos, puede mover independientemente al automóvil, el cual entonces se desplaza sin consumir combustible y reduciendo significativamente el ruido y contaminación producidos.​

Además del bajísimo coeficiente de penetración de la carrocería (0,25), otra estrategia de ahorro de combustible es que el motor de gasolina se apaga en las constantes detenciones que se sufren en el tránsito urbano usando el clásico sistema start-stop que muchos otros fabricante también han implementado en sus vehículos .

Tal fue la aceptación del público del Prius, en general motivado por su bajo consumo y bajas emisiones, que muchos otros fabricantes también sacaron sus versiones hibridas al mercado (destacando Nissan), pero desde entonces, han surgido tres variantes : el hibrido clásico usado en el Toyota Prius ( ahora llamado hibrido eléctrico) , el hibrido enchufable ( con mayor bateria que se puede recargar desde una toma standard de ca) y el nuevo microhíbrido o hibrido ligero, el cual busca protagonismo democratizando la tecnologia hibrida al resto de vehículos.

Estas tres tecnologías similares las pasamos a describir en el siguiente resumen:

Motor híbrido enchufable (eHybrid y GTE)Motor eléctrico para trayectos diarios, motor de combustión para distancias más largas
Potencia de serie: eHybrid 
Potencia deportiva: GTE
Mayor potencia al combinar ambos motores Autonomía eléctrica con el motor eléctrico Conducción sin emisiones con el motor eléctricoCarga en casa Carga en estaciones públicas Etiqueta 0 de la DGT
Híbrido ligero (eTSI)Motor principal de combustión con un aporte extra de energía eléctricaMenor consumo Rendimiento optimizadoEnergía regenerativa con el frenadoEtiqueta ECO de la DGT
HIbrido no enchufableMotor eléctrico para trayectos diarios( hasta unos 50km), motor de combustión para distancias mucho más largasGran autonomía. Se considera un paso intermedio hacia el hibrido enchufableEnergía regenerativa con el frenadoEtiqueta ECO de la DGT


Por su bajo coste de integración, esta tecnología se utilizará de forma masiva en los próximos años, especialmente en Europa, y contribuirá de manera decisiva al cumplimiento de los objetivos de emisiones medias de CO2 en las marcas, por eso es muy probable que su nuevo coche sea un microhíbrido ya que se estima que, en 2030, se producirán 20 millones de unidades con nivel 0.

La compañía Schaeffler trabaja desde hace tiempo en la implantación de esta tecnología 48V clave en las nuevas funcionalidades a los automóviles y en la conducción autónoma, y establece seis niveles de hibridación:

  • Nivel 0. El motor eléctrico va unido al cigüeñal del motor de combustión y aprovecha la energía cinética de las frenadas. Una pequeña batería de iones de litio almacena la electricidad que sirve para apoyar al Start-Stop, mantener la velocidad de crucero o ganar potencia adicional. El aire acondicionado funciona un tiempo incluso con el motor apagado. Frente a un microhíbrido de 12 voltios el ahorro oscila entre un 3,8 y un 6,6% en consumos y emisiones según el tipo de motor eléctrico utilizado.
  • Nivel 1. Se emplea un motor síncrono de imanes permanentes (PSM). La reducción de consumos y emisiones de CO2 es del 8,5% bajo ciclo WLTP, y puede ser mejor si el motor de combustión emplea una avanzada distribución variable, alta relación de compresión
  • Nivel 2. El motor eléctrico va entre el térmico y la caja de cambios. Permite conducir de forma eléctrica a velocidades bajas, como en un atasco, o al aparcar y maniobrar. El módulo híbrido pesa unos 30 kg y rinde 10 kW, con picos máximos de 15 kW durante 20 segundos. Se adapta fácilmente a una disposición de motor transversal de tres cilindros con tracción delantera.
  • Nivel 3. El motor eléctrico se ubica en la salida de la transmisión. El rendimiento llega a 20 kW en modo de generador, y entrega hasta 234 Nm de par máximo en modo motor. Las emisiones de CO2 caen un 15,3%. El módulo híbrido pesa 22 kg y también se puede usar en un vehículo de tracción total con la adición de un embrague multidisco, que transmite hasta 800 Nm.
  • Nivel 4. El motor de combustión mueve el eje delantero y un sistema de transmisión eléctrica mueve el eje trasero. El tren posterior está diseñado de tal manera que hace posible la conducción puramente eléctrica en entorno urbano. Su sistema de tracción total llega a reducir el consumo y las emisiones en un 15,5% respecto a un tracción delantera; y en un 24% respecto a ese mismo modelo con tracción total convencional.
  • Nivel 5. Este nivel también ofrece tracción total, pero de un modo diferente: el propulsor y la transmisión están alojados en el cubo de cada rueda de un eje. En la tecnología de 48 voltios, este nivel sólo es válido para vehículos ligeros de un solo pasajero que deberían llegar en un futuro no muy lejano. Este sistema se considera un microhíbrido, y busca obtener un mejor rendimiento del motor de combustión, prescindiendo de uno o varios motores eléctricos que muevan las ruedas. Es decir, con este sistema no se crea un coche híbrido realmente, ya que no se consigue fuerza motriz con la electricidad generada por el motor ni en la almacenada en la batería.

Los vehiculos Hibridos no enchufables

La principal diferencia entre un, HEV o coche híbrido convencional y un híbrido 48V, es que el primero es capaz de arrancar y moverse empleando exclusivamente energía eléctrica. Un Mild Hybrid, es aquel coche en el que el sistema eléctrico asiste al motor térmico, pero no tiene tanta potencia como para impulsar en solitario al vehículo, aunque a cambio los microhíbridos también tiene menor peso al llevar  menos bateria, son más seguros ( la bateria es de menor voltaje), son más económicos y tienen las misma etiqueta ECO.

A los mandos de un híbrido de 48V, el arranque es más suave y rápido. Cuando entra en funcionamiento el motor eléctrico, es imperceptible para el conductor, aunque este si podrá apreciar el extra de agilidad del coche. Es decir, no se producen “tirones”, vibraciones o ruidos incómodos, pero un microhíbrido, gracias a su tecnología, es un coche dinámico y divertido de conducir.

En ninguno de los casos es necesario enchufar el coche para recargar sus baterías (que no tienen un tamaño excesivo), sino que estas se recargan a través de la frenada regenerativa.

En resumen un sistema Mild Hybrid es más sencillo, ligero y asequible que un híbrido convencional.

Los vehiculos microhibridos

Cuando nos hablan de microhíbridos, coches “mild hybrid”, hibridación “suave” ,coches híbridos de 48 Voltios (aunque también existen versiones más antiguas de 12V), se estarán refiriendo a lo mismo, es decir vehículos que llevando un motor de combustión este es apoyado por un sistema eléctrico de 48 Voltios que asiste a la aceleración, entregando unos 12kW típicos de potencia adicional (los hay de hasta 20kw) , reduciendo el consumo de combustible y las emisiones de CO2 en hasta un mínimo 7% (o incluso hasta un 15% en versiones de 20kw según el fabricante).

Además por su eficiencia, la gama 48V cuentan con la etiqueta ECO de la DGT en Europa por lo que se puede acceder con estos al centro de las ciudades cuando estén activados los protocolos por altos niveles de contaminación y a las zonas de prioridad residencial, contando con ventajas a la hora de aparcar, y descuentos en peajes.

Gracias a la tecnología Mild Hybrid es posible por tanto reducir drásticamente el consumo de combustible y las emisiones. Se trata de un sistema que combina un motor de combustión con uno eléctrico de 48V. El sistema eléctrico, asiste al de combustión, entregando potencia adicional durante las diferentes etapas de la conducción. Además, ayuda a que el motor arranque de manera más rápida y suave. Gracias a ello, se reduce la dependencia del motor de combustión interna, se limita el esfuerzo de los componentes y, por tanto, su desgaste.

En resumen el sistema microhíbrido ofrece las siguientes ventajas:

  • Arranque cómodo. El sistema híbrido suave es particularmente útil para el tráfico urbano. El generador de arranque híbrido suave (MHSG) da apoyo al motor de combustión cuando se reinicia después de que el tráfico se detenga. Después admite un arranque del motor más rápido y suave con un par adicional, aprovechando la energía de la batería de 48V.
  • Aceleración. En aceleración, el generador de arranque da apoyo al motor según la carga del sistema de batería y la entrada del acelerador del conductor. Una vez que se alcanza la velocidad requerida, el sistema cambia al modo neutro y deja de suministrar energía. Como resultado, se reducen las emisiones de CO2 y el consumo de combustible.
  • Carga durante la conducción.A velocidad constante, el sistema está inactivo o actúa como un generador que carga la batería de 48V, según el estado de carga de la batería.
  • Recuperación.En las fases de frenado activo o de marcha libre, el cigüeñal giratorio alimenta el generador de arranque, que luego recupera una potencia máxima de 10 a 12kW. El generador convierte la energía cinética de frenado en electricidad y la devuelve a la batería de 48V.
  • Modo Start-Stop.La función Start-Stop se activa en velocidades inferiores a 30km/h. Con una desaceleración de entre 30 y 0km/h, y con el embrague desacoplado, el motor se apaga por completo.
  • Mas economico,ligero y seguro: Las pequeñas baterías de 48V de iones de litio son de bajo voltaje pero potentes aliviando el peso del vehiculo y reduciendo el peligro de la BT.

En resumen pues se trata de una tecnología que ha venido para quedarse, permitiendo una significativa reducción de los consumos y emisiones de la mayoría de los automóviles, de un modo sencillo y a bajo coste.

Funcionamiento

En general es una tecnología de fácil implantación ( incluso adaptable a un los modelos convencionales de motor de explosión). En comparación con los sistemas híbridos de alto voltaje, el de 48 voltios tiene una destacada relación coste-beneficio, ya que su implementación técnica es sencilla gracias a una concepción modular que facilita su inserción. No requiere los elementos de aislamiento eléctrico necesarios en los híbridos de alta tensión y se puede instalar en automóviles, estructuras de producción y de ensamblaje ya existentes, un aspecto clave para comercializar híbridos a precios muy competitivos.

A la hora de implantar esta tecnologia según el fabricante surgen diferentes modos de llevarla a cabo ( incluso de nombrarla) ,por ejemplo, los Suzuki con denominación SHVS llevan un alternador inteligente que permite generar pequeñas cantidades de energía eléctrica, almacenarlas en una batería y usarlas en momentos puntuales para ganar en eficiencia, pero con un sistema eléctrico de 12 voltios.

En el caso de los microhíbridos, se da mucho valor a la energía cinética obtenida desde la frenada y en otros momentos de la circulación. Esa energía se capta y se almacena en unas baterías de iones de litio. Esta electricidad se convierte a un voltaje de 48 voltios ( bastante superior a los 12 voltios que suele tener el sistema eléctrico de los coches).

Los microhíbridos permiten ofrecer electricidad desde una fuente distinta del motor, reduciendo el consumo lo cual permite que el coche no tenga que conseguir energía eléctrica para elementos que suelen utilizar la electricidad generada por el alternador del coche, así que este tiene que trabajar menos y en consecuencia, el consumo puede reducirse. No demasiado, esto es cierto, pero sí que permitirá que se pueda alimentar elementos como los compresores eléctricos de la climatización y otros que están presentes en los coches actuales.

Esta energía eléctrica proviene de este generador de 48 voltios, que evita el consumo de electricidad desde el motor y mejora el rendimiento de esos elementos alimentados a través de este nuevo sistemas. ¿Qué se conseguirá con estos microhíbridos? Pues que modelos que por tamaño y prestaciones no pueden pasar a ser híbridos de pleno derecho puedan beneficiarse de la electrificación que está imponiéndose en el mercado y ofrecer a sus usuarios una ligera disminución en el consumo y en las emisiones.

La nueva hibridación “suave” que se está introduciendo poco a poco va más allá, electrificando la plataforma de los coches convencionales con un sistema de 48 voltios capaz de aportar una potencia suplementaria de hasta 20 kW sin realizar grandes cambios. Además, va a permitir una reducción media de consumos y emisiones de CO2 de un 15%, según el nuevo ciclo WLTP. Esta normativa va a hacer que los fabricantes ofrezcan cifras de homologación más próximas a la realidad y se aplicará a todos los coches matriculados a partir de septiembre de 2018.

Con el motor híbrido ligero (eTSI), tendremos toda la autonomía y adrenalina de la combustión con un extra de potencia eléctrica en momentos específicos. ¿Cómo? el motor de combustión estará siempre en funcionamiento y una batería eléctrica ayudará a la hora de arrancar, encender el climatizador o poner en marcha la radio ganando así en eficiencia.

Por ejemplo, a la hora de emprender la marcha, el motor de arranque de 12kW entra en funcionamiento para ayudar al motor de combustión aún está frío. En el momento que se calienta, aporta un pequeño empuje eléctrico para que la salida sea más suave y menos exigente para la mecánica del coche.

En las aceleraciones, el sistema de 48V también se conecta para ayudar al motor de combustión con un extra de potencia. Así, se aumenta la velocidad de respuesta y el dinamismo, al mismo tiempo que reducimos el consumo y las emisiones hasta en un 7%, según ciclo WLTP.

Durante las frenadas, la unidad MHSG que equipa el sistema, recupera parte de la energía, transformándola en eléctrica y almacenándola en las baterías de 48 voltios para un eficiente aprovechamiento posterior.


En la fase de recuperación de energía, a velocidad inferior a 30 km/h, el embrague se mantiene acoplado para transformar la energía en electricidad y una vez recuperada la energía y con la batería llena, el embrague se desacopla y el motor de combustión deja funcionar al eléctrico evitando el gasto de combustible.

A demanda del conductor y cuando las circunstancias lo requieran, el sistema de 48V volverá a aprovechar toda su potencia inmediatamente, de forma imperceptible para el conductor. Así, por ejemplo, en los atascos -cuando los arranques y las paradas son más frecuentes-, estaremos circulando sin consumir prácticamente combustible ni emitir gases contaminantes.

Vemos por tanto una cierta simplicidad de funcionamiento, que básicamente se traduce en la recuperación de energía en las fases de deceleración y frenado. Luego, esa energía se utiliza en tantas situaciones de conducción como sea posible: aumento de potencia, uso puramente eléctrico, para mantener la velocidad de crucero… De esta forma, el motor de combustión interna se desconectará y conectará entre 600.000 y 900.000 veces durante su vida útil, dependiendo de la estrategia de conducción adoptada.

Futuro

Cuidar el medio ambiente debería ser una prioridad, y por ello, los fabricantes de coches a nivel mundial han de cumplir protocolos de control de emisiones cada vez más exigentes .Se ha hablado que la tecnología microhíbrida que no solo se integrará este sistema en coches de gama media y alta, sino que hay pequeños urbanos que podrían contar con él. Vemos que ya no serán híbridos, pero la electricidad tendrá una presencia importante a lo largo de los próximos años (y de ahí a la completa electrificación… un par de pasos más). De hecho ya en la actualidad cada vez encontramos más alternativas a la movilidad tradicional, como demuestran la gama ECO de muchos fabricantes, con opciones para todos los gustos. En un futuro cercano, los coches ecológicos (eléctricos, híbridos, híbridos enchufables y de pila de combustible) serán los grandes protagonistas de una movilidad sostenible y más respetuosa con el medio ambiente. Los microhíbridos, tendrán un papel clave por sus características.

El sistema de 48V reduce de forma drástica las emisiones de CO2, por lo que estas versiones cuentan con una etiqueta medioambiental ECO. Esto supone que con estos se pueden acceder al centro de las ciudades durante los episodios de contaminación y a las zonas de prioridad residencial, tiene reducciones o exenciones en el pago de parquímetros y en el impuesto de tracción de mecánica (IVTM), y descuentos en peajes. La tecnología Híbrida 48V es mucho más accesible, ya que tiene un coste más contenido que los híbridos o híbridos enchufables convencionales. Además, el sistema de 48V es una alternativa eficiente para reducir de forma decisiva las emisiones de CO2 de un modo sencillo y a bajo coste.

En comparación con los sistemas híbridos de alto voltaje, el microhíbrido de 48 voltios resulta más sencillo a nivel técnico y de funcionamiento, por lo que resulta más asequible. Además, este sistema no requiere los elementos de aislamiento eléctrico necesarios en los híbridos de alta tensión, por lo que estrictamente deberían ser más seguros que incluso los eléctricos puros al estar alimentados por una tensión en CC usada desde hace décadas en equipos de telecomunicaciones por su bajo riesgo.


Por todas sus ventajas, esta tecnología se utilizará de forma masiva en los próximos años como lo demuestran las versiones modernas de muchos vehículos especialmente en Europa, y contribuirá de manera decisiva al cumplimiento de los objetivos de emisiones medias de CO2 y a que los propietarios de este tipo de coches, reduzcan de manera significativa su consumo.

Anuncio publicitario

ESP32 económico


Como novedad en el mercado el fabricante alemán AZ-Delivery , muy conocido en Amazon, ha creado el Módulo Placa de Desarrollo ESP32 NodeMcu WiFi CP2102 , el cual tiene integra el potente Microcontrolador ESP32 instalado, lo cual, como podemos deducir ,es ideal para prototipos rápidos sin desembolsar una gran cantidad de dinero.

El AZ-Delivery Dev Kit C ha sido diseñado por Espressif, para ofrecer una fácil introducción a la programación del nuevo procesador ESP32-Dual-Core. Además del procesador mencionado dual core ,integra una serie de nuevos sensores y funciones que la hacen muy interesante en el desarrollo del IoT.

Como es fàcil deducir, esta nueva placa de desarrollo ESP32 permite la dinámica creación de prototipos con una sencilla programación a través de un script Lua, mediante el Arduino-IDE o incluso otros IDES de desarrollo ( por ejemplo ATOM).

Como todos la familia ESP32, una de las funciones más destacables aparte de los puertos de E/S es que integra funciones Wi-Fi y Bluetooth.

Otra característica es el consumo ultra bajo de energía gracias a que cuenta con chips Bluetooth Wi-Fi de modo dual de 2,4 GHz y TSMC, así como tecnología de bajo consumo de 40 nm.

El módulo tiene 38 pines y ofrece más funciones que un módulo de 30 pines. Es más pequeño y más conveniente de usar, pero lo que es importante destacar es que la serigrafia ( o pinout) de esta placa, como podemos más abajo, no es exactamente la misma que otras placas basada en ESp32

De igual manera que en el modelo predecesor ESP8266, la funcionalidad WLAN está implementada directamente en el SoC, pero con funcionalidad Bluetooth adicional (incl. BLE).
El procesador ESP32 que se utiliza combina una CPU con 2 núcleos Tensilica LX6, con una frecuencia de hasta 240 MHz, y 512 Kilobytes de SRAM en un único chip microcontrolador. Además, integra una unidad de radio para WLAN (según 802.11bgn) y Bluetooth (Classic y LE).

En casi de usar el IDE de Arduino tenemos que configurarlo para que reconozca esta placa. En «Preferencias» tenemos que agregar la opción «Gestor de URLs adicionales de tarjetas» la siguiente URL: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json


Luego en la opción «Herramientas» y luego «Placas» tenemos que seleccionar la placa en cuestión dentro del apartado «ESP32 Dev Module» (si no lo tiene clar del todo puede consultar la documentación en: https://github.com/espressif/arduino-esp32)

Una vez realizado los pasos anteriores , la tarjeta que tenemos seleccionar es «ESP32 DEV MODULE«. pero esto no tiene nada que ver con los puertos: en teoría el driver USB de esta placa debe ser CP2102 por lo que lo debemos tenerlo instalado en nuestro ordenador. Si no nos reconoce el puerto es porque no lo tenemos cargado o no está actualizado, así que ese ese es un paso importante para poder empezar a trabajar con esta versión del ESP32.

Lo normal es que debería funcionar sin problema seleccionando ESP32 Dev Module en las Tools del IDE, pero en caso de problemas compruebe que el puerto USB seleccionado este activo, tenga los permisos de acceso necesarios y por supuesto tenga instalado el driver. Desgraciadamente este tipo de problemas es bastante corriente y suele tener que ver con las actualizaciones de las tablas de dispositivos de su ordenador más que con problemas del IDE de Arduino.

En esta versión hay dos pequeñas problemas ( pero solventables):

  • Al pulsar el botón de bot para grabar la placa a veces no responde. Este problema es muy habitual en las placas ESp32 e incluso en las versiones más antiguas, pero se soluciona colocando un condensador electrolítico de 10uf/25v entre las patillas EN y GND respetando la polaridad.
  • Está mal serigrafiado un pin GND ( poner CMD….¿se parece no? .
  • El micro es V2, o es lo que pone en arduino después de compilar el sketch. Hubiese sido interesante disponer de la placa Dev C V4 que está agotada y es más como la original de Espressif.
  • Esta placa es teóricamente un clon de DevKitc para ESP32 pero sin embargo, no hay diferencias insignificantes, y NO documentadas. Aparte de la serigrafía ya comentada ( y tambien en un caso incorrecto del pin G23 que es realmente G33), la principal diferencia son los LED incorporados. El DevKitc original tiene un LED de encendido rojo (siempre encendido cuando está encendido) y un LED azul de «aplicación» conectado al GPIO 2, que se puede utilizar para señalar algo: es el que parpadea con el programa de prueba «parpadea». Esta versión NO tiene el LED de encendido o el LED azul (por ejemplo, el boceto de «parpadeo» no funciona): tiene un LED rojo que está conectado al GPIO 1 que es el de la serie, por lo que parpadea con la actividad del puerto serie. Si quiere usarlo desde su propio boceto, mientras tanto tiene que adaptarte para ordenarlo en lógica denegada (LOW hace que se encienda), entonces pierde la funcionalidad del serial. O viceversa: si utiliza el serial (por ejemplo serial.print), el LED no funciona. Es molesto porque el LED programable a bordo es muy útil especialmente en la depuración, y es aún más molesto porque esto no está documentado y, sobre todo al principio se pierde tiempo.

Gestión de memorias microsd con arduino


Es obvio que las SD se han convertido en algo indispensable en nuestra vida digital , estando presentes en infinidad de dispositivos electrónicos como smartphones, cámaras digitales, cámaras de seguridad, reproductores multimedia, ordenadores, microcontroladores, y un larguísimo etcétera.

Por otro lado, de vez en cuando nos encontramos con proyectos basados en Arduino que necesitan una forma de almacenar una gran cantidad de datos de forma escalable y eficiente ( es decir, necesitamos construir lo que viene a llamarse un registrador de datos o en ingle «datalogger»), siendo lo ideal por tanto usar con nuestro microntrolador precisamente estas tarjetas SD o micro SD, dada su gran capacidad para empaquetar GigaBytes de datos en un espacio más pequeño que una moneda.

En este post vamos a ver que en realidad leer o escribir datos en una SD ( o microsd) en el entorno de la familia Arduino es en realidad muy sencillo gracias a las libreria SD y tambien la SPI para la comunicacion con el lector de SD.

Descripción general del hardware

Para este proyecto se ha probado el lector de sd de AZDelivery el cual nos proporciona una expansión fácil y económica del espacio de almacenamiento mediante la ranura SD. La comunicación es muy fácil con el microcontrolador a través del protocolo SPI (como vamos a ver ) y soporta tarjetas Micro SD (2G), tarjetas Micro SDHC (32G) (tarjeta de alta velocidad). Además el módulo lee todos los datos contenidos en la tarjeta SD y se puede conectar fácilmente a varios tipos de microcontroladores ( además si lo compramos a este fabricante incluye un E-Book que proporciona información útil sobre cómo comenzar su proyecto, ayuda con una configuración rápida y ahorra tiempo en el proceso de configuración proporcionándonos una serie de ejemplos de aplicación, guías de instalación completas y bibliotecas, etc.).

El módulo de la tarjeta micro SD contiene dos componentes principales que, sin duda, hacen que sea fácil agregar el registro de datos a su próximo proyecto Arduino:

  • El voltaje de funcionamiento de cualquier tarjeta micro SD estándar es de 3,3 V. Por lo tanto, no podemos conectarlo directamente a circuitos que usan lógica de 5V. De hecho, cualquier voltaje que supere los 3,6 V dañará permanentemente la tarjeta micro SD. Es por eso; el módulo tiene un regulador de caída ultrabaja incorporado que convertirá los voltajes de 3,3 V a 6 V a ~3,3 V.
  • También hay un chip 74LVC125A en el módulo que convierte la lógica de la interfaz de 3,3 V-5 V a 3,3 V. Esto se llama cambio de nivel lógico. Eso significa que puede usar esta placa para interactuar con microcontroladores de 3,3 V y 5 V como Arduino.

En realidad, hay dos formas de interactuar con tarjetas micro SD: modo SPI y modo SDIO. El modo SDIO es mucho más rápido y se usa en teléfonos móviles, cámaras digitales, etc, pero desgraciadamente este modo es más complejo y requiere la firma de documentos de confidencialidad( por esa razón, es probable que los aficionados como nosotros nunca encuentren el código de interfaz del modo SDIO). En su lugar, cada módulo de tarjeta SD se basa en el modo SPI de «menor velocidad y menos sobrecarga» que es fácil de usar para cualquier microcontrolador (como Arduino).

Asignación de pines del módulo de la tarjeta Micro SD

El módulo de la tarjeta micro SD que vamos a usar es bastante simple de conectar. Tiene seis pines:

  • VCC :El pin que suministra energía para el módulo y debe conectarse al pin de 5V en el Arduino.
  • TGNG (TIERRA): debe estar conectado a tierra de Arduino.
  • MISO (Master In Slave Out): es la salida SPI del módulo de tarjeta Micro SD.
  • MOSI (Salida maestra Entrada esclava): es la entrada SPI al módulo de tarjeta Micro SD.
  • SCK (reloj serie): pin acepta pulsos de reloj que sincronizan la transmisión de datos generada por Arduino.
  • CS (Selección de esclavo): es utilizado por Arduino (Master) para habilitar y deshabilitar dispositivos específicos en el bus SPI.

Preparación de la tarjeta micro SD

Antes de insertar la tarjeta micro SD en el módulo y conectarla al Arduino, debe formatear correctamente la tarjeta. Para la biblioteca Arduino que discutiremos, y casi todas las demás bibliotecas SD, la tarjeta debe estar formateada FAT16 o FAT32.

Si tiene una tarjeta SD nueva, es probable que ya esté formateada previamente con un sistema de archivos FAT. Sin embargo, es posible que tenga problemas con el formato de fábrica de la tarjeta o, si es una tarjeta antigua, debe reformatearse. De cualquier manera, siempre es una buena idea formatear la tarjeta antes de usarla, ¡incluso si es nueva!

Es recomendable utilizar la utilidad oficial de formateo de tarjetas SD : escrita por la asociación SD , ¡resuelve muchos problemas que surgen con un mal formateo! Descargue el formateador y ejecútelo en su ordenador, simplemente seleccione la unidad correcta y haga clic en FORMATEAR.

Captura de pantalla del formateador SD

Cableado: conexión del módulo de tarjeta Micro SD a Arduino

Ahora que su tarjeta está lista para usar, ¡podemos conectar la placa de conexión micro SD!

Para empezar, inserte el módulo de la tarjeta micro SD en una placa de pruebas. Conecte el pin VCC en el módulo a 5V en el pin Arduino y GND a tierra. Ahora nos quedamos con los pines que se usan para la comunicación SPI. Como las tarjetas micro SD requieren una gran cantidad de transferencia de datos, brindarán el mejor rendimiento cuando se conecten a los pines SPI del hardware en un microcontrolador. Los pines SPI del hardware son mucho más rápidos que «bit-banging» del código de la interfaz usando otro conjunto de pines.

Tenga en cuenta que cada placa Arduino tiene diferentes pines SPI que deben conectarse en consecuencia. Para placas Arduino como UNO/Nano, esos pines son digitales 13 (SCK), 12 (MISO) y 11 (MOSI). También necesitará un cuarto pin para la línea ‘chip/slave select’ (SS). Por lo general, este es el pin 10, pero en realidad puede usar cualquier pin que desee.

Si tiene una placa Mega, ¡los pines son diferentes! Querrá usar digital 50 (MISO), 51 (MOSI), 52 (SCK) y 53 (SS). Consulte la siguiente tabla para una comprensión rápida.

MOSIMISOSCKCS
Arduino uno11121310
Arduino nano11121310
Arduino mega51505253

En caso de que esté utilizando una placa Arduino diferente a la mencionada anteriormente, es recomendable consultar la documentación oficial de Arduino antes de continuar.

¡Eso es todo! ¡Ya estamos listos para registrar algunos datos!

Código Arduino: prueba del módulo de la tarjeta SD con CardInfo

Comunicarse con una tarjeta SD es un montón de trabajo, pero afortunadamente para nosotros, Arduino IDE ya contiene una biblioteca muy buena llamada SD que simplifica la lectura y escritura en tarjetas SD.

Si lo prefiere hay un ejemplo en el Ide de Arduino que se puede ver en el submenú Ejemplos y el boceto de ejemplo CardInfo.

Bosquejo SD Library CardInfo en Arduino IDE

Este boceto no escribirá ningún dato en la tarjeta. Simplemente le dice si logró reconocer la tarjeta y muestra información al respecto. Esto puede ser muy útil cuando se trata de averiguar si se admite una tarjeta SD. ¡Antes de probar cualquier tarjeta nueva, le recomendamos que ejecute este boceto una vez!

Vaya al comienzo del boceto y asegúrese de que la línea chipSelect esté correctamente inicializada, en nuestro caso estamos usando el pin digital #10, ¡así que cámbielo a 10!

Inicializar ChipSelect CardInfo Sketch en Arduino IDE

Bien, ahora inserte la tarjeta SD en el módulo y cargue el boceto. Tan pronto como abra el Serial Monitor, probablemente obtendrá algo como lo siguiente:

Salida de boceto de CardInfo en Arduino IDE - Trabajando

Puede que le parezca un galimatías, pero es útil ver que el tipo de tarjeta es : en el ejemplo se ha utilizado una SDHC (SD de alta capacidad), el tipo de volumen es FAT32 y el tamaño de la tarjeta es de unos 4 GB, etc.

Si tiene una tarjeta defectuosa, lo que parece ocurrir más con las versiones clonadas, es posible que vea:

Salida de boceto de CardInfo en Arduino IDE - Tarjeta corrupta mala

La tarjeta respondió en su mayoría, pero los datos son todos malos. Vea que no hay ID de fabricante / ID de OEM y la ID de producto es ‘N/A’. Esto muestra que la tarjeta devolvió algunos errores SD. Es básicamente una mala escena (si obtiene algo como esto, puede intentar reformatearlo o si todavía se descascara, debe desechar la tarjeta).

Finalmente, intente sacar la tarjeta SD y ejecute el boceto nuevamente, obtendrá lo siguiente:

Salida de boceto de CardInfo en Arduino IDE: error de inicialización

Como vemos ni siquiera se pudo inicializar la tarjeta SD. Esto también puede suceder si hay un error de cableado o si la tarjeta está dañada permanentemente.

Si el cableado es correcto, pero la tarjeta SD no está formateada correctamente, obtendrá algo como esto:

Salida de boceto de CardInfo en Arduino IDE - Sin formato adecuado

Código Arduino: lectura y escritura de datos

Teniendo en cuenta que ha inicializado con éxito la tarjeta SD, pasaremos a nuestro próximo experimento. El siguiente boceto hará una demostración básica de cómo escribir y leer datos de un archivo. Pruebe el boceto antes de comenzar su desglose detallado.

#include <SPI.h>
#include <SD.h>

File myFile;

// change this to match your SD shield or module;
const int chipSelect = 10;

void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin()) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);

  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
    // close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }

  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}

void loop()
{
  // nothing happens after setup
}

Una vez cargado el código, si todo está bien, aparecerá lo siguiente en el monitor serial.

Tarjeta Micro SD Biblioteca SD Salida en monitor serie

Si reinicia su Arduino y deja que el boceto se ejecute nuevamente; los nuevos datos escritos se agregan al archivo sin sobrescribir los datos anteriores.

Tarjeta Micro SD Biblioteca SD Segunda salida en monitor serie

Explicación del código:

El boceto comienza con la inclusión de la biblioteca SD integrada y la biblioteca SPI que nos permite comunicarnos fácilmente con la tarjeta SD a través de la interfaz SPI.

#include <SPI.h>
#include <SD.h>

Una vez incluidas las librerías, lo siguiente que hacemos es declarar el pin Arduino al que chipSelect (CS)está conectado el pin del módulo de la tarjeta SD. El pin CS es el único que no está realmente fijo como cualquiera de los pines digitales de Arduino. No necesitamos declarar otros pines SPI ya que estamos usando una interfaz SPI de hardware y estos pines ya están declarados en la biblioteca SPI. Después de declarar el pin, creamos un objeto myFile , que se usará más adelante para almacenar datos en la tarjeta SD.

const int chipSelect = 10;
File myFile;

A continuación, en la setup()sección: Iniciamos la comunicación serial para mostrar los resultados en el monitor serial. Ahora, utilizando la SD.begin()función, inicializaremos la tarjeta SD y, si la inicialización es exitosa, la declaración » if » se vuelve verdadera y la inicialización de String «está lista». ” se imprime en el monitor serie, de lo contrario, la cadena “ ¡falló la inicialización! ” se imprime y el programa termina.

Serial.begin(9600);
  Serial.print("Initializing SD card...");
  if (!SD.begin()) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

A continuación, la SD.open()función abrirá el archivo llamado » test.txt «. En nuestro caso, como dicho archivo no está presente, se creará. El otro parámetro FILE_WRITE abre el archivo en modo de lectura y escritura.

myFile = SD.open("test.txt", FILE_WRITE);

Una vez abierto el archivo imprimiremos en el monitor serial el mensaje “ Writing to test.txt… ” y luego usando la myFile.println()función escribiremos el texto “testing 1, 2, 3”. en el archivo. Después de eso, debemos usar la close()función para asegurarnos de que los datos escritos en el archivo se guarden.

  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
    myFile.close();
    Serial.println("done.");
  } else {
    Serial.println("error opening test.txt");
  }

Ahora vamos a leer el mismo archivo para verificar si la operación de escritura fue exitosa. Para hacer eso, usaremos la misma función, SD.open()pero esta vez como el archivo “ test.txt ” ya ha sido creado, la función simplemente abrirá el archivo. . Luego, usando la myFile.read()función, leeremos el archivo y lo imprimiremos en el monitor serie. La read()función en realidad lee solo un carácter a la vez, por lo tanto, necesitamos usar el ciclo «while» y la función myFile.available()para leer todos los caracteres en el archivo. Al final tenemos que cerrar el archivo.

myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    myFile.close();
  } else {
    Serial.println("error opening test.txt");
  }

Dado que este es solo un boceto de demostración para demostrar cómo leer y escribir archivos, no tiene sentido ejecutar el código varias veces, por lo que todo el código se colocó en la setup()función que se ejecuta solo una vez, en lugar de ponerlo en una loop()función que se ejecuta y otra vez

void loop() 
{
}

Algunas cosas a tener en cuenta

  • Puede usar print() println() funciones como objetos en serie, para escribir cadenas, variables, etc.
  • Read()solo devuelve un carácter a la vez. ¡No lee una línea completa o un número!
  • ¡Debes tener close() los archivos cuando hayas terminado para asegurarte de que todos los datos se escriban de forma permanente! Esto reduce la cantidad de RAM utilizada.
  • Puede abrir archivos en un directorio. Por ejemplo, si desea abrir un archivo en el directorio, puede llamar a SD.open("/myfiles/example.txt"). Tenga en cuenta que la ruta del archivo es relativa.
  • La biblioteca de la tarjeta SD no admite ‘nombres de archivo largos’. En su lugar, utiliza el formato 3 para los nombres de archivo , ¡así que mantenga los nombres de archivo cortos! Por ejemplo, datalog.txt está bien, pero «My Sensor log file.text» no lo está.
  • También tenga en cuenta que los nombres de archivo no distinguen entre mayúsculas y minúsculas, por lo que datalog.txt es el mismo archivo que DataLog.Txt es el mismo archivo que DATALOG.TXT

Otras funciones útiles en SD Library

Funciones utilizadas con el objeto SD

Hay algunas funciones útiles que puede usar con el objeto SD . Algunos de ellos se enumeran a continuación:

  • Si solo desea verificar si existe un archivo, use exists("filename.txt") cuál devolverá verdadero o falso.
  • Puede eliminar un archivo llamando remove("unwanted.txt") ¡cuidado! Esto realmente lo eliminará, y no hay una ‘Papelera de reciclaje’ para sacarlo.
  • Puede crear un subdirectorio llamando a mkdir("/mynewdir") mano cuando desee rellenar archivos en una ubicación. No pasa nada si ya existe pero siempre puede llamar SD.exists() arriba primero.

Funciones utilizadas con el objeto Archivo

Además, hay algunas funciones que puede usar con objetos de archivo :

  • Puede seek()en un archivo. Esto moverá el cursor de lectura/escritura a una nueva ubicación. Por ejemplo seek(0) , lo llevará al principio del archivo, ¡lo cual puede ser muy útil!
  • Así mismo puedes llamar al position()que te indicará en qué parte del expediente te encuentras.
  • Si desea saber el tamaño de un archivo, llame size() para obtener la cantidad de bytes en el archivo.
  • Los directorios/carpetas son archivos especiales, puede determinar si un archivo es un directorio llamando isDirectory()
  • Una vez que tenga un directorio, puede comenzar a revisar todos los archivos en el directorio llamando openNextFile()
  • Puede terminar necesitando saber el nombre de un archivo, por ejemplo, si llamó openNextFile()a un directorio. En este caso, llame al name()que devolverá un puntero a la matriz de caracteres con formato 8.3 que puede hacer directamente Serial.print() si lo desea.

Por cierto , aunque pueda parecer extraño es más económico comprar varios módulos que un único ( por unos 2€ en Amazon )