sábado, 15 de octubre de 2011

Noveno proyecto[interactuando con el terminal-arduino]

Tras unos días difíciles por el poco tiempo que me permiten los exámenes para poner nuevos proyectos y actualizaciones vamos a desarrollar el noveno proyecto basado en interactuar el ordenador con el arduino mediante el terminal. Para iniciarnos en este mundo , empezaremos una vez mas desde 0. Es decir, en este proyecto vamos a encender un led a traves del uso de terminal.

Los materiales que vamos a utilizar son los siguientes:

  • Arduino
  • LED
Como podiais imaginar los elementos que necesitamos son minimos, por lo tanto una vez recolectados , pasaremos a montar nuestro circuito. El circuito es muy simple:

Como algunos habréis podido comprobar, este circuito es el mismo que el primer circuito que montamos en nuestras entradas. La diferencia notable se basa en el codigo como podemos ver a continuacion:


//Serial-ARDUINO

void setup() {
  pinMode(13, OUTPUT);  // pin como salida
  Serial.begin(9600);       // empieza la comunicacion a 9600bps
}
void loop() {
  char val;
  if( Serial.available() )       // si la informacion esta lista para leer
  {
    val = Serial.read();         // leerla y guardarla en 'val'
  }
  if( val == '1' )               // si '1' es recibido
  {
    digitalWrite(13, HIGH);  // enciende el led
  } 
  if(val=='0'){
    digitalWrite(13, LOW);   // apaga el led
  }
    
}

Como en este caso utilizaremos el terminal, que nunca antes habíamos utilizado, voy a mostrar los pasos que tenemos que hacer una vez compilado nuestro programa y enviado a la placa arduino. 
Tras los pasos básicos que utilizamos siempre para almacenar nuestro programa en ARDUINO pulsaremos sobre el siguiente icono para interactuar con el terminal:



Una vez pulsado el icono de Serial Monitor nos aparecerá la siguiente pantalla:


Esta es la pantalla de nuestro terminal, donde le enviaremos las ordenes a nuestra placa. En este primer proyecto le enviaremos un '1' para encender el LED y un '0' para apagarlo.

Hasta aquí la primera practica usando el puerto serie, muchas gracias por seguirnos en el twitter y por visitar nuestro blog. 
He de agradecer también los vídeos de demostración que esta colgando Julio , un compañero de clase y amigo, ya que así podeis estar viendo el funcionamiento. Salu2!

miércoles, 5 de octubre de 2011

Octavo proyecto[Generando notas musicales]

Bueno tras unos dias OUT debido a la preparacion de examenes y practicas, vuelvo para realizar el proyecto musical de arduino. Se trata de generar hasta 8 notas musicales por una de las salidas analogicas de nuestro arduino.
Para ello vamos a necesitar los siguientes componentes:
  • Zumbador piezoelectrico
  • Arduino uno
Como podeis comprobar requerimos poco mas que un pequeño altavoz o zumbador para hacer esta practica.
Tan sencillo como los materiales que necesitamos sera nuestro diseño en placa, seria algo parecido al siguiente:
Una vez implementado nuestro diseño, pasaremos a programar nuestra placa arduino. Para ello, tenemos que tener en cuenta lo siguiente:
  • Se debe crear un arrayde datos compuesto por los valores correspondientes a las 8 notas que se pretende sacar:
int notas[] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956};
  • Se deben definir también el tiempo de pausa entre nota y nota y el tiempo de pausa de fin de secuencia de notas:
int tnota=100;
int tpausa=100;
  • Las iteraciones para el recorrido de las 8 notas se realizan con una instrucción de tipo for:
for(n=0;n<8;n++)

  • El tiempo de activado y desactivado de la salida del zumbador también se resuelve con un bucle for:
for(m=0;m<=tnota;m++){

Dicho esto, el codigo seria el siguiente:


int notas[] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956}; //cadena con los
tiempos que corresponden a las distintas notas
int n=0;
int m= 0;
int tnota=100; //no de repeticiones del pulso. Nos da la duración de la nota
int tpausa=100;
void setup() {
pinMode(10,OUTPUT);
}
void loop(){
for(n=0;n<8;n++){ //iteración que recorre la lista con las duraciones de los
pulsos de cada nota
for(m=0;m<=tnota;m++){
digitalWrite(10,HIGH);
delayMicroseconds(notas[n]); //Tiempo en microsegundos que está a 5V la salida del piezoeléctrico
digitalWrite(10,LOW);
delayMicroseconds(notas[n]); //Tiempo en microsegundos que está a 0V la salida del piezoeléctrico
}
delay(pausa); //tiempo en silencio
}
}

Con esto terminaremos el proyecto de hoy, proximamente ire subiendo nuevos proyectos. Salu2!

jueves, 29 de septiembre de 2011

Septimo Proyecto[Utilizando un sensor de temperatura]

Tras unos dias bastante liados vuelvo al blog para mostrar mi septimo proyecto basado en la utilizacion de un sensor de temperatura o NTC. El fundamento de este proyecto es medir la temperatura desde el PIN 3 de la entrada analogica y comprobar si el valor es superior a 500. Si supera este valor activara la salida digital PIN 13. Este proyecto es bastante util si queremos tener un sensor de temperatura o diseñar una alarma de incendios.
Dicho esto, pasaremos a mostrar los componentes que vamos a utilizar:
  • 1 NTC o sensor de temperatura
  • 1 LED
  • 1 Resistencia de 1k Ohmio
Una vez obtenidos los materiales, pasaremos a diseñar nuestro circuito electronico. Aparentemente seria algo parecido al de la imagen:

Hecho nuestro diseño y una vez implementado, pasaremos a codificar nuestra querida placa Arduino. Al igual que el sexto proyecto utilizaremos una entrada analogica(NTC) y una entrada digital(LED). El programa seria el siguiente:





//NTC
int val = 0; // variable para almacenar el valor capturado desde el sensor
int nivel=500//valor maximo de temperatura
void setup()
{
pinMode(13, OUTPUT); // declara el pin 13 como salida para el LED
}
void loop()
 {
val = analogRead(3); //lee el valor del sensor ntc NO SE DECLARA
if(val>nivel){
digitalWrite(13, HIGH); // enciende el LED
}
else{
 digitalWrite(13, LOW); // NO enciende el LED
}

}
Con el programa finalizamos nuestro septimo proyecto! proximamente iremos actualizando con nuevas practicas! un salu2

lunes, 26 de septiembre de 2011

Sexto proyecto[Sensor de luz o LDR]

Tras un fin de semana bastante ocupado en el ambito temporal , nos ponemos manos a la obra para desarrollar nuestro sexto proyecto. Dicho proyecto se basa en la utilizacion de un sensor de luz o tambien conocido LDR. Sin nada mas que añadir, pasare a mencionar la lista de materiales necesarios para desarrollar esta practica:

  • 1 resistencia LDR
  • 1 reistencia de 5k ohmios
  • 1 LED
  • Cables de conexion
Una vez recolectados todos los materiales, pasamos a diseñar nuestro circuito electronico. La funcionalidad de este proyecto es encender el LED cuando obtengamos la luz de la resistencia LDR. De forma que dependiendo de la cantidad de luz que obtengamos parpadeará de una forma mayor o menor.
El circuito que vamos a utilizar es el siguiente:

Una vez montado nuestro diseño , pasaremos a programar nuestra placa arduino. Para ello,vamos a leer la señal LDR de la entrada analógica mediante la función analogRead(pin).
Es decir, el código seria el siguiente:

//LDR
int val = 0; // variable para almacenar el valor capturado desde el sensor

void setup()
{
pinMode(13, OUTPUT); // declara el pin 13 como salida
}
void loop()
 {
val = analogRead(3); //lee el valor del sensor
digitalWrite(13, HIGH); // enciende el LED
delay(val); // detiene el programa por un tiempo
digitalWrite(13, LOW); // apaga el LED
delay(val); // detiene el programa por un tiempo


}


Con esto terminaríamos el proyecto de hoy, para cualquier cosa no dudéis en preguntar! salu2

jueves, 22 de septiembre de 2011

Quinto proyecto[Usando la libreria servo]

En este quinto proyecto vamos a explicar como utilizar la librería servo.h y vamos a interaccionar con un servomotor. En este primer proyecto dedicado al servo aun no lo vamos a controlar mediante el terminal. Tan solo lo utilizaremos acogiéndonos a unas ordenes que le programemos previamente. Sin nada mas que objetar, pasare a mostrar los materiales necesarios:
  • Placa arduino UNO
  • Servomotor
Una vez obtenidos los materiales necesarios, pasamos a diseñar nuestro circuito electronico. El circuito es sencillo, lo podemos apreciar en la siguiente imagen :


 
Una vez montado nuestro circuito, pasaremos a programar nuestra placa Arduino. Para programarla, utilizaremos la libreria servo.h ya preconfigurada por definicion.
El programa que vamos a desarrollar se basa en hacer girar nuestro servo 180º y tras ello volver al inicio. Es el primer paso para programar nuestro servo, es sencillo e intuitivo. El programa es el siguiente:


//Programa Servo
#include <Servo.h>  
 Servo servo1;  // Crea un Objeto servo  
  
void setup()  
{  
  servo1.attach(2);  // Selecionamos el pin 2 como el pin de control para el servo  
}  
   
void loop()  
{  
      
  servo1.write(0);       // Escribimos la posicion con el mapa de valores al servo , en este caso 0º
  delay(2000);           // Esperamos 2000 ms
  servo1.write(180);  // Volvemos a la posición 180º 
  delay(2000);          // Esperamos 2000 ms
}

Con esto terminamos el proyecto de hoy, simplemente es una introduccion al uso de servos que iremos ampliando posteriormente. Un saludo a todos! Suscribiros