Show Posts
Pages: [1] 2 3 ... 13
1  International / Proyectos / Re: Proyecto nuevo con TM1640 Ayuda plz... on: September 13, 2012, 07:18:56 am
Para la primera cuestión que planteas, yo utilizaría un timer para controlar el número de pasos por segundo que estás generando con el encoder y si supera cierta "velocidad", aumentar el contador de 10 en 10, o de 100 en 100, en lugar de 1 en 1.

En cuanto al tema de disminuir al girar a la izquierda, ¿puedes poner el código y las librerías que utilizas en el post?
2  International / Software / Re: comparación coordenadas on: September 05, 2012, 05:02:28 am
Tu idea es buena pero no puedo quitar el punto ya que los decimales suelen variar de un dato  a otro  y entonces la resta me saldría mal.

Siempre puedes rellenar con ceros cuando conviertes de texto a valor para igualar el número de decimales y/o trabajar con un número fijo de decimales (si decides trabajar con 5, desprecias los siguientes si hay o rellenas con ceros si faltan).
3  International / Proyectos / Re: Proyecto nuevo con TM1640 Ayuda plz... on: September 04, 2012, 03:00:35 am
Hola,

Cuando te refieres a
El problema es que los valores que aparecen en el puerto serie, no se corresponden con su valor que supuestamente he definido...
Supongo que estas haciendo referencia a la línea de código que está comentada en la función
Code:
void readSwitch();{
val =analogRead(analogPin); // Almacena el valor leido en 0
// analog, en val.
//serial.print(val); // Usado solo para calibrado
// y pruebas del Rotary switch.

if(val>=972 && val< 1024) { // Lectura entrada analógica 1023.
    stage =  1;
    status = "Com 1";} // Com 1.
...
...
  }

Y cuando dices que no coinciden con el valor que has definido te refieres al valor que esperas según las resistencias que has puesto.

Si todo esto es así, el problema que tienes es que no has "definido" bien el valor de esas resistencias. Tendrás que poner el esquema del circuito que has montado para que lo podamos comprobar.

Por otro lado, estaría bien que pusieses el código que realmente estabas probando (a parte de no enviar nada por puerto serie, el código que has puesto no compila ya que has puesto un "9" en lugar de un ")" en todas las funciones readEncoder...(), maldito copy&paste!!!  smiley-wink) que supongo que será una parte de este con el resto comentado.

4  International / Software / Re: comparación coordenadas on: September 04, 2012, 02:36:37 am
Si estás leyendo los datos de un módulo GPS y comparandolos con otros de un fichero en una SD, supongo que estás manejando todo el rato cadenas de carácteres (por lo menos la lectura del GPS). Lo primero que tendrás que hacer es convertir esos textos a números y guardarlos en el tipo de número que más te interese.

Si siempre vas a utilizar el mismo número de decimales (por el ejemplo que has mostrado, 5 decimales), yo multiplicaría el valor por la potencia de 10 necesaria para eliminar la parte decimal (en tu ejemplo por 10^5=100.000). Como la posición GPS va desde -360 hasta 360 (es positiva y/o negativa, por lo tanto, no puedes usar un tipo unsigned), el rango de valores con el que vas a trabajar será de -36.000.000 (-360*100.000) hasta 36.000.000 (360*100.000). El tipo de datos para trabajar con ese rango es el tipo long (http://arduino.cc/en/Reference/Long).
5  International / Software / Re: Puerto Serie y Visual Basic.Net on: July 25, 2012, 04:23:36 am
El error que me reporta Visual Basic.Net es el siguiente "la conversión de la cadena "" en el tipo Integer no es válida" y no sé el porqué me lo dice.

        If lectura = "" Then lectura = lectura  //Intento capturar la cadena "" para transformarla en el valor leído anteriormente

Creo que está bastante claro, ¿no? Un entero es un valor numérico, y "" no lo es, es una cadena de caracteres vacía. Por cierto, ¿cómo quieres capturar una cadena vacía?
6  International / Proyectos / Re: Ayuda Para Hacer La Interfaz Arduino Matlab on: July 13, 2012, 04:39:21 am
En el playground tienes un artículo que explica como hacerlo:

http://arduino.cc/playground/Interfacing/Matlab
7  International / Software / Re: Ayuda novato on: July 06, 2012, 06:53:38 am
No se de dónde has sacado este último ejemplo, pero aunque te compilase, no te va a funcionar.

No es una forma correcta de detectar el suelte del pulsador, ya que solo detectará pulsación si el paso de alto a bajo se produce justo en el momento en el que el micro pasa entre los dos if, cosa realmente improbable.

En cuanto al fallo de compilación que te da, ¿podrías explicarlo mejor y copiar exactamente el fallo que te da el IDE?

PD: Utiliza la etiqueta/botón INSERT CODE (#) para añadir código a los post, está justo encima del smiley smiley-wink
8  International / Español / Re: Mando RF para abrir ventana Buardilla on: July 06, 2012, 06:43:06 am
Como ya te he dicho, en el receptor es mejor que no toques nada. Si quieres modificar algo, podrías puentar los pulsadores del transmisor para conectarlos a una placa arduino y generar desde la placa las pulsaciones del transmisor.

Lo que pretendo es que mediante el arduino pueda abrir (boton A) y cerrar(boton B9) el tragaluz y para sumar puntos en el marcador bien al jugador A o al B.

Si lo que quieres es actuar  sobre las salidas de los relés del receptor, es más sencillo utilizar una placa/shield de relés y trabajar sobre ella, olvidandote del módulos RF.

Las librerias pues serian las necesarias para manejar modulos RF o similar con Arduino, tambien me seria de utilidad si alguien ha hecho algo similar para ver el codigo. Estoy empezando con Arduino y no se como empezar, a saber, en que pins pinchar las salidas del receptor (solo uso el modulo de recepcion sin codificadores), como le llegan a arduino la entrada, como diferencio si se pulsa el boton A o el B , .....etc etc.

Hay cientos, miles de modulos RF que no tienen nada que ver unos con otros, no hay una librería "milagrosa" que te permita manejarlos todos. El módulo RF que has comprado puede no tener nada que ver con cualquiera que encuentres en algún ejemplo por la red, por lo que tampoco te puede servir ese código.

Si quieres saber como funciona ese módulo, o bien lo caracterizas mejor para ver si alguien ha utilizado alguno parecido o te pones tu a ver como funciona (que señales envía/recibe, si es analógico o digital, si utiliza protocolos, qué microcontrolador utiliza, ...)
9  International / Español / Re: Mando RF para abrir ventana Buardilla on: July 06, 2012, 04:54:06 am
no se ni como empezar para usarlo, librerias posibles y demas.

En la propia página del vendedor tienes un "manual" de usuario, aunque no tiene mucho misterio. Conectas la carga que quieres controlar a las clemas de los relés y con el mando a distancia los controlas.

¿Librerías? ¿Que librerías quieres de un aparato que se vende como tal? Lleva un módulo de radiofrecuencia a 315 MHz con un protocolo de comunicación desconocido y controlado por un micro que no se sabe cual es (tú que lo tienes en la mano podrías mirarlo, pero los demás...) Aunque llevase un micro Atmel, incluso ATMega 328 como el arduino UNO, no quiere decir que se pueda utilizar como tal, además piensa que si modificas el firmware del micro, (si puedes y no está protegido por los fuses) tienes que hacer una copia del que tiene grabado para poder volver a utilizarlo.

Es decir, si quieres modificarlo/jugar con él, tienes mucho que trastear antes. ¿Cuál era tu intención?
10  International / Proyectos / Re: Ayuda con codigo para seguidor de linea on: June 30, 2012, 01:07:27 am
Como en cualquier lectura de un sensor, yo te recomendaría que hicieses varias lecturas y calculases una media para obtener el valor "resultado" con el que vas a trabajar.

Como te han dicho, lo más importante de ese código es que quites el delay y no utilices ninguno, ya que eso "para" la ejecución del código y dejas sin control el robot durante ese segundo. Si quieres ver como hacer una temporización sin delays, hay un ejemplo en el IDE "blink without delay" donde lo importante está en:

Code:
  unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis > interval)
  {
    // save the last time you blinked the LED
    previousMillis = currentMillis;   
    // Codigo que se ejecuta cada "interval" de tiempo
  }

En cuanto al motor, no dices que tipo de motor utilizas ni como lo has conectado, con lo cual no se sabe si lo estás controlando bien o no.

Como te dije en el primer post, si ese es tu robot, antes de montar todo deberías haber ido probando cada cosa por separado para saber como controlarlas y después ir juntandolas y probandolas juntas. Si lo tienes todo montado y no lo has probado, ahora no vas a saber si el fallo está en el software o en el hardware, por no decir que no sabes como controlar cada una de las partes.
11  International / Español / Re: Asterisk + arduino = domotica??? on: June 30, 2012, 12:49:15 am
Lo primero de todo sería modificar el código php. Yo de php....ni idea, pero el código que has puesto parece sencillo y la modificación sería algo así como:
Code:
#!/usr/bin/php -q

<?php

require("phpagi.php");
$agi = new AGI();

                                                                                 
// Cambie los siguientes valores para reflejar su puesta en marcha
$arduino_ip "tcp://192.168.0.130";                   //la ip que le asigne a mi arduino
$arduino_port 23;                                                // abrir un socket a la dirección IP del Arduino y el puerto

$fp fsockopen($arduino_ip$arduino_port$errno$errstr);

if (!
$fp) {
   exit();
}

$continue true;
while(
$continue){
   
$return $agi->get_data('beep'100001);
   if ((
$return['result'] >= 0) and ($return['result'] <= 255)){
      
fwrite($fp$result);                                                                            //No se convierte a ASCII, se pasa directamente el valor de 8 bits
   
}

}

fclose($fp);

?>

La idea es que en lugar de enviar los carácteres ASCII del '0' al '9', envíes un byte con el valor correspondiente (de 0 a 255)

En cuanto al código en el arduino, no haría falta modificarlo. Cuando recibes un dato, lo lees y lo pasas a la aplicación.

Con respecto a lo del '0', te vuelvo a repetir, que no tienes más que probalo para ver que funciona tan bien como el '1 o el '7', por ejemplo, con el mismo código que tienes. Solo tienes que añadir la entrada en la tabla correspondiente.
12  International / Español / Re: Asterisk + arduino = domotica??? on: June 29, 2012, 11:56:36 am
el 0 no lo puedo usar ya que si lo hago el pin quedara activo todo el tiempo

No entiendo porque no puedes usar el 0.

Si envías un cero, available() te devolverá true, es decir, dirá que has recibido un dato (con valor=0, pero un dato). Cuando lo leas con read, el valor será cero y pasarás el parámetro con valor 0 a la función acción().

Si no envías nada, available te devolverá false y no ejecutará nada del if.

En cuanto a pasar 2 dígitos, la solución más sencilla es que envíes un byte en lugar de un carácter ASCII, podrás enviar desde 0 hasta 255 como ya te había dicho.
13  International / Español / Re: ds1820 problem on: June 29, 2012, 11:43:16 am
De nada, hombre, de nada.  smiley-wink
14  International / Proyectos / Re: Ayuda con codigo para seguidor de linea on: June 29, 2012, 10:37:27 am
¿¿¿Quieres que te ayuden o quieres que te lo hagan???

Si es lo primero (espero), ¿en qué estado se encuentra tu proyecto? A parte de "decidir" que sensores y que motor/driver usar, ¿qué más tienes? ¿Has realizado alguna prueba? ¿Has montado algo? ....

Si no has llegado al punto de contestar afirmativamente a esas preguntas, empiezas a pedir ayuda muuuuuuuyyyy pronto. En este caso, aqui tienes un par de links:
http://bit.ly/LVGqNL
http://bit.ly/LVGwoF

Si es lo segundo....¿Por cuánto?  smiley-money smiley-money smiley-money smiley-money smiley-money smiley-money

PD: Supongo que la foto es de lo que esperas conseguir, no de lo que ya tienes, porque sino no sé que te puede faltar smiley-wink
15  International / Español / Re: ds1820 problem on: June 29, 2012, 07:00:45 am
jorge esta en el setup
tengo que decirte   que
 sin conectar la sonda t2  la temperatura en pantalla es la misma para t1(conectada) y t2 ( desconectada ) y la t3(conectada) marca su temperatura ,en cuanto conecto la sonda t2 a sus hermanas  se pone como en corto y marca todas 1º mando en zip el codigo .y gracias por tu interes
estan juntadas  las  data (amarillo)junto al positivo+r4.7k a vcc y  (rojo y negro) al gnd( son ds1820 enfundados )vamos cuando esta dos sondas va de fabula tres como que no  smiley-zipper
No entiendo muy bien que quieres decir

Debes ir probando las cosas poco a poco, para asegurarte de que vas haciendo las cosas bien y, si tienes un fallo, poder localizarlo fácilmente. Para saber si es un problema de hardware o del 1-wire, configura el puerto serie del arduino para poder utilizar el monitor serie (serial.begin() en el setup) y en la función temperatura manda por puerto serie las lecturas de las sondas cuando las hagas:

Code:
void Temperatura(int minutos, int horas)
{
  float T1;
  float T2;
   float T3;
  sensores.requestTemperatures();
  T1=sensores.getTempCByIndex(0)+1;
  T2=sensores.getTempCByIndex(1)+1;
  T3=sensores.getTempCByIndex(2)+1;
  serial.print("T1: ");
  serial.println(T1,2);
  serial.print("T2: ");
  serial.println(T2,2);
  serial.print("T3: ");
  serial.println(T3,2);

Así, verás en el monitor serie los valores que estás leyendo de cada sonda.

Con este código empieza a hacer pruebas de conexión de las sondas una a una, desconexión de sondas una a una,...Así podrás ver si es una en concreto la que falla o es siempre la última sonda que conectas o ....

Si es una sonda la que falla siempre, prueba a cambiarla. Si tienes más sondas, prueba también con ellas.

Si ves que las lecturas del monitor serie son correctas, entonces el problema estará en tu código y entonces le echaremos un vistazo a ver que pasa.

Pages: [1] 2 3 ... 13