Publicado el Deja un comentario

Empezando con STM32 Nucleo-64

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.

Tarjeta STM32 listada en el Administrador de dispositivos del computador.

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

https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
Configuración de preferencias para agregar tarjetas adicionales.

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.

Diagrama de conexión

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).

Configuración de la tarjeta STM32 en IDE de Arduino

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».

Código de ejemplo «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:

Diagrama de conexión potenciometro

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);
}
Código de ejemplo lectura analógica

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *