Esta entrada muestra cómo empezar a trabajar con los microcontroladores STM32, aprenderás cómo programar dentro del IDE Arduino.
Empezamos conectando nuestra tarjeta STM32L746 al computador, generalmente los drivers de esta tarjeta ya se encuentran incluidos en los sistemas operativos más actuales, para verificar este paso nos dirigimos hacia <<Administrador de dispositivos>> y observaremos que se nos asignado el número de puerto COM para la comunicación con nuestra tarjeta.
Lectura de la tarjeta STM con IDE Arduino
Ejecuta tu IDE Arduino y abre la ventana de preferencias (Archivo / Preferencias). En el campo de texto de «Gestor de URLs Adicionales de Tarjetas», agrega el siguiente enlace para gestionar las tarjetas STM32. Al final, presiona «OK».
Esto es necesario para incluir dentro de Arduino todas las librerías y tarjetas que se podrán instalar en el computador
Abre la ventana de «Gestor de tarjetas» (Herramientas / Placa / Gestor de tarjetas…). En el buscador coloca «STM32». Selecciona la opción que dice STM32 Cores by STMicroelectronics y presiona «Instalar». Al final, cierra la ventana.
Una vez ya instalada las tarjetas de desarrollo STM’s, realizaremos nuestro primer código para ello utilizamos el pin D13 para conectar un led, recuerda verificar el mapa de los pines de tu tarjeta antes de continuar. Tu circuito deberá quedar de la siguiente manera.
En el IDE de Arduino vamos a configurar nuestra STM32L476 para empezar a programar, esto es fundamental para que al momento de cargar nuestro código a la tarjeta no tengas problemas de compatibilidad ya que hay varios tarjetas de desarrollo y si no escogemos la específica no nos dejará subir nuestro código, para ello realizamos lo siguiente:(Herramientas / Placa / Nucleo-64), a continuación escogemos el número de placa (Herramientas / Board part number / Nucleo L476RG), y seleccionamos en puerto COM en nuestro caso es el 5. (Recuerda, en tu computador puede diferir el número de puerto COM).
El código con el que vamos a trabajar es el siguiente:
void setup() { // inicializa el pin 13 como salida pinMode(13, OUTPUT); Serial.begin (9600); Serial.print ("HOLA MUNDO"); } void loop() { // crear un bucle con un led intermitente digitalWrite(13, HIGH); delay(1500); digitalWrite(13, LOW); delay(200); }
Carga el programa y si todo está correcto, podrás ver como tu diodo led parpadea y en el Monitor Serial observarás «HOLA MUNDO».
A continuación realizaremos nuestro segundo código en el que consiste la lectura de un potenciometro conectado a un puerto analógico Pin A0 y un diodo led conectado al Pin D9, a medida que cambiemos el valor del potenciometro variara la iluminación de nuestro led, los datos se visualizará en el Monitor Serial de Arduino.
Tu circuito deberá quedar de la siguiente manera:
El código con el que vamos a trabajar es el siguiente:
const int analogInPin = A0; // Pin de entrada analógica al que está conectado el potenciómetro const int analogOutPin = 9; // Pin de salida analógica al que está conectado el LED int sensorValue = 0; // leer el valor del Potenciometro int outputValue = 0; // valor de salida a la PWM (salida analógica) void setup() { //inicializa la comunicación serial 9600 bps: Serial.begin(9600); } void loop() { // leemos el valor analógico: sensorValue = analogRead(analogInPin); //mapearlo al rango de la salida analógica: outputValue = map(sensorValue, 0, 1023, 0, 255); // Cambiar a un valor de salida: analogWrite(analogOutPin, outputValue); // Imprimir los resultados en el Monitor Serial: Serial.print("sensor = "); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); //esperar un tiempo para la actualización de datos delay(500); }
Hola muy buen tutorial, ahorita tengo una Nucleo 64 STM32F334R8, agregue las tarjetas al IDE de Arduino, subo codigos como el de parpadeo de led, o leer pines digitales todo bien, pero al momento de pines analogicos pues no me lee nada ni tampoco puedo ver a traves del puerto serial los datos. que podria ser?