Show Posts
Pages: 1 [2] 3
16  International / Software / Re: Comunicación Serial on: March 05, 2013, 02:26:31 am
Si que lo he probado ( vamos lo he probado todo yo creo ), es más si no pulsas intro no coge los caracteres introducidos, he probado mandarle los datos con la pantalla de serial del propio Arduino y con el Hyperterminal y no funciona,  he vuelto a escribir todo el código para ver si tenía fallos el anterior y nada, me sigue sin funcionar, seguro que es una tontería pero bueno, ya con la opción parseInt() que me dijiste ayer yo creo que me va a valer para hacer lo que quiero, si consigo hacer algo ya os comentare.

Muchas gracias a todos.
17  International / Software / Re: Comunicación Serial on: March 04, 2013, 01:24:25 pm
Eso es lo que quiero hacer exactamente, la opción de Serial.parseint no la conocia es la que me hace falta, pero la duda que tengo es porque cuando le hago un
if(datos[3] = 'g') no me apaga el led no lo entiendo porque deberia de agagarlo, tambien he puesto por ejemplo: if(datos[5] = 't') para que entrase en un un bucle for y no me lo hace, la verdad no entiendo muy bien porque, yo creo que el código no está mal. Pero claro yo no soy ningún experto. muchas gracias por contestar.
os lo pongo entero como lo tengo.
Quote
char datos[20];
char c;
int i=0;

void setup() {
  pinMode(13,OUTPUT);
  Serial.begin(9600);
}
void loop() {

   while (Serial.available() > 0) {
   c = Serial.read();
   datos=c;
   i++;
  }    
  datos == "\0";
  
  if (datos[0] == 'a')
  {
    digitalWrite(13,HIGH);
  }
  if(datos[3]=='g')
  {
    digitalWrite(13,LOW);
  }
  if (datos[5]=='t')
  {
    for (int i=0; i<3; i++)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
  }
  }
  for (int j=0; j <i; j++)
    {
    Serial.print(datos[j]);
  }
  i=0;
}


P.D: Lo siento soy un chapas. por cierto en datos si esta colocado la i dentro de los corchetes pero no sé porque no se ve.
18  International / Software / Re: Comunicación Serial on: March 04, 2013, 02:58:11 am
Gracias a todos por contestar, si que pongo " datos=c " porque compruebo al final con el for que todo los caracteres que ingreso estén dentro del array, pero cuando quiero mandar apagar el led, no lo hace, solo se enciende y no se muy bien porque no se apaga, ¿estaría mejor utilizar el swicht en vez del if?. lo que quiero es mandar por VB por el serial un valor y para pero como quiero controlar un motor a la hora de mandar el valor tendré que tener una AXXX o BXXX para saber si tiene que ir para adelante o para atrás.  muchas gracias a todos. por la noche probaré de nuevo y os comentaré los progresos.

19  International / Software / Re: Comunicación Serial on: March 03, 2013, 03:15:57 pm
Hoal de nuevo, solo quería saber porque no me funciona el código, el problema es que quiero mandar por serial como había comentado en anteriores post pero es que cuando mando por ejemplo la 'a' la luz se me enciende pero cuando le mando cualquier otra cosa ('g' o 't' )no me hace nada, que estoy haciendo mal? porque si le hago un Serial.print(datos), me sale bien la cadena de caracteres que le he metido. Muchas gracias a todos y perdón si estoy siendo pesado pero llevo dias con el tema y no consigo dar con el problema.

Quote
char datos[20];
char c;
int i=0;

void setup() {
  pinMode(13,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  while (Serial.available() > 0) {
   c = Serial.read();
   datos=c;
   i++;
  }   
   
  if (datos[0] == 'a')
  {
    digitalWrite(13,HIGH);
  }
  if(datos[3]=='g')
  {
    digitalWrite(13,LOW);
  }
  if (datos[5]=='t')
  {
    for (int i=0; i<3; i++)
    {
    digitalWrite(13,HIGH);
    delay(100);
    digitalWrite(13,LOW);
  }
  }
  for (int j=0; j <i; j++)
    {
    Serial.print(datos[j]);
  }
  i=0;
}
}
20  International / Software / Re: Comunicación Serial on: February 26, 2013, 02:53:43 pm
muchas gracias de antemano, he mirado y que retemirado y no veo nada parecido he visto un chico que lo manda como un chr$(y valor del scrollbar) que eso me serviría para poder manejar una de als vias pero lo que no se es como hacer el puente H utilizando un boton y como mandar los otros datos del otro scroll.
muchas gracias a todos.
21  International / Software / Comunicación Serial on: February 26, 2013, 11:37:04 am
Hola a todos, tengo una duda y la verdad no se muy bien donde tengo que ponerla, el problema es que estoy haciendo con visual basic 6.0 un programita para "digitalizar" una maqueta de tren, comunicación tengo y puedo mover los desvíos y encender luces, pero el problema es que quiero manejar desde el programa por un scrollbar la velocidad (bueno cada vía con uno distinto claro) pero no se muy bien como mandarlo y como hacer para que cuando pulse un botón haga el cambio de sentido (marcha adelante y marcha atrás),
yo en el visual basic mando por el puerto serie con la opción MSComm1.Output = "n" y con eso muevo los desvio y enciendo y apago las luces, y con el arduino lo que hago es:

char c;

void setup()
.............
..............
..........

void loop()
{
 c=serial.read();

if (c == 'n')
{
digital........
}
y claro no se muy bien como enviarle los datos para poder regular la velocidad por PWM.

Muchas gracias a todos.
22  International / Hardware / Re: Medicion LDR on: December 12, 2012, 02:31:19 am
Hola según pones en el código lo tienes colocado en una entrada digital, esa entrada solo te da 0 (bajo) o  1 (alto), coloca el LDR en una de las entradas analógicas y como han comentado utiliza analogRead para que te de un valor entre 0 y 1023.

un saludo

fermg
23  International / Software / Re: ayuda con pines porfavor on: December 08, 2012, 03:48:31 pm
el problema que tienes es que en el codigo lo que pones es un if y los demas un else y no es asi asi si no
 else if, me explico me invento el codigo pero es asi.

valor = analogRead(ldr);

if(valor == =)
{
digitalWrite(13,HIGH);
delay
}
else if(valor >150 && valor <300)
{
digitalWrite................
}
asi todos los que quieras
y al final
else
{
dnfkjdfkbkd
}

espero haberte ayudado.
24  International / Software / Re: Problema para leer temperatura y luz on: December 08, 2012, 11:02:22 am
Aupa, yo lo tengo conectado directamente a los 5v cómo dices tú, y funciona bien, espero q pongas una foto para ver como queda ok?
25  International / Software / Re: Problema para leer temperatura y luz on: December 08, 2012, 09:31:18 am
hola de nuevo se me ocurre que para el porcentaje de luz porque no haces un mapeo del valor? me explico si sabes cual es el valor maximo que te da Ej 1023 y el minimo 125 por decir algo porque no mapeasel valor con la opcion map y ya esta no? si te da 1023 sera el 100% y si te da 125 sera el 0% y el resto te lo mapeara.

haber si te vale pero yo mucho más no te voy a poder ayudar porque mucho más no se, lo más seguro es que aprendamos los dos.

valor_ldr = map(valor_ldr, 125,1023, 0 ,100).

entonces lo que te saldra el porcentaje no?

espero servirte de ayuda y no volverte loco.

Fermg
26  International / Software / Re: Problema para leer temperatura y luz on: December 08, 2012, 09:24:53 am
Hola para que te de la temperatura solo tienes que aplicar la for,ula que tenias puesta o eso es lo que pone en el ejemplo de Arduino Academy o Arduteka ahora mismo, es el valor de Vout = Vin/1023*la lectura de la entrada analógica, y el LDR no se como se hace, pero lo que quieres es sacarlo por el LCD no? pues solo tienes que poner lcd.print() y listo , y si lo quieres poner en algún otro sitio que no sea en el comienzo de la pantalla lo único que tienes que hacer es ponet set.cursor(0,0) y listo.
el 0,0 son el primer numero las filas 0-1  y el segundo las columnas. 0-15, bueno según que LCD tengas claro pensando que tienes un 16 x 2.

un saludo

Fermg
27  International / Software / Re: Problema para leer temperatura y luz on: December 08, 2012, 03:32:46 am
Para que quieres leer el voltage? Es que la verdad no lo entiendo muy bien, con el dato que te da el analogRead (0-1023) ya puedes hacer lo que quieras o por lo menos eso creo yo, si comentas que es lo que quieres hacer te podríamos ayudar un poco mejor.

un saludo
28  International / Software / Re: Problema para leer temperatura y luz on: December 07, 2012, 06:00:06 pm
Hola de nuevo,me alegro poderte haber ayudado, mi pregunta es para que quieres cambiar la luz me refiero a multiplicar por 5 y todo eso? es que no para q te vale, lee el valor del LDR y ya esta no? quiero decir de 0-1023 y listo, y pruebas dandole con una luz directa q valor te da y luego tapandolo el otro valor y con eso juegas para poder hacer lo q quieras.

un saludo
29  International / Software / Re: Problema para leer temperatura y luz on: December 07, 2012, 02:51:29 pm
Hola DaviidPR yo tambien soy bastante nuevo en esto la verdad, pero creo que la forma de escribir el codigo no es la correcta (espero que no te moleste), podrias mirar los ejemplos que vienen en el IDE, de los ejemplos analogicos.

Te he escrito como lo haría yo el programa pero no se si es lo que quieres, con lo que te he puesto te dara el valor del NTC y del LDR, pero no se cual es la conversion q tienes que usar, he utilizado la que tu has puesto en tu código (el valor obtenido x 5 y todo / 1023). Espero haberte ayudado aunque sea solo un poco, yo no he probado el codigo, pruebalo. Si no te sirve todo, espero que te servira parte.

Un saludo a todos.

Fermg


Quote

int ntc=A0; // declaras el ntd
int ldr=A1;
int valor_ntc=0; // variable para guardar el dato del NTC
int valor_ldr=0;  // variable para guardar el dato del LDR

void setup()
{
   Serial.begin(9600);   // abrimos la comunicación Serial
   pinMode(ntc,INPUT); // esto realmente no hace falta pero yo siempre lo pongo
   pinMode(ldr,INPUT);  // no hace falta por ser un aentrada analógica.
}

void loop()
{
  valor_ntc= analogRead(ntc);       // guardamos el valor del NTC en una variable
  Serial.write("Temperatura: ");    // escribimos por serial
  Serial.write((valor_ntc*5)/1023); // calculamos el valor del NTC
  valor_ldr = analogRead(ldr);        // Guardamos el valor del LDR
  Serial.write("Luz :");                 
  Serial.write((valor_ldr*5)/1023);
  delay(1000);                             // esperamos para no saturar el serial
}
30  International / Software / Re: Duda Con Servos on: October 08, 2012, 10:49:52 am
perdon que no se uqe he tocado, yo lo haría asi:

te creas una variable

int grados;
int boton+=2;
int boton-=3;

void setup()
{
configuras los puertos
}

void loop()
{
if (digitalRead(boton+)== HIGH){
grados++;
}
if (digitalRead(boton-)==HIGH)
{
grados--;
}

myservo......(grados);
}

yo lo haria algo parecido a esto. espero haberte sido de ayuda.
un saludo a todoso
Pages: 1 [2] 3