Go Down

Topic: Háblanos de tu proyecto... (Read 9425 times) previous topic - next topic

diegui22


Buenas noches, soy nuevo en Arduino y en el foro.

Perdon si posteo en el lugar incorrecto :-(

Les cuento mi problema: tengo un arduino UNO con la placa ethernet. Leyendo foros y documentos logre armar dos sensores PIR que "muestran" en una web si los sensores detectaron movimiento y le agregue un boton para "encender led" o activar rele.
Con un solo boton funciona perfectamente, pero cuando agrego el boton nro. 2 no logro encenderlo desde la web.
No me doy cuenta donde esta el problema en la programacion... Me darian una mano?
Adjunto el codigo y MUCHAS GRACIAS!!!!


#include <SPI.h>
#include <Ethernet.h>

// ethernet configuration
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
IPAddress ip(192,168,1,177); // P1 --> { 10, 1, 1, 5 };
EthernetServer server(88);              // port 80 is default for HTTP

// initial
int LED = 3;          // led is connected to digital pin 3
int LED2 = 8;          // led is connected to digital pin 8
int PIR = 2;          // PIR sensor is connected to digital pin 2
int PIR2 = 7;          // PIR sensor is connected to digital pin 4
int LDR = 5;          // LDR sensor is connected to analog in 5
int PIRstate = 0;     // variable for PIR sensor status
int PIRstate2 = 0;     // variable for PIR sensor status
float photocell = 0;  // variable for photocell (LDR) analog value
char c = 0;           // received data
char command[2] = "\0";  // command


void setup()
{
  Ethernet.begin(mac, ip);
  server.begin();
  pinMode(LED, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(PIR, INPUT);
  pinMode(PIR2, INPUT);
}


void loop()
{
  EthernetClient client = server.available();
  // detect if current is the first line
  boolean current_line_is_first = true;

  if (client) {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if we've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so we can send a reply
        if (c == '\n' && current_line_is_blank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          // auto reload webpage every 1 second
          client.println("<META HTTP-EQUIV=REFRESH CONTENT=1 URL=>");
         
          // webpage title
          client.println("<center><p><h1>Detector de movimiento WEB</h1></p><center><hr><br />");

          // read analog pin 1 for the value of photocell
          // photocell = analogRead(LDR);
          // client.print("<p><h2>Light reading = <font color=indigo>");
          // client.println(photocell, 2);
          // client.println("</font></h2></p>");
         
          // read digital pin 13 for the state of PIR sensor
          PIRstate = digitalRead(2);
          if (PIRstate == HIGH) { // PIR sensor detected movement
            client.println("<p><h2><font color=red>MOVIMIENTO DETECTADO! - SECTOR 1 </font></h2></p>");
          }
          else { // No movement is detected
            client.println("<p><h2><font color=green>Sin movimiento - SECTOR 1</font></h2></p>");
          } 
          // read digital pin 7 for the state of PIR sensor
          PIRstate2 = digitalRead(7);
          if (PIRstate2 == HIGH) { // PIR sensor detected movement
            client.println("<p><h2><font color=red>MOVIMIENTO DETECTADO! - SECTOR 2 </font></h2></p>");
          }
          else { // No movement is detected
            client.println("<p><h2><font color=green>Sin movimiento - SECTOR 2</font></h2></p>");
          } 
         
          // DM 3-8-2014
          PIRstate = digitalRead(3);
          if (PIRstate == HIGH) { // Led 1 activado
            client.println("<p><h2><font color=red>LED 1 ACTIVADO!</font></h2></p>");
          }
          else { // Led 1 desactivado
            client.println("<p><h2><font color=green>Led 1 desactivado</font></h2></p>");
          } 
          // DM 3-8-2014

          // DM 3-8-2014
          PIRstate = digitalRead(8);
          if (PIRstate == HIGH) { // Led 2 activado
            client.println("<p><h2><font color=red>LED 2 ACTIVADO!</font></h2></p>");
          }
          else { // Led 2 desactivado
            client.println("<p><h2><font color=green>Led 2 desactivado</font></h2></p>");
          } 
          // DM 3-8-2014
         
          // button functions
          client.println("<form  method=get name=form>");
          client.println("<button name=b value=1 type=submit style=height:80px;width:150px>LED1 On</button>");
          client.println("<button name=b value=2 type=submit style=height:80px;width:150px>LED1 Off</button>");
          client.println("<p> </p></center>");
          client.println("<button name=b value=3 type=submit style=height:80px;width:150px>LED2 On</button>");
          client.println("<button name=b value=4 type=submit style=height:80px;width:150px>LED2 Off</button>");
          client.println("</form><br />");
         
          // webpage footer
          client.println("<hr><center><a href=http://www.diegomarino.com.ar>Diego Marino</a><br />");
          client.println("<p>Esta pagina actualizara cada 1 segundo.</p></center>");
         
          break;
        }
        if (c == '\n') {
          // we're starting a new line
          current_line_is_first = false;
          current_line_is_blank = true;
        }
        else if (c != '\r') {
          // we've gotten a character on the current line
          current_line_is_blank = false;
        }
        // get the first http request
        if (current_line_is_first && c == '=') {
          for (int i = 0; i < 1; i++) {
            c = client.read();
            command = c;
          }
          // LED control
          if (!strcmp(command, "1")) {
            digitalWrite(LED, HIGH);
          }
          else if (!strcmp(command, "2")) {
            digitalWrite(LED, LOW);
           
            // LED2 control
         if (!strcmp(command, "3")) {
         digitalWrite(LED2, HIGH);
         }
          else if (!strcmp(command, "4")) {
           digitalWrite(LED2, LOW);
          }
        }
      }
    }
    }
    // give the web browser time to receive the data
    delay(1);
    client.stop();
  }
}

Hola a todos, después de dos años experimentando con Arduino, he decidido empezar un nuevo proyecto que le he llamado "ArduRover"(no es muy original, pero puede valer), se trata de un vehículo oruga capaz de moverse de manera autónoma o controlado a distancia. Irá evolucionando conforme pase el tiempo e implementemos múltiples accesorios y funciones.
Algunas de las funciones que me gustaría que tuviese son las siguientes:
•Movimiento de Avance, Retroceso, Giro a la Izquierda, Giro a la Derecha, etc (ya está implementado)
•Capaz de seguir una línea mas o menos compleja.
•Capaz de reproducir una ruta previamente almacenada y salir de un laberinto
•Evitar obstáculos
•Programación a través de una pantalla LCD
•Control de manera inalámbrica (Bluetooth).  (ya está implementado)
•Instrumentado con sensores de Luz, Temperatura, Sonido, etc.
•Comunicación bidireccional
•Brazo robotizado
•Cámara de Vídeo
•ETC

Algunos de los requerimientos ya se encuentran implementados en fase Beta y otros están en fase de proyecto.

Os dejo la dirección para que lo veáis y me digáis vuestra opinión.
http://ardubasic.wordpress.com/ardurover/

Espero que os guste y vuelvo a repetirme, decirme que os parece, si eliminaríais algo, si implementaríais alguna función, etc

Saludos


No estoy muy seguro de si esto iria aqui, pero he iniciado un nuevo proyecto y me gustaria consejos:

Mi idea original (luego puede variar segund vuestras sugerencias) es hacer un vehiculo robot que pueda ser teledirigido por ordenador via wifi o bluetooth. Para ello usariamos una raspberry que mediante wifi o similar se conectara al ordenador y recibiera ordenes (supongo que la programaria en Python) y que esta controle al arduino que tendra tanto la adquisición de datos (de los sensores de distancia y similares) como el control de los motores usando un shield. El robot llevara tambien incorporada una camara pero la idea es que sea analogica porque tengo entendido que enviar video via wifi no es algo tan sencillo.

Me gustaria que me aconsejarais algunas cosas como:
Deberia usar la camara de la raspberry e intentar el envio de video via wifi?
Deberia programar la raspberry en un lenguaje distinto a Python?
Con que deberia programar la interfaz para el ordenador? en principio habia pensado en C# que es lo que conozco.
Como me aconsejais que alimente el arduino y los motores?

Muchas gracias a todos! Como veis soy un poco novatin pero tengo ganas!


Yo estoy realizando un proyecto similar y el problema de la alimentación lo he solucionado con un bloque de seis pila recargables de 1.2 Vccv, con lo que alimento a los motores y al Arduino con 7.2 Vcc, como el Arduino necesita al menos 7..0 V, esta solucionado.
Espero haberte ayudado.
Saludos


Buenas noches todos.
Hace muy poco que comencé a darle vueltas a la idea de cosntruir un indicador de rumbo (o brujula) para mi velero.
Leyendo aqui y allá adquiri los componentes siguientes:
*ARDUINO MEGA 2560 https://www.adafruit.com/products/191
*LSM303 http://www.adafruit.com/products/1247
*LCD 16x2 http://www.adafruit.com/product/181
Siguiendo los tutoriales y las librerias del LCD y del LSM303 consigo que funcionen por separado pero no se como conseguir dirigir los valores de posicion del Norte del LSM303 al Diplay del LCD
Mis conocimientos en Programacion son muy escasos y acudo a este foro a ver si alguno de vosotros podeis darme alguna pista para conseguir unir las piezas del "puzle".
Gracias anticipadas.



Bueno lo primero para poderte ayudar es saber hasta donde has llegado.

Pon el código que te funciona y dime donde te has atascado. En principio si has conseguido que funcione por separado, tienes casi el proyecto terminado.

Saludos

Giovanny

Hola envio saludos, estoy construyendo un cuadricoptero controlado con una aplicación en android, también hecha por mi, ojala yen este lugar puedan proporcionarme algo de ayuda para el diseño del código en mi arduino, gracias

gratuita

Hola hace un tiempo encontré una pagina en la que explicaba como fabricar una gaita electrónica, así que me puse a ello sin tener ni idea del tema ya que el chico también había puesto el programa para que funcionase.

http://openpipe.cc/products/openpipe-breakout-board/

Yo no tengo ni idea del tema de programación pero me gustaría hacer algún añadido en el programa pero no se ni por donde empezar.

Esta gaita funciona mediante un sensor capacitativo mpr 121, un musical shield de sparkfun y una arduino uno.
Para que se active basta con colocar el dedo pulgar derecho en el sensor que le corresponde (normalmente este dedo no se utiliza para tocar), a mi me gustaría todo esto pasarlo a algo que tenga mas aspecto de gaita con un fol (bolsa que se infla) que al apretar supla al dedo pulgar mediante un presostato. también lo quiero plasmar todo esto en lugar de un tubo de plástico (como tengo ahora) en un punteiro de madera (eso si que se me da bien)

El programa en cuestión (no se donde porque no entiendo nada de lo que pone) dice electrodo 1 + 2 +3+...suena a nota ... Al no entender ese lenguaje no se donde tengo que modificar.

Alguien se anima a ayudarme?

Saludos desde Terrassa  Barcelona

Hola que tal, me llamo Danny y le cuento de que van mis proyectos

he estado investigando, no soy un gran programador pero soy muy aferrado y sinceramente pocas cosas me interesan y estoy mis enredado con arduino, tengo 2 proyectos pendientes

el primero es un "termostato para un play station"

ya casi esta terminado (de hecho acabo de compartir el codigo hace 2 mins aqui mismo)
pero enfrento el problema de como alimentar el ventilador a 12V .30Amps con Arduino; quizas puedan ayudarme (agradeceria infinitamente el detalle)

considero que el proyecto esta terminado en un 80%, si logro terminarlo con mucho gusto documentare y les compartire todo a todos :D

el segundo proyecto es un tanto mas ambicioso, pero no menos importante

quizas me entiendan... o quiza necesite hacer un video

tengo un tio que tiene una troqueladora para hacer ekis material

casi automatizada esta la maquina, el problema esq no logra alimentarse del material que ella necesita de una manera autonoma; para lograr esto he estado investigando sobre las llaves opticas, he visto que gente usa la S525, pero no he visto algun proyecto donde alguien lo haya complementado con arduino, el tema es: necesito que esta "llave optica" cuente las veces que pasa "algo" y que a la 8va vez que este "algo" pase mande un impulso electrico (120volts) por "ekis" cantidad de tiempo para activar un motor (120volts)

se que suena medio enredoso, de este proyecto no tengo nada, solo el conocimiento de que quiza necesite esta mencionada llave optica S525, podrian ayudarme?

en lo que pueda ayudar o aportar con mucho gusto les ayudare, pero apuesto que aqui yo resultare aprendiendo de ustedes y no ustedes de mi

Saludos!


Asusn61j

He diseñado un software que recibe lecturas de temperatura desde el Arduino Yún por medio de WIFI y las transforma en una termografía, donde se resaltan las concentraciones de calor de un espacio determinado.

Para la demostración he utilizado el Arduino Yún, el protocol HTTP, una webcam y una interfaz DC/AC con un TRIAC y un optoacoplador MOC3021.

A continuación el video donde pongo a prueba mi software.

https://www.youtube.com/watch?v=XYtrVl8R0Wk&list=UUOrMOPkLxjToXj0k1bziRew

Los pormenores de este proyecto los pueden encontrar en mi sitio web: Estudios de rendimiento en unidades de acondicionamiento de aire, por medio de sistema termografías computadirizadas basadas en Arduino y Java

Asusn61j

Este proyecto lo he diseñado para ser utilizado en laboratorios de sistemas dinámicos, donde se estudian vibraciones, sistemas masa-resorte, sistemas amortiguados y péndulos simples y complejos.

Se trata de un par de diodos láser que emiten un haz de luz, los cuales el Arduino se encargar de identificar una vez sean interrumpidos.

El proyecto completo lo pueden encontrar en este enlace.

Un video con el equipo funcionando está disponible en Youtube.

Espero sus comentarios.

Go Up