# data[].attributes.body
Instruccions de Funcionament (Anglès)

# data[].attributes.attachment_link.description
ArmUno 2.0 Arduino Raspbery Pi Robotic Arm Kit Assembly Guide

# data[].attributes.attachment_link.readable_text
El MAX9812 es un amplificador de sonido especialmente diseñado para tratar la señal proveniente de micrófonos. Podemos emplearlo junto con Arduino para medir sonido desde un procesador como Arduino.

Cuando vimos los módulos con micrófono comentamos que, en general, la señal generada es demasiado baja para ser registrada correctamente. Si queremos poder medir sonidos, deberemos amplificar la señal.

El MAX9812 dispone de entradas single/dual, ganancia fija de 20dB, ancho de banda de 500 kHz, bajo ruido y baja distorsión de señal 0.015% THD. Existen dos modelos, el MAX9812L tiene una tensión de alimentación de 2.7V a 3.6V, y el MAX9812H tensión de alimentación de 45V a 5.5V.

Podemos emplear los sensores con MAX9812 para aplicaciones que requieran medir la intensidad o frecuencia del sonido. Por ejemplo, podemos variar la iluminación de una tira LED en función del sonido, o mostrar un ecualizador en una pantalla TFT.

Los sensores con MAX9812 son sensores muy baratos. Podemos encontrar módulos como el FC-109, que incorporan el micrófono y amplificador MAX9812 en una placa fácil de conectar a Arduino por 0.85€, buscando en vendedores internacionales de eBay o AliExpress.

También existe una versión mejorada, el MAX9814, que dispone de una ganancia variable a 40, 50 o 60DB, aunque el precio es muy superior, unos 2.45€.

El esquema eléctrico es sencillo. Alimentamos el módulo conectando GND y 5V a los pines correspondientes de Arduino. Por otro lado, conectamos la salida analógica del sensor a una entrada analógica de Arduino.

Mientras que la conexión vista desde Arduino quedaría así,

Cuando manejemos sonidos lo primero que debemos entender es que la señal que obtenemos varia rápidamente y además tiene mucho ruido. De esta forma, el valor puntual de una medición no suele tener importancia, y deberemos realizar la integración en un determinado periodo. Para ello lo habitual es trabajar con ventanas temporales, es decir, un intervalo en el que realizamos la medición.

Para ello, definimos una ventana temporal de 50 ms, equivalente a una frecuencia de 20 Hz, y calculamos el máximo y mínimo registrado dentro de la ventana. A continuación mostramos el valor registrado por puerto serie.

# data[].attributes.attachment_link.title
Medir sonido con Arduino y micrófono amplificado MAX9812

# data[].attributes.attachment_link.description
¿Qué es un MAX9812? El MAX9812 es un amplificador de sonido especialmente diseñado para tratar la señal proveniente de micrófonos. Podemos emplearlo junto con Arduino para medir sonido desde un procesador como Arduino. Cuando vimos los módulos con micrófono comentamos que, en general, la señal generada es demasiado baja para ser registrada correctamente.

# data[].attributes.attachment_link.title
Programar una tira de LEDs RGB con Arduino

# data[].attributes.attachment_link.description
Explicamos como conectar y programar una tira de leds RGB desde Arduino. Enlace para la descarga de los programas: https://drive.google.com/drive/folders/1s1I19ovU2FKhuwsIxW6gQE7raVU3-MMA?usp=sharing Visitar nuestra tienda para ver más ideas: https://www.pensactius.cat/tienda

# data[].attributes.attachment_link.readable_text
Una de las mejoras formas de que disponemos para controlar un robot a distancia es emplear el mando de una Playstation 2. En Internet podéis encontrar multitud de ejemplos que optan por este controlador por sus excepcionales características técnicas, incluso en proyectos profesionales. Además es realmente barato, algo especialmente importante en nuestros proyectos caseros.

Entre sus características como controlador el mando de la PS2 es inalámbrico y dispone de un alcance bastante aceptable. Por otro lado dispone de una gran variedad de entradas que incluyen 4 botones de dirección sensibles a la presión, 4 botones de acción sensibles también a la presión, 2 palancas analógicas y 4 botones digitales ubicados en la parte frontal.

En cuanto al precio un clónico de este mando se puede conseguir en Ebay por de 9,90€. Un precio increíble que, junto con sus características técnicas, lo convierten en una de las mejoras opciones para controlar un robot a un coste mínimo.

En este tutorial vamos a aprender a conectar el mando de una PS2 a Arduino para poder usarlo en nuestros proyectos y poder controlar robots y automatismos de forma inalámbrica.

Además de nuestro Arduino (mini, Uno, Mega, o el que vosotros prefiráis) lo primero que necesitamos es, lógicamente, un mando de PS2 inalámbrico. Una simple búsqueda en Ebay nos mostrará una gran cantidad de clónicos. Buscamos uno en el rango de 9 a 10€, barato pero que tenga un mínimo de calidad.

Por otro lado, en la mayoría de los casos necesitaremos un conversor lógico de nivel de 3,3V a 5V. El motivo es que, por lo general, nuestro Arduino opera a 5V, mientras que la electrónica del mando de la PS2 funciona a 3,3V. Podríamos hacer nuestro propio circuito de adaptación, pero no tienen ningún sentido dado que se venden por 1,10€, gastos de envío incluidos.

Para encontrar el conversor simplemente buscar "level converter" en Ebay. Estamos buscando un artículo similar al siguiente "JY MCY I2C LEVEL CONVERTER", un dispositivo que permite adaptar 4 señales de forma bidireccional. Fijaros que el modelo que queremos tiene 6 pines (no compréis uno de 4 pines, que solo pueden adaptar 2 señales).

Todo el montaje se realiza exclusivamente en el receptor, por lo que podemos dejar "tranquilo" al mando propiamente dicho. En primer lugar retiramos los tornillos del receptor para acceder a los terminales. Desoldamos los pines de conexión sustituyéndolos por nuestros propios cables, que soldaremos a la placa del receptor. Cerramos el receptor, dejando saliendo los cables por donde antes estaba la conexión con la vídeo consola.

Ahora empleamos un polímetro para identificar la función de cada uno de los cables que hemos soldado. No os fiéis de los esquemas de Internet, que identifican cada terminal por el color del cable que tuvieran soldado, porque el color de los cables y su conexión varían de un fabricante a otro. Verificarlo manualmente con un polímetro y la ayuda del siguiente esquema.

A continuación usamos una protoboard para realizar las conexiones con nuestro conversor digital (o lo soldamos directamente). En el lado de baja tensión se conectan las cuatro señales del mando, ground, y alimentación, que será proporcionada por Arduino. En el lado de alta tensión conectamos cuatro pines, ground, y +5V que será convertido por el conversor a +3,3V para alimentar el receptor.

El esquema definitivo es el siguiente.

Aquí podéis ver un ejemplo del montaje final, conectado a un Arduino Uno.

Y aquí un montaje similar conectado a un Arduino Mini.

Con esta combinación queda un montaje bastante compacto que cabe fácilmente en cualquier robot, y con los pines libres de ambas protoboard tenemos suficientes conexiones para el resto de elementos que la requieran.

Vamos a por el código. Afortunadamente para nosotros la parte difícil está resuelta en una magnífica librería disponible en https://github.com/madsci1016/Arduino-PS2X. Simplemente descargamos e importamos la librería, y cargamos el skecth de ejemplo.

El código del ejemplo es demasiado extenso y tiene líneas en exceso (cómo es lógico ya que el objetivo es mostrar todas las posibilidades). No es en absoluto difícil analizar y adaptarlo a nuestras necesidades. Sin embargo, os dejo un código reducido para que podáis emplear fácilmente como punto de partida para vuestros proyectos.

Por último decir que, en general, la librería en sí es bastante pesada y consume una buena parte de la memoria de nuestro pequeño Arduino. No obstante es posible optimizarla y reducirla eliminando partes de código dedicadas a otros controladores (guitar hero, por ejemplo). Además es un buen ejercicio de aprendizaje, por lo que os invito a que la leáis e intentéis optimizarla.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino

# data[].attributes.attachment_link.title
Controla Arduino con el mando inalámbrico de la PS2

# data[].attributes.attachment_link.description
Una de las mejoras formas de que disponemos para controlar un robot a distancia es emplear el mando de una Playstation 2. En Internet podéis encontrar multitud de ejemplos que optan por este controlador por sus excepcionales características técnicas, incluso en proyectos profesionales. Además es realmente barato, algo especialmente importante en nuestros proyectos caseros.

# data[].attributes.body
Conceptes Programació: millis(), interrupcions

# data[].attributes.attachment_link.readable_text
En el post anterior les comentaba sobre los comandos básicos de Processing y un poco lo que es la comunicación serial entre este software y Arduino.

En la continuación de esta serie, se explicará un ejemplo para que ustedes mismos puedan empezar a intercambiar datos y a experimentar la poderosa unión de estas dos plataformas de software. El primer paso es crear nuestro programa en Arduino (en este caso usé un Arduino DUEMILANOVE):

Debemos tener en cuenta que primero se debe quemar el programa en la placa Arduino via Serial (recordar elegir el puerto COM correspondiente al Arduino y el modelo de placa que estamos usando).

Para este ejemplo se utilizó una velocidad de comunicación de 9600 baudios o bps en ambos programas. Luego de haber grabado el programa, abrimos Processing para desarrollar el programa correspondiente:

Para ejecutar el programa en Processing, debemos pulsar el botón de PLAY, luego de esto empieza a ejecutarse. Ahora veamos un video con la explicación rápida del programa:

Nos vemos en otra entrega. Saludos.

Venezolano, actualmente residiendo en Panamá. Ingeniero en Computación, graduado en la Universidad de "Fermín Toro" Cabudare, Venezuela. Especializado en el área de automatización y control industrial.

Domingo

Antony García González

Manu Bolla

# data[].attributes.attachment_link.title
Arduino + Processing: Parte II (Comunicación Serial)

# data[].attributes.attachment_link.description
En el post anterior les comentaba sobre los comandos básicos de Processing y un poco lo que es la comunicación serial entre este software y Arduino. En la continuación de esta serie, se explicará un ejemplo para que ustedes mismos puedan empezar a intercambiar datos y a experimentar la poderosa unión de estas dos plataformas de software.

# data[].attributes.attachment_link.title
Comunicació des del PC a la placa Arduino

# data[].attributes.body
Encendre i apagar un LED des del mòbil o tablet.

# data[].attributes.body
Els pins 10 i 11 es poden canviar pels que vulguem. Recomanem no utilitzar el 0 i 1 perquè són els pins utilitzats per fer la comunicació per port sèrie a través del cable USB. (38400)

# data[].attributes.body
http://ideone.com/89feBU

# data[].attributes.body
http://ideone.com/89feBU

# data[].attributes.body
Disseny App Inventor

# data[].attributes.body
Programació App Inventor.

# data[].attributes.headline
CONTROL DELS NIVELLS ANALÒGICS D'UN LED RGB

# data[].attributes.subject
CONTROL DELS NIVELLS ANALÒGICS D'UN LED RGB

# data[].attributes.body
Instal·lar llibreria  LedControlMS

# data[].attributes.body
Conceptes Programació: PulseIn(), delayMicroseconds(), long.
Conceptes Físics: So, velocitat del so.

# data[].attributes.body
Conceptes Programació: Llibreria.
Conceptes Físics: Servo i servo de rotació continua.

# data[].attributes.body
Conceptes Físics: Shield, transistor, pont H, intensitat, potència.

# data[].attributes.body
Conceptes Físics: Joystick.

# data[].attributes.body
Conceptes Programació: Bus I2C.
Conceptes Físics: Display LCD.

# data[].attributes.attachment_link.readable_text
Os presentamos un pequeño módulo de joystick para , muy similar a la de los sticks controladores analógicos de los pulgares de la PlayStation 2. El módulo es muy fácil de usar con un Arduino UNO y por muy poco dinero. Existen diferentes versiones disponibles en el mercado, pero básicamente funcionan de la misma manera.

Información general del módulo Joystick para Arduino

El módulo Joystick tiene 5 pines: Vcc, GND, VRX, VRYY Y SW. Tenga en cuenta que las etiquetas de otros modelos puede ser ligeramente diferente, dependiendo de dónde compró el módulo. El joystick es analógico y debe proporcionar lecturas más precisas que las simples palancas direccionales. Además, puede pulsar el joystick hacia abajo para activar un pulsador.

Tenemos que usar pines analógicos de Arduino para leer los datos de los pines X / Y, y un pin digital para leer el botón SW. El pasador SW está conectado a tierra, cuando se pulsa el joystick hacia abajo. Para obtener lecturas estables necesita ser conectado a Vcc a través de una resistencia pull-up.

Comprar el módulo Joystick para Arduino

Puede encontrar el módulo Joystick para Arduino a un precio increíble en AliExpress. Pincha en el siguiente enlace para acceder.
Comprar motor paso a paso 28BYJ-48 en AliExpress
Demostración del módulo Joystick con Arduino

Diagrama de cableado con Arduino UNO

Código de ejemplo Arduino para el módulo Joystick

/*
 Código de ejemplo Arduino para el módulo Joystick
 Prototipo del tallerwww.web-robotica.com  Este sketch es de dominio público. */ int xPin = A1; int yPin = A0; int buttonPin = 2; int xPosition = 0; int yPosition = 0; int buttonState = 0; void // inicializar las comunicaciones en serie a 9600 bps:   begin(9600);      pinMode(xPin, INPUT);setup() {   pinMode(yPin, INPUT);   //activar resistencia pull-up en el pin pulsadorSerial.pinMode(buttonPin, INPUT_PULLUP);      // Para las versiones anteriores a 1.0.1 Arduino   // pinMode (buttonPin, INPUT);   // digitalWrite (buttonPin, HIGH);    } void analogRead(xPin);   yPosition = analogRead(yPin);   buttonState = digitalRead(buttonPin);      print("X: ");   print(xPosition);   print(" | Y: ");   print(yPosition);   print(" | Button: ");   println(buttonState);loop() {   xPosition = delay(100); // añadir un poco de retraso entre lecturas }Serial.Serial.Serial.Serial.Serial.Serial.

.

Este post se publico originalmente en42bots.

.

# data[].attributes.attachment_link.title
Como utilizar el módulo Joystick con Arduino

# data[].attributes.attachment_link.description
Os presentamos un pequeño módulo de joystick para , muy similar a la de los sticks controladores analógicos de los pulgares de la PlayStation 2. El módulo es muy fácil de usar con un Arduino UNO y por muy poco dinero. Existen diferentes versiones disponibles en el mercado, pero básicamente funcionan de la misma manera.

# data[].attributes.body
Dirigir un cotxe amb joystick.
Codi: http://ideone.com/aDySVU

# data[].attributes.attachment_link.title
✅ Conexión de pantalla LCD  con Interfaz I2C

# data[].attributes.body
Conceptes Programació: Entrada analògica. Comunicació sèrie. Map.
Conceptes Físics: Potenciòmetre.

# data[].attributes.body
Conceptes Programació: Array. Tone.
Conceptes Físics: So. Freqüència.

# data[].attributes.attachment_link.description
The Arduino programming language Reference, organized into Functions, Variable and Constant, and Structure keywords.

# data[].attributes.body
Conceptes Físics: Fotoresistència (LDR)

# data[].attributes.body
Conceptes Programació: Sortida analògica. Escriptura d'una sortida analògica.
Conceptes Físics: PWM.

# data[].attributes.body
Les sortides analògiques estan marcades en carbassa.

# data[].attributes.body
Un LED que es va encenen i apagant progressivament.

# data[].attributes.body
Conceptes Programació: Entrada digital. Llegir entrada.Variable. Estructura 'if'.
Conceptes Físics: Polsador. Resistència. Pull-down. LED RGB

# data[].attributes.body
Heu de fer un joc amb una tira de 8 LEDs i dos polsadors.

# data[].attributes.attachment_link.description
http://www.adafruit.com/neopixel Adding colorful LEDs to your project used to require a lot of pins on your microcontroller and complex code. With the Adafruit NeoPixels, those problems are a thing of the past. You only need one pin on any microcontroller to run a long string of pixels, and with our open source NeoPixel library, you can get your NeoPixels up and running in seconds.

# data[].attributes.body
Heu d'instal·lar la llibreria:  Adafruit_NeoPixel.

Com utilitzar la llibreria?

# data[].attributes.body
Descarregar programa
Fer els canvis necessaris en el programa perquè els llums s'encenguin i s'apaguin en els dos sentits.

# data[].attributes.body
Heu de connectar també un LED amb una resistència limitadora, que s'encendrà quan es pren el polsador.

# data[].attributes.body
Connexió del polsador sense resistència.
Heu de connectar també un LED amb una resistència limitadora, que s'encendrà quan es pren el polsador.

# data[].attributes.attachment_link.title
CTC Teacher Tutorial Episode 2: Digital I/O

# data[].attributes.body
Conceptes Programació: Estructura 'for'. Llibreria.

# data[].attributes.body
Conceptes Programació: Sortida digital. Escriure sortida digital. Funció setup i loop. Espera. Variable. Número aleatori.
Conceptes Físics: Arduino i LED

# data[].attributes.attachment_link.title
Proyecto | Semáforo Con Arduino ( muy fácil de hacer)

# data[].attributes.attachment_link.readable_text
(03/02/14)
En este tutorial vamos a dotar al Arduino de comunicación Bluetooth usando un módulo Bluetooth, veremos cómo configurarlo y cómo enviar y recibir datos desde un dispositivo Android.
Material

-Arduino Uno Rev 3

-Módulo Bluetooth JY-MCU

-Dispositivo Android con Bluetooth

-Leds rojo, amarillo y verde

-Resistencias 220 ohms x 3, 5K6, 10K

Módulo Bluetooth

El Bluetooth es un estándar de comunicación inalámbrica que permite la transmisión de datos a través de radiofrecuencia en la banda de 2,4 GHz. Existen muchos módulos Bluetooth para usarlos en nuestros proyectos de electrónica, pero los más utilizados son los módulos de JY-MCU, ya que son muy económicos y fáciles de encontrar en el mercado. Son módulos pequeños y con un consumo muy bajo que nos permitirán agregar funcionalidades Bluetooth a nuestro Arduino. Estos módulos contienen el chip con una placa de desarrollo con los pins necesarios para la comunicación serie.

Existen dos modelos de módulos Bluetooth: el HC-05 que puede ser maestro/esclavo (master/slave), y el HC-06 que solo puede actuar como esclavo (slave). La diferencia entre maestro y esclavo es que en modo esclavo es el dispositivo quien se conecta al módulo, mientras que en modo maestro es el módulo quien se conecta con un dispositivo.

Físicamente, los dos módulos son muy parecidos, solo varían algunas conexiones. Los pins que encontraremos son los siguientes:

-Vcc: Alimentación del módulo entre 3,6V y 6V.

-GND: La masa del módulo.

-TXD: Transmisión de datos.

-RXD: Recepción de datos a un voltaje de 3,3V.

-KEY: Poner a nivel alto para entrar en modo configuración del módulo (solo el modelo HC-05)

-STATE: Para conectar un led de salida para visualizar cuando se comuniquen datos.

Comandos AT

Los comandos AT son un tipo de comandos que sirven para configurar el módulo Bluetooth a través de un microcontrolador, un ordenador o con cualquier dispositivo que posea una comunicación serie (Tx/Rx). Son unas instrucciones que nos permiten cambiar los baudios del módulo, el PIN, el nombre, etc. Para usar los comandos AT el módulo Bluetooth no debe estar vinculado a ningún dispositivo (led rojo del módulo parpadeando). Según las especificaciones del módulo, el tiempo que se tiene que respetar entre el envío de un comando AT y otro tiene que ser de 1 segundo. Si se envía un comando AT y en menos de un segundo se envía otro, el módulo no devuelve respuesta.

Ahora vamos a configurar el módulo Bluetooth a través de comandos AT enviados desde el Monitor Serial del Arduino. El código del Arduino necesario tanto por el módulo HC-05 como el HC-06 es el siguiente:

#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pins

//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.
SoftwareSerial BT(10,11); //10 RX, 11 TX.

void setup()
{
  BT.begin(9600); //Velocidad del puerto del módulo Bluetooth
  Serial.begin(9600); //Abrimos la comunicación serie con el PC y establecemos velocidad
}

void loop()
{
  if(BT.available())
  {
    Serial.write(BT.read());
  }

  if(Serial.available())
  {
     BT.write(Serial.read());
  }
}

Entre los dos modelos de módulo Bluetooth existen diferencias a la hora de enviar los comandos AT:

HC-06

En el HC-06 solo se necesitan cuatro pins: Vcc, GND, TXD y RXD. El pin KEY no es necesario.

Al enviar un comando AT no se debe enviar ningún carácter de LF (nueva línea) ni CR (retorno de carro) al final del comando. En el Monitor Serial del Arduino tenemos que poner No hay fin de líena.

Los comandos AT que se pueden enviar en este módulo son los siguientes:

Configura la velocidad de trasmisión del modulo según el valor de "x"1 = 1200 bps

2 = 2400 bps

3 = 4800 bps

4 = 9600 bps (por defecto)

5 = 19200 bps

6 = 38400 bps

7 = 57600 bps

8 = 115200 bps

9 = 230400 bps

A = 460800 bps

B = 921600 bps

C = 1382400 bps

AT+BAUD4 Configura la velocidad a 9600 baud rate Responde con OK9600

Configura el nombre con el que se visualizara el modulo, soporta hasta 20 caracteres

AT+NAMEDIYMakers Configura el nombre del modulo a DIYMakers Responde con OKsetname

Configura el Pin de acceso al modulo (password).1234 por defecto.

AT+PIN1122 Configura el pin a 1122 Responde con OKsetPIN

Una vez compilado el código en el Arduino, abrimos el Monitor Serial y enviamos el comando AT, vemos que el módulo Bluetooth nos responde con un OK.

HC-05

El HC-05 es necesario poner el pin KEY del módulo a nivel alto (5V) para enviar comandos AT. Además, al enviar un comando AT hay que enviar un carácter de LF (nueva línea) y de CR (retorno de carro) al final del comando. Por lo tanto, en el Monitor Serial de Arduino pondremos Ambos NL & CR.

En el HC-05 se pueden enviar muchos más comandos AT que en el HC-06. Aquí os dejamos un archivo pdf con todos los comandos AT.

Recibir datos de un dispositivo Android

Ahora que ya sabemos cómo conectar y configurar un módulo Bluetooth en nuestro Arduino, vamos a vincularlo a un dispositivo Android con Bluetooth y enviar datos al Arduino mediante la aplicación BlueTerm, que es un emulador de terminal que permite comunicarse con un dispositivo Bluetooth para enviar y recibir información vía serie. La app es gratuita y se puede descargar desde este enlace.

Conectaremos tres leds de diferentes colores al Arduino y mediante unos comandos que ingresaremos en la app BlueTerm los encenderemos y apagaremos. En este ejemplo hemos usado un módulo HC-06 pero se puede usar también un HC-05 ya que no hay diferencia en este caso.

Código Arduino

/*
  www.diymakers.es
  by A.García
  Arduino + Bluetooth
  Tutorial en: http://diymakers.es/arduino-bluetooth/
*/

#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pins

//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.
SoftwareSerial BT(10,11); //10 RX, 11 TX.

int green=4;
int yellow=5;
int red=6;
char cadena[255]; //Creamos un array de caracteres de 256 cposiciones
int i=0; //Tamaño actual del array

void setup()
{
  BT.begin(9600);
  Serial.begin(9600);
  pinMode(green,OUTPUT);
  pinMode(yellow,OUTPUT);
  pinMode(red,OUTPUT);
}

void loop()
{
  //Cuando haya datos disponibles
  if(BT.available())
  {
    char dato=BT.read(); //Guarda los datos carácter a carácter en la variable "dato"

    cadena[i++]=dato; //Vamos colocando cada carácter recibido en el array "cadena"

    //Cuando reciba una nueva línea (al pulsar enter en la app) entra en la función
    if(dato=='\n')
    {
      Serial.print(cadena); //Visualizamos el comando recibido en el Monitor Serial

      //GREEN LED
      if(strstr(cadena,"green on")!=0)
      {
        digitalWrite(green,HIGH);
      }
      if(strstr(cadena,"green off")!=0)
      {
        digitalWrite(green,LOW);
      }
      //YELLOW LED
      if(strstr(cadena,"yellow on")!=0)
      {
        digitalWrite(yellow,HIGH);
      }
      if(strstr(cadena,"yellow off")!=0)
      {
        digitalWrite(yellow,LOW);
      }
      //RED LED
      if(strstr(cadena,"red on")!=0)
      {
        digitalWrite(red,HIGH);
      }
      if(strstr(cadena,"red off")!=0)
      {
        digitalWrite(red,LOW);
      }
      //ALL ON
      if(strstr(cadena,"on all")!=0)
      {
        digitalWrite(green,HIGH);
        digitalWrite(yellow,HIGH);
        digitalWrite(red,HIGH);
      }
      //ALL OFF
      if(strstr(cadena,"off all")!=0)
      {
        digitalWrite(green,LOW);
        digitalWrite(yellow,LOW);
        digitalWrite(red,LOW);
      }

      BT.write("\r"); //Enviamos un retorno de carro de la app. La app ya crea una línea nueva
      clean(); //Ejecutamos la función clean() para limpiar el array
    }
  }
}

//Limpia el array
void clean()
{
  for (int cl=0; cl<=i; cl++)
  {
    cadena[cl]=0;
  }
  i=0;
}

El código es bastante simple. Primero creamos un array de 256 posiciones tipo char llamado cadena para almacenar los caracteres que recibiremos de la app. Cuando haya datos disponibles los vamos guardando uno por uno en forma de carácter en la variable dato. Después ponemos estos caracteres por orden en el array cadena. Cuando reciba un carácter de fin de línea (\n), se compara el texto almacenado en el array con el texto que deseamos. Para hacer la comparación se usa la función strstr() que procede de C++ y que permite encontrar partes de texto en un String. Después de esto, se limpia el array poniendo a 0 todas las posiciones usadas para recibir el siguiente comando.

Configurar app Android

Una vez descargada la app la abrimos y en ajustes ponemos Conectarse a un dispositivo.

Pulsamos Buscar dispositivos y escogemos nuestro módulo Bluetooth que en nuestro caso le hemos puesto el nombre DIYMakers. Si no lo habéis cambiado pondrá por defecto LINVOR o HC-06.

Ponemos el PIN del módulo. Si no lo habéis modificado será 1234.

Después de esto, arriba a la derecha pondrá conectado:<nombre> Significa que tenemos asociado nuestro dispositivo Android con nuestro módulo Bluetooth y el led de este deja de parpadear y se queda fijo.

Luego solo hay que poner los comandos para encender y apagar los leds. Cuando se escribe un comando tenemos que pulsar Enter del teclado para enviarlos al Arduino. En el terminal no se pueden borrar caracteres, por lo que si nos equivocamos pulsamos Enter y lo volvemos a escribir.

# data[].attributes.attachment_link.description
(03/02/14) En este tutorial vamos a dotar al Arduino de comunicación Bluetooth usando un módulo Bluetooth, veremos cómo configurarlo y cómo enviar y recibir datos desde un dispositivo Android.

# data[].attributes.body
SORTIDA DIGITAL

# data[].attributes.body
Llibreria HD44780 by Bill Perry
També es pot descarregar des de l'IDE d'Arduino

# data[].attributes.body
La lectura en el monitor sèrie ens permet veure els valors que està donant l'entrada analògica.

# data[].attributes.body
Descarregar plànols.

# data[].attributes.attachment_link.title
4DOF Robot Arm Control with Potentiometers and Arduino

# data[].attributes.attachment_link.title
Cómo Hacer Las Luces Del Auto Fantástico (muy fácil de hacer)

# data[].attributes.attachment_link.title
Playing a Scale | Arduino Lesson 10. Making Sounds | Adafruit Learning System

# data[].attributes.body
http://www.prometec.net/circuito-multiples-leds/

# data[].attributes.body
Esquema

# data[].attributes.attachment_link.readable_text
El siguiente tutorial esta basado en el Driver dual para motores (Full-Bridge) - L298N, ofrecido por ELECTRONILAB.CO. Puedes adquirir este módulo en nuestra tienda.

Este módulo basado en el chip L298N te permite controlar dos motores de corriente continua o un motor paso a paso bipolar de hasta 2 amperios.

El módulo cuenta con todos los componentes necesarios para funcionar sin necesidad de elementos adicionales, entre ellos diodos de protección y un regulador LM7805 que suministra 5V a la parte lógica del integrado L298N. Cuenta con jumpers de selección para habilitar cada una de las salidas del módulo (A y B). La salida A esta conformada por OUT1 y OUT2 y la salida B por OUT3 y OUT4. Los pines de habilitación son ENA y ENB respectivamente.

En la parte inferior se encuentran los pines de control del módulo, marcados como IN1, IN2, IN3 e IN4.

Conexión de alimentación

Este módulo se puede alimentar de 2 maneras gracias al regulador integrado LM7805.

Cuando el jumper de selección de 5V se encuentra activo, el módulo permite una alimentación de entre 6V a 12V DC. Como el regulador se encuentra activo, el pin marcado como +5V tendrá un voltaje de 5V DC. Este voltaje se puede usar para alimentar la parte de control del módulo ya sea un microcontrolador o un Arduino, pero recomendamos que el consumo no sea mayor a 500 mA.

Cuando el jumper de selección de 5V se encuentra inactivo, el módulo permite una alimentación de entre 12V a 35V DC. Como el regulador no esta funcionando, tendremos que conectar el pin de +5V a una tensión de 5V para alimentar la parte lógica del L298N. Usualmente esta tensión es la misma de la parte de control, ya sea un microcontrolador o Arduino.

Recomendamos nunca conectar una tensión de entrada al pin de +5V, cuando el jumper de selección de 5V se encuentre activado. Esto provocaría un corto y podría dañar permanentemente el módulo.

Control de un motor DC

Como demostración, vamos a controlar un motor DC a través de la salida B del módulo. El pin ENB se conectará con el jumper a +5V.

El ejemplo esta desarrollado en Arduino UNO, pero el código es compatible con cualquier Arduino o pinguino.

Esquema de conexión

Código en Arduino

El programa básicamente activa el motor en un sentido por 4 segundos, luego detiene el motor por 0.5 segundos, después activa el motor en sentido inverso por 4 segundos y por último detiene el motor por 5 segundos. Luego repite la acción indefinidamente.

Control de un motor DC variando su velocidad

Si queremos controlar la velocidad del motor, tenemos que hacer uso de PWM. Este PWM será aplicado a los pines de activación de cada salida o pines ENA y ENB respectivamente, por tanto los jumper de selección no serán usados.

Esquema de conexión

Código en Arduino

El programa controla la velocidad de un motor DC aplicando PWM al pin ENB del módulo L298N.

Control de un motor paso a paso bipolar

Los motores paso a paso pueden ser bipolares o unipolares. En este ejemplo trabajamos con un motor paso a paso bipolar, sin embargo este driver es capaz de controlar un motor paso a paso unipolar si se conecta en configuración bipolar, obviando los cables del tab central de las bobinas del motor. El máximo consumo permitido es de 2 amperios.

Esquema de conexión

El esquema de conexión muestra la conexión utilizada entre el modulo L298N y el motor paso a paso. Cada una de las bobinas del motor esta conectada a una salida del módulo. Para identificar las bobinas de un motor paso a paso utilizamos un multímetro en modo de continuidad. Los cables que dan continuidad son los extremos de cada bobina.

En este caso, como el motor paso a paso es de 12 VDC, utilizamos el jumper de selección de +5V, para activar el regulador interno del módulo y solo hacer uso de una fuente de 12 VDC para alimentar el motor.

Los jumper de activación ENA y ENB los hemos activado de igual manera.

Código de Arduino

El código de Arduino hace girar el motor paso a paso una vuelta en un sentido y luego ejecuta otra vuelta en sentido opuesto. Este código hace uso de la librería ' Stepper.h ', que se instala por defecto en las ultimas versiones del IDE de Arduino.

El valor de la variable stepsPerRevolution depende del número de pasos del motor paso a paso. Este valor se encuentra en las especificaciones de la hoja de datos del motor. En nuestro caso el motor paso a paso utilizado es de 48 pasos/vuelta.

Vídeo de demostración:

ELECTRONILAB invierte tiempo y recursos en el desarrollo de estos tutoriales y provee código fuente abierto, por favor apoya a ELECTRONILAB mediante la compra de productos en nuestra tienda.

# data[].attributes.attachment_link.title
Tutorial Uso Driver L298N para motores DC y paso a paso con Arduino

# data[].attributes.attachment_link.description
El siguiente tutorial esta basado en el Driver dual para motores (Full-Bridge) - L298N, ofrecido por ELECTRONILAB.CO. Puedes adquirir este módulo en nuestra tienda. Este módulo basado en el chip L298N te permite controlar dos motores de corriente continua o un motor paso a paso bipolar de hasta 2 amperios.

# data[].attributes.body
Heu de fer que el LED s'encengui per sota d'un valor llindar.

# data[].attributes.attachment_link.readable_text
En este tutorial veremos el uso del Joystick para manejar dos servos usando un eje para un servo y otro eje para el otro.

Para nuestro tutorial de hoy usaremos:
- Tabla con protoboard y sujeción para Arduino UNO cedida por Electrohobby.
- Arduino UNO cedido por Electrohobby.
- Dos servos.
- Un Joystick de Playstation.
- Cables.

Seguidamente podremos ver el mapa de conexiones:

Como podéis ver, las conexiones son bastante sencillas:

Del Joystick salen 5 terminales. VCC (o 5V), GND, VRx (Horizontal), VRy (Vertical) y SW (Switch). VCC lo conectaremos con nuestros 5V del arduino. GND del Joystick con el GND del Arduino. Los pines VRx y VRy los leeremos por los pines analógicos y SW lo trataremos como un pulsador.

Código:

#include <Servo.h>

Servo panServo;//asignamos un eje a un servo y otro eje al otro servo
Servo tiltServo;

int servoPanPosition = 90;//posición de referencia
int servoTiltPosition = 90;
int joystickPanSpeed = 0;
int joystickTiltSpeed = 0;
int joystickPanPin = A0; //marcamos entradas analógicas que medirán el ángulo del joystick
int joystickTiltPin = A1;
int servoPanPin = 9;//declaramos los pines digitales por donde le entrará la instrucción del joystick al servo.
int servoTiltPin = 10;

voidsetup() {   pinMode(servoPanPin, OUTPUT);//se declara igual que declarariamos un led   pinMode(servoTiltPin, OUTPUT);   panServo.attach(servoPanPin);   tiltServo.attach(servoTiltPin); } void analogRead(joystickPanPin) - 512) / 50;     // -512 to provide equal +/- numbers   joystickTiltSpeed = (analogRead(joystickTiltPin) - 512) / -50;     // negative 50 to reverse direction   servoPanPosition = constrain((servoPanPosition + joystickPanSpeed), 1, 180);   servoTiltPosition = constrain((servoTiltPosition + joystickTiltSpeed), 1, 180);     // constarin function to not exceed servo limits   panServo.loop() {   joystickPanSpeed = (write(servoPanPosition);   tiltServo.write(servoTiltPosition);   delay(50);     // adjustable for overall speed }

Y como siempre el vídeo:

Gracias de antemano.

Un saludo.

C.

# data[].attributes.attachment_link.title
Tutorial: Control de dos servos mediante Joystick

# data[].attributes.attachment_link.description
En este tutorial veremos el uso del Joystick para manejar dos servos usando un eje para un servo y otro eje para el otro. Para nuestro tutorial de hoy usaremos: - Tabla con protoboard y sujeción para Arduino UNO cedida por Electrohobby. - Arduino UNO cedido por Electrohobby. - Dos servos.

# data[].attributes.headline
Tasques simultànies amb la instrucció 'millis()'

# data[].attributes.subject
Tasques simultànies amb la instrucció 'millis()'

# data[].attributes.attachment_link.title
Diana amb làser (feta amb una placa Arduino)

# data[].attributes.body
Descarregar programa

# data[].attributes.body
Alarma d'una casa amb sensor PIR i teclat matricial.

# data[].attributes.body
INPUT_PULLUP