Show Posts
Pages: [1] 2 3
1  Using Arduino / Programming Questions / connecting and playing simultaneously more than one piezo speaker on: February 09, 2013, 01:10:34 pm
Hello everyone.

I have been playin' with buzzers and more or less I have under control how to play tunes, how to play sounds based on different sensors etc... but now I would like to connect two piezo speakers and play them at the same time, the idea is to be able to play polytone songs. Is there a way of doing this in arduino?

Thanks in advance smiley
2  International / Hardware / Re: Correr varios servicios con un arduino ethernet on: July 16, 2012, 06:26:25 am
Olvidé darte las gracias smiley
>Saludos
3  Using Arduino / Sensors / Re: NewPing (Ultrasonic) Library for HC-SR04, SRF05 and SRF06 sensors - v1.3 on: July 11, 2012, 04:12:12 am
Thanks for the reply @Human, I was thinking to use one of this as an alarm sensor for intruders but apparently these sensors doesnt seem very trustful smiley

Regards,

First, do you know that the NewPing library returns a value of "0" (all clear) when it doesn't detect anything?  So, a zero means that there's nothing within the range you set (in your sketch that would be 200cm).  It doesn't appear that your sketch is considering this.  Therefore, maybe your alarm if statement should be:

Code:
if (Range > 0 && Range < 10) {

Secondly, a delay of only 20 milliseconds is too short, you could get an echo from a previous ping.  Try changing your delay to 50 and see if that helps.  You probably shouldn't ping faster than once every 29ms.

Tim

Thank you @teckel after ignoring the 0 values, it's working perfectly!
4  Using Arduino / Motors, Mechanics, and Power / 2WD Arduino Ultrasonic Smart Car Kit on: July 10, 2012, 12:32:08 pm
Hello.

I have recently purchased a 2wd car with an arduino board in dealextreme (http://www.dealextreme.com/p/2wd-arduino-ultrasonic-smart-car-kits-128971) the kit is cool and I have managed to make it work, but I have  no idea how to assemble it or what to do with the servo (where should i fit it???)

I was wondering if any of you bought this kit and managed to figure out how to put the parts together, I have used celltape for mine but I guess there might be a smarter way to put them together smiley-wink

Thanks in advance....
5  Using Arduino / Sensors / Re: NewPing (Ultrasonic) Library for HC-SR04, SRF05 and SRF06 sensors - v1.3 on: July 10, 2012, 12:14:43 pm
Thanks for the reply @Human, I was thinking to use one of this as an alarm sensor for intruders but apparently these sensors doesnt seem very trustful smiley

Regards,
6  Using Arduino / Sensors / Re: NewPing (Ultrasonic) Library for HC-SR04, SRF05 and SRF06 sensors - v1.3 on: July 10, 2012, 11:42:58 am
Hello Teckel.

First of all thanks a mil for your library I think is a lot of job and you are really kind sharing it with us.

I'm new to arduino and I have recently acquired a HC-SR04 sensor and I have donwloaded and installed your library for a test that I'm doing.

This is the little sketch that I'm running and I don't know if it's because I did something wrong but from time to time the sensor returns a 0 value.

Code:
#include <NewPing.h>

#define TRIGGER_PIN  7  
#define ECHO_PIN     6  
#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int Range=200;
boolean Alarm=false;
int Counter = 1;
void setup() {
  Serial.begin(9600);
}

void loop() {
  
  Range = sonar.ping_cm();
 
delay(20);
  
  if (Range < 10) {

    Alarm = true;  
    Counter = 1;    
  }
  else if (Counter == 11) {
    Alarm = false;          
    Counter = 1;
  }
  
  if (Alarm)
    AlarmOn();
  
}

void AlarmOn(){
Serial.print("Intruso en:");  
Serial.println(Range);
Serial.print("Valor del contador:");  
Serial.println(Counter);  
  Counter++;
  
}

looking at the serial output I see that from time to time the sensor gets a 0 value and I don't know if it's a problem with my sketch or with the sensor itself...

Quote
Valor del contador:8
Intruso en:40
Valor del contador:9
Intruso en:40
Valor del contador:10
Intruso en loop:0
Intruso en:0
Valor del contador:1
Intruso en:39
Valor del contador:2
Intruso en:39
Valor del contador:3


I hope you can help thanks smiley-wink
7  International / Software / Re: función millis(), hasta cuando almacena valores? on: June 15, 2012, 06:35:12 am
gracias @cheyenne!
8  International / Software / función millis(), hasta cuando almacena valores? on: June 15, 2012, 04:33:13 am
Hola estaba implementando un trozito de código para que arduino hiciese algo cada x segundos de la siguiente forma:

Quote
int variable = 5000;
void setup(){}
void loop(){
if (millis()%variable==0){
Do(Something);
}
}

El caso es qe me está funcionando perfectamente durante los 600 segundos que lo he estado monitorizando, pero mi pregunta es, que pasa cuando el valor de millis() es demasiado grande????? Se resetea arduino, empieza a contar desde cero...???

Gracias de antemano smiley
9  International / Hardware / Correr varios servicios con un arduino ethernet on: June 14, 2012, 02:17:16 pm
Hola no se si este es el mejor sitio para lanzar esta pregunta o debería ponerlo en software, me estaba preguntando si sería problemático hacer que una arduino-ethernet estuviese corriendo un servidor web para mostrar datos de varios sensores y que además cuando se den ciertas circunstancias se envíe un correo electrónico...

Sería posible o habría algún tipo de incompatibilidad al llamar por ejemplo el ethernetclient mientras se está ejecutando el server.begin();....

Muchas gracias smiley
10  International / Hardware / Re: problema leyendo temperaturas en arduino-ethernet on: June 14, 2012, 08:03:38 am
Jorge vaya repaso me has dado smiley-wink muchas gracias tio, revisaré todo lo que me dices

Saludos

Edito:

El código de la temperatura lo saqué del libro de sparkfun (Sparkfun inventor's guide).

Aparentemente la función getvoltage Convierte el rango de 0-1024 de la entrada en un rango de 0 a 5...

Lo he probado quitando todo lo referente a ethernet y sigue dando el mismo problema...

No sé, igual el problema es que el sensor está tocado....

Gracias de nuevo a todos.
11  International / Hardware / Re: problema leyendo temperaturas en arduino-ethernet on: June 13, 2012, 12:05:41 pm
¿Puedes poner todo el código para comprobar que el fallo no está por otro sitio? ¿Y el esquema del montaje?

Aquí llevas todo el mogollón smiley

Code:
//Como siempre empezamos llamando
//las librerias necesarias
#include <SPI.h>
#include <Ethernet.h>
//Definimos las variables globales
//Variable de control para no enviar muchos emails seguidos
boolean correo=false;
//Pin donde conectaremos el sensor de temperatura
int anapin = 3;
//Mac address del arduinoethernet viene
//impreso por debajo de la placa, consta de 6 bytes en Hex
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xF2, 0xA6 };
//Servidor de email o en nuestro caso
//servidor donde hemos instalado el stunnel
byte server[] = { 10, 0, 0, 5 };
//Variable que guardara los valores leidos
//en el sensor de temperatura
float val=0;
//Creamos una objeto de clase EthernetClient
EthernetClient client;

//iniciamos el setup
void setup()
{
  //Se inicia el puerto serie
  Serial.begin(9600);
  //Mostramos por pantalla un mensaje
  Serial.println("Conectando el arduino ethernet a la red...");
  //conectamos el ethernet a la red, solo le pasamos la mac
  //ya que tenemos un servidor de dhcp en nuestra red
  //si queremos especificar la ip tendriamos que hacerlo aqui
  if (Ethernet.begin(mac)==0) Serial.println("Fall´ la conexi´n ethernet");
  //Dejamos un pequeño retardo para que se asigne la ip y demas
  delay(5000);
}

//Iniciamos el loop
void loop(){
  //leemeos la temperatura del sensor llamando a la función getVoltage
  //y le aplicamos la formula para que aparezca en grados centígrados
  //en este sketch obviamos la conversión en grados F ya que no la vamos
  //a necesitar
  val = (getVoltage(anapin) - .5)*100;
  //Como método de control imprimimos al puerto serie el
  //el valor del sensor
  Serial.println(val);
  //Dejamos una pausa para que las
  //muestras se tomen cada 5 segundos
  delay(5000);
  //Comprobamos si el valor de la temperatura esta
  //por debajo de 31ºC en cuyo caso no mandamos email
  if (val<31){
    Serial.println("NO SE MANDA EMAIL");
    if(correo) correo=false;
    //si la temp es superior mandamos el email
    //y cambiamos el valor de correo para que no vuelva a enviarse
  }else{
    //Comprobaos el valor de la variable correo
    //Si el valor de correo es falso mandamos el correo
    //y ponemos el valor de correo a true
    if(!correo){
      //LLamamos a la función que enviara el correo
      sendEmail();
      correo=true;
      //Dejamos un retardo de 1' para que en el caso
      //de que la temperatura se esté moviendo
      //entre 30 y 32º no envíe montones de correos
      delay(60000);
    }
  }
}

//Función que lee el voltaje del pin 3 de
//entradas analogicas
float getVoltage(int anapin){
  return (analogRead(anapin) * .004882814);
}

//Función que envia el email
byte sendEmail()
{
    //Conectamos el cliente al puerto 25
    //de nuestro servidor en caso de resultar
    //fallida la conexion nos devolverá un error
    //por pantalla
    if (client.connect(server,25)) {
      Serial.println("connected");
    } else {
      Serial.println("connection failed");
      return 0;
    }
    //Para cada comando llamamos la función
    //eRcv a fin de comprobar la respuesta del
    //servidor y de ir limpiando el buffer de recepción
    if(!eRcv()) return 0;
    //estos comandos son los que usariamos
    //en una conexion telnet, empezamos saludando
    //al servidor
    client.println("HELO google");
    if(!eRcv()) return 0;
    //Le decimos que queremos autenticarnos
    client.println("AUTH LOGIN");
    if(!eRcv()) return 0;
    //Enviamos el usuario en base64
    client.println("fjgkriemrerkEE54F=");
    if(!eRcv()) return 0;
    //Enviamos el password en base64   
    client.println("aGTvaiefSA==");
    if(!eRcv()) return 0;
    //especificamos el sender
    client.println("MAIL From:<mi@gmail.com>");
    if(!eRcv()) return 0;
    //especificamos el que recepciona el email
    client.println("RCPT To:<otro@gmail.com>");   
    if(!eRcv()) return 0;
    //indicamos que vamos a empezar a escribir el correo
    client.println("DATA");
    if(!eRcv()) return 0;
    //Aquí ponemos todo el cuerpo del mensaje incluyendo
    //el from el to y el subject
    client.println("From: mi@gmail.com");               
    client.println("To: otro@gmail.com");                         
    client.println("Subject: Alerta de temperatura en el cuarto de servidores!!!!" + String(int(val)) + "ºC");
    client.println("");                             
    client.println("Se ha detectado una temperatura anormalmente alta en el cuarto de servidores, concretamente de " + String(int(val)) + "ºC");
    client.println("");
    //Cuando enviamos un punto indica el fin del mensaje
    client.println(".");
    if(!eRcv()) return 0;
    client.println("QUIT");
    //Cerramos la conexion telnet
    if(!eRcv()) return 0;
    //Paramos el cliente
    client.stop();
    return 1;
}


//Esta función nos permite ir mostrando
//las respuestas del servidor para cada
//comando que enviamos, asi mismo va limpiando
//el buffer RX, hay servidores de correo que funcionan
//sin esta función pero con google es necesario.
byte eRcv()
{
  byte respCode;
  byte thisByte;
  while(!client.available()) delay(2000);
  respCode = client.peek();
  while(client.available())
  { 
    thisByte = client.read();   
    Serial.write(thisByte);
  }
  if(respCode >= '4')
  {
    efail();
    return 0; 
  } 
  return 1;
}

//Esta función nos dara un error en caso
//de que la respuesta del servidor sea un fallo
//y desconectara la sesion
void efail()
{
  byte thisByte = 0;
  client.write("QUIT\r\n");
  while(!client.available()) delay(1);
  while(client.available())
  { 
    thisByte = client.read();   
    Serial.write(thisByte);
  }
  client.stop();
  Serial.println("disconnected");
}
12  International / Hardware / Re: problema leyendo temperaturas en arduino-ethernet on: June 13, 2012, 11:37:30 am
ayer mismo encargué un 18b20s,  sin embargo,  no entiendo porque fallan cosas qie deben funcionar,...


por cierto en el esquema que adjuntas veo que se montan 3 sensores,  esto se hace para aumentar la precisión?  o hay alguna razón más que se me escape...
13  International / Hardware / Re: problema leyendo temperaturas en arduino-ethernet on: June 13, 2012, 11:24:47 am
Efectivamente cuando lleva un rato funcionando incluso con el cable de red desconectado empieza a írsele la pinza...
14  International / Hardware / Re: Problema con LCD keypad shield y arduino mega 2560 on: June 13, 2012, 10:50:10 am
Antonio,  un potenciómetro no es más que una resistencia variable por lo que puedes ponerle cualquier otro el mio lo saque del kit de iniciación a arduino que compre tiempo atrás...  de todas formas, para confirmar que el problema es el potenciómetro puedes puentear las conexiones con una resistencia o incluso directamente con un cable...

así al menos verás que lo que falla es el shield y no el programa...

lo que hace el potenciómetro es variar el contraste por lo que si no pasa corriente el contraste se queda al mínimo y por tanto no se verá
15  International / Hardware / Re: Problema con LCD keypad shield y arduino mega 2560 on: June 13, 2012, 10:35:15 am
Hola Antonio.

Recientemente yo también adquirí la misma shield,  la compré en dealextreme y también me doy algún que otro. dolor de cabeza...

Mira mi blog por si puede ayudarte...  itmanageratschool.blogspot.com

un saludo y suerte.
Pages: [1] 2 3