Show Posts
Pages: 1 ... 42 43 [44] 45 46 ... 49
646  International / Español / Re: Consulta Arduino y Lector de huella on: April 12, 2011, 01:59:28 pm
Hola,
me temo que arduino tiene muy poquita memoria y capacidad de procesamiento para tratar las imágenes de las huellas dactilares: construir patrones, comparar una huella con ellos... Creo que existen chips específicos para ello.

647  International / Español / Re: Capacidad (bits) necesaria para almacenar mediciones. on: April 10, 2011, 02:34:15 am
Hola,
he hecho un programilla de empaquetado de datos (temperatura, semana, dia de mes, nombre de  mes,  hora, minuto, segundo)  utilizando campos de bits (ocupa 5 bytes). Se les da unos valores arbitrarios,  y se muestran  los valores  por puerto serie.
Code:

struct datos_byte
{
   int                temperatura: 7;      // 128 estados
   unsigned int         semana: 3;      //   7 estados
   unsigned int        dia_mes: 5;      //  31 estados
   unsigned int  nombre_mes: 4;      //  12 estados
   unsigned int              hora: 5;      //  24 estados
   unsigned int         minutos: 6;      //  60 estados
   unsigned int       segundos: 6 ;     //  60 estados
} datos;


void setup()
{
   Serial.begin(9600);
}

void loop()
{
  // dando valores arbitrarios
  datos.temperatura = 37;
  datos.semana = 1;
  datos.dia_mes = 2;
  datos.nombre_mes = 3;
  datos.hora = 4;
  datos.minutos = 5;
  datos.segundos = 6;
  
    
  Serial.print("\n-----------------------\n");
  Serial.print("sizeof(datos): ");
  Serial.print(sizeof(datos), DEC);
  Serial.print("\n-----------------------\n");
  
  Serial.print("temperatura: ");
  Serial.println(datos.temperatura, DEC);
  
  Serial.print("datos.semana: ");
  Serial.println(datos.semana, DEC);

  Serial.print("datos.dia_mes: ");
  Serial.println(datos.dia_mes, DEC);

  Serial.print("datos.nombre_mes: ");
  Serial.println(datos.nombre_mes, DEC);

  Serial.print("datos.hora: ");
  Serial.println(datos.hora, DEC);

  Serial.print("datos.minutos: ");
  Serial.println(datos.minutos, DEC);

  Serial.print("datos.segundos: ");
  Serial.println(datos.segundos, DEC);

  delay(3000);
}



648  International / Español / Re: Capacidad (bits) necesaria para almacenar mediciones. on: April 09, 2011, 12:37:54 pm
Hola,
en C se pueden usar los campos de bits, que pueden servir para optimizar el uso de memoria. En este caso, se podría definir una estructura que engloba los datos mencionados
Code:
struct datos_byte
{
   int temperatura: 7;                 // 128 estados
   unsigned int      semana: 3;      //   7 estados
   unsigned int     dia_mes: 5;      //  31 estados
   unsigned int  nombre_mes: 4;   //  12 estados
   unsigned int        hora: 5;        //  24 estados
   unsigned int     minutos: 6;       //  60 estados
   unsigned int    segundos: 6 ;     //  60 estados
} datos;

649  International / Español / Re: Medir el valor de una resistencia. on: April 03, 2011, 11:00:20 pm
Hola,
el divisor de tensión necesitaría estar conectado a una tensión estabilizada. Tienes ejemplos en la web


http://www.google.es/url?sa=t&source=web&cd=4&ved=0CC8QFjAD&url=http%3A%2F%2Fweb.cecs.pdx.edu%2F~gerry%2Fclass%2FEAS199B%2Fhowto%2FthermistorArduino%2FthermistorArduino.pdf&rct=j&q=arduino%20measure%20temperature%20thermistor&ei=BkGZTfbaE5CzhAe9u6SACQ&usg=AFQjCNG64v0GLcFFk-7WgMQUoCmbkejMig&sig2=VEsGOdgkEwd-NtrteSy5hg&cad=rja

650  International / Español / Re: Ayuda con datos de Bascula Digital puerto SERIAL on: April 03, 2011, 10:30:10 pm

Hola,
en el manual, que se puede buscar en Google, habla de salida continua en forma de una cadena de seis caracteres ascii acabada en retorno de carro, por ejemplo si pesas 100kg recibes '1' + '0' +  '0 ' +  '.'  + '0' + '0' + '0' + 13, o sea, la cadena "100.000". Se trataría de leer caracteres hasta que llegue el <CR>
Lo que no entiendo bien cómo se direccionan esos "Address"

Quote
4.4 Continuous ASCII RS-232 data output format
4.4.1 Automatic Output
4.4.1.1 Address: Adr = 00
The ASCII data format is “=,X1,X2, X3,X4,X5,X6”
<stx> =,X1 , X2, X3 , X4, X5, X6 <cr>
X1, X2, X3, X4, X5, X6 is weight data.
If the weight is 〖100.00〗kg, the continuous output is = 00.001 = 00.001=
4.4.1.2 Address: Adr = 99
The ASCII data format is “=,X6,X5,X4,X3,X2,X1”
<stx> =,X6 , X5, X4 , X3, X2, X1 <cr>
X6, X5, X4, X3, X2, X1 is weight data..
If the weight is 〖100.00〗kg, the continuous output is = 100.00 = 100.00=


651  International / Español / Re: botones on: March 24, 2011, 12:01:34 pm
Hola
yo creo que tendrás que hacer dos cosas cuando se pulse el  3. botón: selecionar la 3ª línea, y llamar a una función que haga algo. No creo que la línea selecionada pueda llamar a una función.
652  International / Español / Re: Atlas scientific on: March 19, 2011, 03:17:36 pm
Hola,
Me imagino que necesitará conectar una sonda  (electrodo de vidiro)
El uso, por lo que dice el manual, parece sencillo: hay que enviarle un comando por el puerto serie (por ejemplo, "R<CR>" para que haga una lectura), y leer por el puerto serie una cadena ascii terminada en <CR> (ascii 13)


Vcc – Operates on 2.5V – 5.5V

TX – TX output delivers asynchronous serial data in RS232 format, except voltages are
0-Vcc. The output is (up to five) ASCII digits representing the PH and ending
with a carriage return (ASCII 13).
Example: 4.60<CR>

The baud rate is: 38400, 8 bits, no parity, with one stop bit.

If standard voltage level RS232 is desired, connect an RS232 converter such as a MAX232.

RX – RS-232 receive pin

653  International / Español / Re: Detectar automáticamente el puerto COM que usa Arduino on: March 13, 2011, 01:07:40 am
Gracias chiva
Eso voy a hacer, ir probando a abrir sucesivamente COM0, COM1, COM2..., y verificar en cuál responde un determinado Arduino a un código preestablecido para él.

654  International / Español / Detectar automáticamente el puerto COM que usa Arduino on: March 12, 2011, 01:59:35 pm
Hola,
estoy intentando comunicarme entre el Arduino y un PC con un programa escrito en C: desde el PC se le envía una cadena de caracteres, y el Arduino contesta con otra cadena.  La comunicación se establece sin problema si paso al programa el nombre del puerto (ttyUSB0 en Ubuntu, COM4 en XP). En Ubuntu no tengo problema para que el programa C detecte automáticamente el puerto, con una rutina que va intentando abrir ttyUSB0, ttyUSB1, ttyUSB2... Pero en XP tengo dos puertos: COM1 ("Puerto de comunicaciones") y COM4 ("USB Serial Port", es el de Arduino). La rutina me abre COM1
¿Conocéis algún modo de que desde el programa pueda distinguir un puerto del otro? Estoy utilizando funciones del WIN32 API (CreateFile, WriteFile, ReadFile)
655  International / Español / Re: Arduino mínimo on: March 11, 2011, 02:13:26 am
Hola,
si vas a cargarle los sketchs con un conversor serie-USB FTDI te hará falta un botón de reset para hacer uploading.
656  International / Español / Re: ayuda , no consigo comunicar arduino con mi pc on: March 03, 2011, 09:26:31 am
Hola,
cuando conecto el arduino, en "Puertos (COM & LPT)" desplegado aparece junto a "Puerto de comunicaciones()" un "USB Serial Port()", que desaparece al desconectar arduino. ¿Te sale lo mismo?
657  International / Hardware / Re: localizador para animales . gps on: February 26, 2011, 11:39:13 pm
Hola,
En el lado de la rapaz realmente no sé si necesitas un arduino para esa aplicación donde me imagino que el peso puede ser crítico. El gps recibe la señal de los satélites y calcula dónde se halla el ave. Necesitarás que te transmita esa información, y para eso tendrás que buscar alguna emisora con la potencia necesaria (no sé de qué distancias estamos hablando). Tienes los xbee Pro http://www.sparkfun.com/products/8690 que pueden alcanzar 1500m y tienen comunicación serie, como el módulo gps. Lo ideal sería unir el gps al xbee.

658  International / Software / Re: Dudas con IF y else on: February 24, 2011, 05:38:18 am
Hola,
Si entiendo bien, te funciona bien
Code:
void loop()
{
  if (irrecv.decode(&results))
  {
      Serial.println(results.value, DEC);

      if(results.value == num0)
      {
          estatpin = digitalRead(ledPin);
          if (estatpin == 0)
          {
                digitalWrite(ledPin, HIGH);
           }
           else
           {
                 digitalWrite(ledPin, LOW);
           }
       }
       irrecv.resume(); // Recivir siguiente valor
  }

Y te funciona bien
Code:
void loop()
{
  if (irrecv.decode(&results))
  {
      Serial.println(results.value, DEC);

      if(results.value == num100)
      {
          estatpin = digitalRead(ledPin);
          if (estatpin == 0)
          {
                digitalWrite(ledPin, HIGH);
           }
           else
           {
                 digitalWrite(ledPin, LOW);
           }
       }
       irrecv.resume(); // Recivir siguiente valor
  }
Si cada código funciona bien por su parte, no entiendo por qué ocurre tu fallo. Yo probaría sacarlos a dos funciones, y llamarles a cada uno desde el loop. No se me ocurre otra cosa.

659  International / Software / Re: Dudas con IF y else on: February 24, 2011, 01:59:23 am
Hola,
No veo nada anormal en el código. La línea que figura al final del segundo código
Code:
irrecv.resume(); // Recivir siguiente valor

existe también en el caso de un sólo botón?
660  International / Software / Re: Ejemplo 'goto' on: February 22, 2011, 11:56:03 am
Hola,
 creo que sí podrías volver, pero podría resultar muy difícil predecir cómo acabará el programa

Code:
for(a=0;a<9999;a++)
{
    for(b=0;b< 9999;b++)
   {
       (if(x == 20)
           goto marca1;
           marca2:;
           //mas codigo
         
   }
}

marca1:;
//codigo marca1
goto marca2;
Pages: 1 ... 42 43 [44] 45 46 ... 49