Conexiones de Sensores y Dispositivos Arduino

En ocasiones conectar correctamente un sensor o un componente electrónico en Arduino hace la diferencia que nuesto hardware funcione correctamente o lamentablemente mal, o se queme.

A continuación una lista de conexiones simples y mas utilizadas a la hora de realizar proyecto con Arduino:

Tengo que aclarar que Arduino tiene salidas de polo Negativo por lo que se tiene que conectar siempre el opuesto a 5 volts

Conectar Led a Arduino

Para conectar un Led es necesario proteger la salida con una resistencia de 220 ohms

código de prueba:

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

void loop()
{
  digitalWrite(13, HIGH);
  delay(1000); // Wait for 1000 millisecond(s)
  digitalWrite(13, LOW);
  delay(1000); // Wait for 1000 millisecond(s)
}

En este caso estamos tratando la salida 13 como Digital por el comando digitalWrite

Con el mismo Circuito podemos hacer a través del código tratar la salida como analógica enviando un pulso PWM con el comando analogWrite:

int led=13;

void setup()
{
  /* No configuramos nada*/
}

void loop()
{
  for (int i=0; i<=255; i++) //aumenta el valor de i hasta 255
  {
  analogWrite(led, i); //escribe el valor de i
  delay(100); // Wait for 1000 millisecond(s)
  }
  delay(500);
}

lo que hace este programa ejemplo es aumentar la velocidad con el valor i hasta llegar a 255 en un bucle for(no sale del bucle hasta llegar a 255).

Conectar Motor a Arduino

Con estos 2 métodos anteriores podemos controlar un motor de corriente continua, hay que destacar que si utilizamos el método digital hacemos un control ON/OFF, mientras que si lo hacemos de un modo analógico como PWM tendremos un control de la velocidad del motor cambiando el valor de la variable ente 0 (parado) a 255(máxima velocidad)

Mosfet irf44n + motor con reductora + diodo 1N4001

Materiales:

Mosfet irf44n

Motor con reductora

diodo 1N4001

Otra forma de trabajar el Pulso PWM es atraves de pulseWidth con la libreria Servo.h si realizamos la siguiente conexión

Conectar Servo Motor a Arduino

con pulseWidth podemos controlar un servo motor como se ve en la imagen para proteger la salida de Arduino UNO (salida 13) tiene una resistencia de 220 ohms, y el servo tiene en la alimentación un regulador de voltage de 5 volts LM7805

#include  //incluimos la libreria Servo.h
int i = 0; // Variable que utilizaremos para incrementar el valor desde 0 a 1023
Servo servo_13; // asignamos la salida 13 como Servo motor

void setup()
{
  servo_13.attach(13); //configuramos la salida 13 como servo
}

void loop()
{
  for (i = 0; i <= 1023; i += 1) { // esto es un bucle que hasta que no llega a 1023 no sale de el incrementando 1 en 1 cada vez que lo lee
    delay(50); // espera 50 milisegundos
    servo_13.write(map(i, 0, 1023, 0, 180)); //escribe el valor actual en el rango de 0 a 180 grados
  } //al llegar al valor sale del bucle for
// vuelve al inicio de loop
}

con este ejemplo lo que hacemos es incrementar de 0 a 1023 losgrados de un servo escalados en 180 grados

Control de Led RGB

Para controlar un tira de led RGB utilizamos la libreria NeoPixel de adafruit

Matriales:

Tira circular de led 2812 LED BOARD-SW1240/AN

código Ejemplo:

#include  // llamamos a libreria NeoPixel

#define PIN 2	 // pin de control para los leds.

#define NUMPIXELS      12 // Numero de leds a los que tiene que asiganar los valores.

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 100; // da el valor de 100 milisegundos a la variable de espera.

int redColor = 0; // pone a 0 el valor del color rojo.
int greenColor = 0; // pone a 0 el valor del color verde.
int blueColor = 0; // pone a 0 el valor del color azul.

void setup() {
  // Inicia la libreria NeoPixel.
  pixels.begin();
}

void loop() {
  setColor(); // llama a la funcion set color.

  for (int i=0; i < NUMPIXELS; i++) {
    // envia el valor de cada de led rojo, verde y azul 1 a 1.
    pixels.setPixelColor(i, pixels.Color(redColor, greenColor, blueColor));

    // envia los datos de colores a los leds.
    pixels.show();

    // tiempo de espera en milisegundos.
    delay(delayval);
  }
}

// setColor()
void setColor(){ // asigana un valor aleatoria para rojo, verde y azul.
  redColor = random(0, 255); // asigana un valor aleatoria entre 0 y 255.
  greenColor = random(0,255); // asigana un valor aleatoria entre 0 y 255.
  blueColor = random(0, 255); // asigana un valor aleatoria entre 0 y 255.
// vuelve a una linea por debajo de donde fue llamada la funcion.
}

con este pequeño código ejemplo podemos ver que de forma aleatoria va cambiando uno a uno el color de cada led

Entradas

conectar un switch o pulsador a Arduino

Arduino tiene definidas por hardward que tipo de entrada son las que podemos utilizar como digitales( Digital PWM) y analogicas (Analog IN)

Esta ves utilizaremos la conexión 2 como entrada Digital siguiendo el esquema de la imagen anterior

Materiales:

Pulsador/switch

resistencia de 10K ohms

código ejemplo:

const int boton=2; //asignamos la constante boton al pin 2
const int led=13;  //asignamos la constante le al pin 13
int estado = 0; //la variable de estado la definimos como 0

void setup()
{
  pinMode(led, OUTPUT); //configuramos a led como salida
  pinMode(boton, INPUT); // configuramos boton como entrada
}

void loop()
{
  //igualamos la varible estado con el valor de la lectura del boton  
  estado = digitalRead(boton);
  
  //con if verificamos cual es el estado
  if (estado == HIGH){ // si el valor del boton es alto
    digitalWrite(led, HIGH); //enciende el led
  }
  else { // si el valor del pulsador es bajo
    digitalWrite(led,LOW);
  }
}

Lo que hace este pequeño programa es igualar la salida 13 con el estado de la entrada 2 demostrando que el led integrado en Arduino UNO marcado como L encienda o este apagado

Conectar un potenciometro o resistencia variable a Arduino

Materiales:

potenciometro linela de 200K ohms

código ejemplo:

int pote = 0; // igualamos la variable a 0
int led = A0; //asignamos a led el pin A0

void setup()
{
  pinMode(A0, INPUT); //configuramos como entrada analogica A0
  pinMode(13, OUTPUT); // configuramos como salida 13
}

void loop()
{
  pote = analogRead(A0); //igualamos el valor de pote a la lectura de A0
  digitalWrite(13, HIGH); // encendemos el led
  delay(pote); //espera en milisegundos el valor del potenciometro 
  digitalWrite(13, LOW); // apaga el led
  delay(pote); //espera en milisegundos el valor del potenciometro
  // vuelve a leer loop de el inicio
}

Con este código ejemplo es utilizar el valor del potenciometro(A0) para aumentar o reducir el tiempo de espera de delay en milisegundos para que apague o encienda el led

share post:

Comments

Trackbacks and Pingbacks

  1. […] Librerías ArduinoConexiones de Sensores y Dispositivos Arduino  → Español English Français Deutsch Italiano Português […]

Comments are closed.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, haga clic en el enlace para mayor información. ACEPTAR

Aviso de cookies