Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Electrónica

Cómo leer el sensor de temperatura de la Raspberry Pi Pico

Leyendo las especificaciones de la Raspberry Pi Pico me llamó la atención que venía equipada con un sensor de temperatura en el propio chip, así que me puse a buscar información. En este artículo os quiero mostrar cómo acceder a él y de camino cómo utilizar el conversor analógico/digital (ADC). El siguiente esquema muestra cómo está conectado el ADC a los GPIO y al sensor de temperatura interno. Es decir, tenemos un multiplexor de cuatro entradas que permite seleccionar la señal de entrada para el ADC. En nuestro caso, la que nos interesa es la 4, que es la fuente de tensión proveniente del sensor. Para seleccionar la entrada en el multiplexor usamos la siguiente función. adc_select_input(4); Para hacernos una idea, en la página 574 del datasheet del RP4020 nos dice que esta tensión es de 0.706V a 27 grados centígrados. La fórmula para aproximar la temperatura con respecto a esta tensión es T = 27 - (ADC_voltage - 0.706)/0.001721 También hay que poner a 1 el registro...

Primeros pasos con Raspberry Pi Pico

Hace pocos días la fundación Raspberry Pi sacaba al mercado una curiosa plaquita llamada Raspberry Pi Pico. Curiosa porque se separa de lo que venían haciendo. Es decir, nos encontramos ante una placa al estilo del Arduino nano, pero comandada por el microcontrolador RP4020, basado en el ARM Cortex M0+ de doble núcleo, que ha sido también diseñado por ellos. En la placa de desarrollo nos ofrecen 26 GPIOs con soporte para SPI, I2C, ADC, UART y PWM. Acompañado de una completísima documentación y un entorno de desarrollo basado en Visual Studio Code. Y lo que es mejor, sólo por 4 dólares. La instalación del entorno de desarrollo oficial es muy sencilla y viene bien explicada en la documentación. Aunque si, como yo, prefieres la línea de comando, en este artículo os explicaré como poner en marcha un proyecto para este microcontrolador y programarlo con vuestro editor favorito. En este caso, para equipos con Debian y derivados. Antes de nada necesitaremos instalar el toolchain para...

Display de 7 segmentos con 74LS247

Ya hemos hablado del control de un display de siete segmentos en un artículo anterior (implementando la lógica de control con una FPGA). Las bases son las mismas, y si buscas, encontraras por la red miles de tutoriales sobre como gestionar estos display con Arduino. La verdad es que no es difícil, pero le veo un par de inconvenientes. Por un lado, si te fijas en la figura de arriba, para gestionar un display son necesarias ocho conexiones digitales entre el Arduino y el display . Y eso sólo para un display, si necesitas más es probable que no tengamos suficientes pines para gestionarlos. Otra pega es que tendremos que programar la lógica del display en el propio Arduino. Es decir, que si queremos mostrar un número, el programa tendrá que evaluar qué LEDs han de encenderse y cuales han de apagarse, lo que requiere tiempo de proceso y un consumo de energía relativamente alto para ser una gestión secundaria (querremos que el microcontrolador se ocupe de tareas menos mundan...

Semáforos y más semáforos

Que levante la mano quién no haya hecho el típico circuito de semáforo para probar una plataforma o un microcontrolador nuevo. El semáforo se podría considerar como el HolaMundo de la electrónica. Cualquier alumno de tecnología o de ingeniería podrá corroborar lo que digo. Sobre este particular, José Antonio Vacas dio una interesante charla en Malakabot 2017 que os dejo aquí debajo. Está claro que como ejemplo inicial, el semáforo puede ser un diseño útil, pero después hay que ir más allá. Si andáis faltos de imaginación, José Antonio os deja en su GitHub algunas ideas que os pueden servir de inspiración Pero si pensabais que tras todo este movimiento se habían acabado los semáforos, estáis muy equivocados. Tras esto de los semáforos se encuentra un interesante reto propuesto por Cesar García del podcast La Hora Maker y David Cuartielles . Se trata de un proyecto colectivo para realizar semáforos en la mayor cantidad de modos posible. Dejo que ellos mismos os presente...

Protocolo I2C y Arduino.

El protocolo I2C (Inter-integrated Circuit) es de uso común en multitud de dispositivos electrónicos y sensores. Permite la comunicación serie entre distintos elementos, por ejemplo, entre un microcontrolador y una pantalla LCD. Te preguntarás qué ventaja puede aportar I2C sobre un enlace serie normal (tipo RS-232 ). La primera diferencia es que I2C sigue un esquema maestro-esclavo en el que un maestro (por ejemplo, un microcontrolador) puede conectarse a múltiples esclavos (hasta un total de 1008 dispositivos). Otra diferencia es que, al contrario que RS-232, se trata de un protocolo síncrono, lo cuál simplifica bastante la circuitería y evita el uso de componentes adicionales como una UART . Existen alternativas como SPI ( Serial Peripheral Interface ) que permiten la interconexión de más de un dispositivo, sin embargo, cada dispositivo que se añade complica el conexionado, ya que, como se ve en el siguiente esquema, se necesita una señal SS (Slave Select) para seleccionar el di...

Multiplexado de displays de siete segmentos con VHDL

Cuando un diseño utiliza más de un display de siete segmentos es interesante multiplexarlos para ahorrar en conexiones. Si no lo hacemos así, para controlar cuatro displays necesitaríamos 32 conexiones al microcontrolador si es que queremos manejar directamente los displays sin ningún integrado de por medio. Vamos ver cómo funciona este multiplexado y cómo se puede implementar en una FPGA usando VHDL. Existen dispositivos que empaquetan varios displays que son muy cómodos de usar. En este artículo, como ejemplo usaremos uno de cuatro displays. Sin embargo esta técnica puede usarse con varios displays sueltos. En el siguiente esquema se presenta la manera correcta de hacer las conexiones mediante transistores configurados en emisor común para funcionar como interruptores. Las entradas D0 a D3 permiten seleccionar qué display queremos activar en cada momento, mientras que las entradas A a G (y DP) permiten seleccionar qué leds se han de encender para mostrar e...

El divisor de tensión

El divisor de tensión o divisor de voltaje es uno de los circuitos básicos más usados en electrónica. Se utiliza para diversos fines, pero en electrónica digital es muy útil a la hora de ajustar voltajes entre componentes. Por ejemplo, si queremos usar un sensor que funciona 3.3V y conectarlo a un Arduino que trabaja con 5V, necesitamos una forma de ajustar ese voltaje. Esto es sólo un ejemplo de sus múltiples usos, pero nos da una idea de la importancia que tiene. Básicamente, el divisor de tensión es un circuito con dos resistencias en serie, tal como se muestra en el siguiente esquemático. ¿Cómo consigue este circuito ajustar la tensión? Vamos a hacer unos cálculos sencillos para ver cómo funciona. Queremos saber qué tensión hay en la salida Vout, pero para ello tenemos que calcular la caída de tensión que hay en R1. Vamos a calcularla. La resistencia R1 es de 10Ω, pero tenemos que calcular la intensidad, lo que podemos hacer con Ya que R1 y R2 están en se...

¿Qué son las resistencias pull-up?

Los componentes digitales, como las puertas lógicas o las entradas y salidas de los microcontroladores, deben estar en uno de dos estados, llamados nivel alto y nivel bajo. El nivel alto se corresponde con la tensión VCC positiva (normalmente 5V o 3,3V) y el nivel bajo es aquel que conectaría el puerto a GND. Además, dependiendo de la tecnología subyacente, el puerto se puede considerar activo cuando está a nivel bajo, o en otras ocasiones, cuando está a nivel alto. Por ejemplo, el procesador Atmega328 (Arduino) tiene un puerto RESET que es activo a nivel bajo, es decir, que cuando se conecta a GND, se produce el reseteo del microcontrolador. Otro escenario posible es aquél en el que un puerto de salida (por ejemplo, una puerta lógica o la salida de otro microcontrolador), necesita poner un valor en el puerto de otro elemento digital en el circuito. Para gestionar estas situaciones se utilizan resistencias pull-up ( pull-up resistors en inglés). Lo mejor será comenzar con un...