Placa Arduino

Algunos ejemplos usando la tarjeta Arduino

Pinout placa Arduino

La tarjeta de desarrollo Arduino UNO es la plataforma ideal para empezar a realizar las pruebas necesarias para el curso. Recordemos que antes de empezar a trabajar con cualquier plataforma de desarrollo es necesario conocer como mínimo el mapa de pines de esta. A continuación, se muestra el mapa de pines para la tarjeta Arduino UNO (link)

Pin Out Arduino UNO

La siguiente tabla resume la información del mapa de pines para el Arduino UNO:

Tipo

Digital/GPIO

Notación pines (placa)

D0, D1, D2, ~D3, D4, ~D5, ~D6,

D7, D8, ~D9

Tipo

Analog in

Notación pines (placa)

A0, A1, A2, A3, A4, A5

Tipo

PWM

Notación pines (placa)

~D3, ~D5, ~D6, ~D9, ~D10, ~D11

Tipo

Serial (UART)

Notación pines (placa)

Tx->, Rx<-

Tipo

I2C

Notación pines (placa)

A4/SDA, A5/SCL

Tipo

Digital SPI

Notación pines (placa)

~D10/SS, ~D11/MOSI, D12/MISO, D13/SCK

Tipo

Interrupt

Notación pines (placa)

D1/INT0, D3/INT1

Funciones principales del API

Es importante notar, que los pines son multifuncionales, es decir, pueden ser empleados para diferentes funciones. La determinación de la función que puede llevar un pin se hace por programación. Para analizar los ejemplos se recomienda que tenga a la mano el documento Arduino Cheat Sheet (adjunto a continuación). Este contiene un resumen de algunas de las principales funciones que se usan para programar plataformas Arduino. Para mas información sobre estas puede consultar la sección Language Reference.

Arduino Cheat Sheet

Librerias adicionales

Ademas de las funciones, propias del API de Arduino, es posible hacer uso de librerias para agregar funcionalidad extra (tal y como sucede con el software). Una de las mayores fortalezas de la plataforma Arduino se encuentra en que esta posee una gran numero de librerias. En la sección Libraries se encuentra toda la información relacionada con diferentes librerias existentes, hardware soportado y, adicionalmente, se muestra como realizar una libreria. Hay tres cosas fundamentales para trabajar con librerias:

  1. Instalación de librerias (Installing Libraries)

  2. Escritura de librerias (Writing a Library for Arduino)

Ejemplos basicos

Cuando se tienen unas nociones basicas de programación, la mejor manera para aprender consiste en leer, ejecutar y comprender código a traves del desarrollo de ejemplos sencillos. Luego, y luego, aplicando lo ya aprendido realizar la adaptación del código al caso particular. Para hacer esto, nuestra recomendación es que tenga a la mano los siguientes materiales:

La idea es empezar a mirar unos cuantos ejemplos los cuales vienen implementados en IDE de arduino tal y como se muestra en la siguiente figura:

Ejemplos integrados en el IDE de Arduino

Ejemplo 1

En este ejemplo se pone a parpadear un led a un periodo de 2 segundos. La descripción completa del ejemplo se encuentra en Blink.

Código

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  
  delay(1000);                       
  digitalWrite(LED_BUILTIN, LOW);    
  delay(1000);                       
}

Esquemático

Esquematico

Conexiones

Diagrama de conexión

Ejemplo 2

Este ejemplo se encuentra en How to Wire and Program a Button. En éste se prende un led cuando se presiona un switch.

Código

const int buttonPin = 2;     
const int ledPin =  13;      

int buttonState = 0;         

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

Esquemático

Conexiones

Ejemplo 3

Este ejemplo es tomado de Fading. En este ejemplo se modifica el brillo de un led de manera automatica.

Código

int ledPin = 9;    

void setup() {
  // nothing happens in setup
}

void loop() {

  for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {
    analogWrite(ledPin, fadeValue);
    delay(30);

  }

  for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {
    analogWrite(ledPin, fadeValue);
    delay(30);
  }
}

Esquemático

Conexiones

Ejemplo 4

Este ejemplo es tomado de Analog Read Serial. Aqui, se lee un potenciometro y se imprime su estado a traves del monitor serial.

Código

void setup() {
  Serial.begin(9600);
}


void loop() {
  int sensorValue = analogRead(A0);
  Serial.println(sensorValue);
  delay(1);        
}

Esquemático

Conexiones

Ejemplo 5

Este ejemplo es tomado de Analog In, Out Serial. Aqui, se usa un potenciometro para controlar el brillo de un led; adicionalmente, se imprime su estado a traves del monitor serial.

Código

const int analogInPin = A0;  
const int analogOutPin = 9; 

int sensorValue = 0;        
int outputValue = 0;        

void setup() {
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(analogInPin);
  outputValue = map(sensorValue, 0, 1023, 0, 255);
  analogWrite(analogOutPin, outputValue);
  Serial.print("sensor = ");
  Serial.print(sensorValue);
  Serial.print("\t output = ");
  Serial.println(outputValue);
  delay(2);
}

Esquemático

Conexiones

Actividad

El proceso de trabajo a lo largo de esta sesión de trabajo será:

  1. Descargar codigo.

  2. Montar circuito.

  3. Programar.

  4. Probar.

Referencias consultadas

Last updated