Show Posts
Pages: 1 ... 42 43 [44] 45 46 ... 49
646  International / Español / Re: Ayuda a Principiante !!! on: April 23, 2011, 10:55:20 pm
Hola Gatoloco65,
todo lo que se ejecuta cuando haces la comprobación if() tienes que ponerlo entre llaves,
 if(digitalRead(Pulsador) == HIGH)
{
   ...
}
en caso contrario se te ejecutará siempre, independientemente de la comprobación. También he cambiado la forma de hacer la comprobación, a digitalRead  le paso el pin donde tiene que leer, y la función devuelve HIGH ó LOW
Code:
void Inicia()
{
    if (digitalRead(Pulsador) == HIGH)   //Pulsador oprimido
     {
        digitalWrite(Led4,HIGH); //Enciende el LED
        delay(5000);
        digitalWrite(Led4,LOW); //apaga el Led para esperar a que sea oprimido nueva/.el pulsador
     }
 }

Cuando llamas a attachInterrupt() utilizas el 'mode' CHANGE, que actúa tanto cuando pasa de LOW a HIGH, como cuando lo hace de HIGH a LOW
Puedes probar el modo RISING, que actúa solo cuando pasa de LOW a HIGH

647  International / Español / Re: Ayuda a Principiante !!! on: April 21, 2011, 11:28:12 pm
Hola,

todo lo que está en loop() se ejecuta secuencialmente una y otra vez, y la comprobación del pulsador tiene que esperar a pasar todos los delay() en cada ciclo. Una forma de esperar menos, sería hacer la comprobación después de cada delay, la podrías formular como una pequeña función
Code:
comprobar_pulsador()
{
    if (digitalRead(Pulsador)==HIGH) //Pulsador oprimido
    {
         digitalWrite(Led4,HIGH); //Enciende el LED
         delay (3000);  //Tiempo Prendido
         digitalWrite(Led4,LOW); //Apaga el LED
    }
}

Si necesitas una respuesta más rápida para el pulsador, puedes usar las interrupciones, tendrás dos por lo menos en los digital 2 y 3, attachInterrupt() llama a una función cuando ocurre algo. Tienes un ejemplo en http://arduino.cc/en/Reference/AttachInterrupt



648  International / Español / Re: Desbordamiento y millis() on: April 13, 2011, 05:31:18 am

Hola,
En la referencia de Arduino sobre millis() dice que devuelve un unsigned long, y que a los 50 días más o menos empieza de cero. La variable unsigned long puede llegar hasta unos 4 Gigas, que son los milisegundos que hay en 50 días, más o menos.
649  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.

650  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);
}



651  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;

652  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

653  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=


654  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.
655  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

656  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.

657  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)
658  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.
659  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?
660  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.

Pages: 1 ... 42 43 [44] 45 46 ... 49