Autor Tema: DUDA SOBRE PROGRAMACION DE SENSORES SHARP ROBOT SUMO  (Leído 1979 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado OCRAM194

  • PIC10
  • *
  • Mensajes: 4
DUDA SOBRE PROGRAMACION DE SENSORES SHARP ROBOT SUMO
« en: 02 de Abril de 2017, 18:45:31 »
Buenas tardes soy nuevo en el foro y a la vez nuevo en la programacion de microcontroladores. :-)

Les comento que  estoy haciendo como proyecto un robot sumo, pero tuve problemas al usar 4 entradas analogicas.
estas al refrejarlo en la terminal virtual en proteus 8.5 funcionan bien pero al dar instruccion en las salidas digitales, uno de ellos no me funciona.
Ya probe de todo y me di cuenta que si  solo uso 3 sensores el programa jala sin ningun problema todas las instrucciones que le de no se si me falta alguna instruccion para que pueda funcionar de manera correcta los 4 sensores al mismo tiempo.

este es mi programa en Mikroc

 int s4;
 int s2;
 int s3;
 int s1;
 char x[4];
 void main(){
 TRISD=0;
 ADC_Init();
UART1_Init(9600);
while(1){
 s1= ADC_Read(0);
IntToStr(s1, x);
UART1_Write_Text("S1 ");
UART1_Write_Text(x);
 strcpy(x,"");
 UART1_Write(13);

 s2= ADC_Read(1);
IntToStr(s2, x);
UART1_Write_Text("S2 ");
UART1_Write_Text(x);
 strcpy(x,"");
 UART1_Write(13);

s3= ADC_Read(2);
IntToStr(s3, x);
UART1_Write_Text("S3 ");
UART1_Write_Text(x);
 strcpy(x,"");
 UART1_Write(13);

s4= ADC_Read(3);
IntToStr(s4, x);
UART1_Write_Text("S4 ");
UART1_Write_Text(x);
 strcpy(x,"");
 UART1_Write(13);
 
 Delay_ms(1000);
if(s1<=750)PORTD.F7=1;
else{
PORTD.F7=0;
}
 if(s2<=750)PORTD.F6=1;
else{
PORTD.F6=0;
}
if(s3<=750)PORTD.F5=1;
else{PORTD.F5=0;
}
if(s4<=750)PORTD.F4=1;
else{PORTD.F4=0;
} }
}

ESPERO QUE ME AYUDEN PORFAVOR n_n

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:DUDA SOBRE PROGRAMACION DE SENSORES SHARP ROBOT SUMO
« Respuesta #1 en: 02 de Abril de 2017, 19:08:37 »
Primer error que veo:

Código: C
  1. char x[4];
  2.  IntToStr(s1, x);


Lo que convertis es el valor del ADC, que supongo (porque no se que PIC es ) que puede ser de 10 bits, si es asi podrias llegar a tener hasta el numero 1023. Una string requiere un caracter mas que es el caracter nulo, por lo tanto para representar numeros del 1000 en adelante deberias tener 5 lugares y no 4 como tenes.

2do error:

Código: C
  1. PORTD.F6=1;

Si queres cambiar una salida usas los LATx , si queres leer el estado del pin usas PORTx. Esto para todos los PIC18 en adelante.

Consejo:

Siempre pone las llaves:

Código: C
  1. if(s4<=750){
  2.                         LATD.F4=1;
  3.                 }
  4.                 else{
  5.                         LATD.F4=0;
  6.                 }

Te va a evitar posibles errores, Podrias haber solucionado todo eso con un for, y que quede pequeño el programa, pero eso te lo dejo a tu imaginacion.

Desconectado OCRAM194

  • PIC10
  • *
  • Mensajes: 4
Re:DUDA SOBRE PROGRAMACION DE SENSORES SHARP ROBOT SUMO
« Respuesta #2 en: 02 de Abril de 2017, 19:27:25 »
Primer error que veo:

Código: C
  1. char x[4];
  2.  IntToStr(s1, x);


Lo que convertis es el valor del ADC, que supongo (porque no se que PIC es ) que puede ser de 10 bits, si es asi podrias llegar a tener hasta el numero 1023. Una string requiere un caracter mas que es el caracter nulo, por lo tanto para representar numeros del 1000 en adelante deberias tener 5 lugares y no 4 como tenes.

2do error:

Código: C
  1. PORTD.F6=1;

Si queres cambiar una salida usas los LATx , si queres leer el estado del pin usas PORTx. Esto para todos los PIC18 en adelante.

Consejo:

Siempre pone las llaves:

Código: C
  1. if(s4<=750){
  2.                         LATD.F4=1;
  3.                 }
  4.                 else{
  5.                         LATD.F4=0;
  6.                 }

Te va a evitar posibles errores, Podrias haber solucionado todo eso con un for, y que quede pequeño el programa, pero eso te lo dejo a tu imaginacion.

OH VALE GRACIAS POR CONTESTAR TAN RAPIDO ESTOY USANDO UN PIC18F4550,VOY A CHECAR ESOS ERRORES QUE TENGO PARA VER SI FUNCIONA,  AUNQUE ME SURGIERON UNA DUDA MAS SOBRE EL CICLO FOR, TE REFIERES A USARLO PARA DISMINUIR EL PROGRAMA POR CADA LECTURA DE SENSOR? O POR CADA DECISIÓN?

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:DUDA SOBRE PROGRAMACION DE SENSORES SHARP ROBOT SUMO
« Respuesta #3 en: 02 de Abril de 2017, 19:35:24 »
Si observas la lectura del ADC, el pasarlo a un string, el enviarlo, y luego preguntar si ese valor esta dentro de los parametros es igual para todas las entradas.
Eso quiere decir que estas repitiendo una y otra ves lo mismo, es posible crear un bucle for y jugar con esos valores desde el 0 al 3 para que haga todo eso, sin repetir instrucciones.

Desconectado OCRAM194

  • PIC10
  • *
  • Mensajes: 4
Re:DUDA SOBRE PROGRAMACION DE SENSORES SHARP ROBOT SUMO
« Respuesta #4 en: 02 de Abril de 2017, 19:59:25 »
YA CORREGI MIS ERRORES PERO TODAVIA NO HAGO EL CICLO FOR SIN  EMBARGO CON EL NUEVO CODIGO  FUNCIONO IGUAL QUE EL ANTERIOR PROGRAMA, NO CORRIGE MI PROBLEMA :? U_u

INTENTARE CAMBIAR MI ENTRADA ANALOGICA DE ESE SENSOR HABER SI FUNCIONA

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:DUDA SOBRE PROGRAMACION DE SENSORES SHARP ROBOT SUMO
« Respuesta #5 en: 02 de Abril de 2017, 20:06:44 »
Primero que nada no escribas todo en mayuscula.

Segundo, podrias decir si los valores enviados por la UART son correctos?

El PORTD no posee otra cosa mas que el TRIS para ponerlos como entradas o salidas. Con eso configurado no deberia haber nada que te moleste y con solo cambiar el LATx funcionaria.


Desconectado OCRAM194

  • PIC10
  • *
  • Mensajes: 4
Re:DUDA SOBRE PROGRAMACION DE SENSORES SHARP ROBOT SUMO
« Respuesta #6 en: 02 de Abril de 2017, 20:27:08 »
Lo siento hehe corregiré mi costumbre de escribir todo en mayúsculas. :oops:
los valores enviados son correctos, los PORTD están configurados como salida, ya cambie los LAT, pero aun en la simulación solo puedo controlar 3 salidas mientras que una salida se queda encendido todo el tiempo sin poderlo controlar por las entradas analogicas.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:DUDA SOBRE PROGRAMACION DE SENSORES SHARP ROBOT SUMO
« Respuesta #7 en: 02 de Abril de 2017, 20:46:49 »
Entonces por lo que comentas parece ser un problema del simulador.