Autor Tema: problemas con el ADC de 16F917  (Leído 1889 veces)

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

Desconectado lars

  • PIC10
  • *
  • Mensajes: 5
problemas con el ADC de 16F917
« en: 18 de Noviembre de 2007, 20:28:15 »
estamos armando un seguidor solar bastante sencillo..... utiliza 2 fotoresistencias, el voltaje resultante de estas... es comparado....

utilizamos un motor paso a paso bilolar para mover una fotocelda.... y colocarla en la mejor posicion al sol ( girando 360 grados....).....

utilizamos un controlador del motor que hicimos con puro TTL.... (el tipico controlador para stepper bipolar que encuentras en internet por todos lados) por lo que solo se necesita un tren de pulsos para que gire el motor....  y darle alto o bajo en una entrada de un XOR para cambiar la direccion...


todo va bien... hasta que intentamos igualar A y B.... el motor empieza a girar sin control... hacia ambos sentidos....

¿como puedo corregir esto?

este es el codigo...


utilizamos microcode studio... y PBP


'****************************************************************
'*  Name    : CELDA.BAS                                         *
'*  Author  : Lars Regalado                                     *
'*  Notice  : Copyright (c) 2007 BlackSheep                     *
'*          : All Rights Reserved                               *
'*  Date    : 14/11/2007                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
 

 DEFINE ADC_BITS 4
 DEFINE ADC_CLOCK 3
 DEFINE ADC_SAMPLEUS 10
 A var byte
 B var BYTE
 
 TRISA = %11111111
 
COMP:
ADCIN 0, A
adcin 1, B
IF a<b THEN
HIGH PORTB.0 'esto cambia el sentido' 
HIGH PORTB.1 'el tren de pulsos'
pause 50     'el tren de pulsos'
low PORTB.1  'el tren de pulsos'
pause 50     'el tren de pulsos'
endif
if A>B then
LOW PORTB.0  'esto cambia el sentido'
HIGH PORTB.1 'el tren de pulsos'
pause 50     'el tren de pulsos'
low PORTB.1  'el tren de pulsos'
pause 50     'el tren de pulsos'
ENDIF
if -200<=(a-b)&(a-b)<=200 then   'este es el problema'
HIGH PORTB.0
HIGH PORTB.1
pause 50
endif
GOTO comp


lo que queremos hacer es cuando las LDR... den un voltaje parecido..... la celda solar se detenga en esa posicion....

gracias de antemano

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: problemas con el ADC de 16F917
« Respuesta #1 en: 19 de Noviembre de 2007, 00:46:33 »
Hola, Bienvenido.

Primero los Bits del ADC segun se solo soportan 8 y 10 -y este ultimo depende del PIC- Por lo que la linea: DEFINE ADC_BITS 4 esta mal.

Luego en tu comparación donde tienes el problema cuando haces el & quieres hacer la AND de suma binaria o la AND de condicion. Porque si es lo segundo deberas poner AND asi textual
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado lars

  • PIC10
  • *
  • Mensajes: 5
Re: problemas con el ADC de 16F917
« Respuesta #2 en: 19 de Noviembre de 2007, 06:38:27 »
hola... en realidad definiendo el adc a 4 bits... funcionaba el A>B y el A<B..... el igual es el que no realizaba nada.... probe todo lo que dijiste.... pero sigue igual....


ya no se me ocurre nada...   tenemos la esperanza de que a la hora de que quede montado el proyecto (con la fotoresistencias ya en su lugar)... la celda empiece a oscilar entre un grado y el otro :P....

si a alguien se le ocurre algo hagamelo saber... muchas gracias..




por cierto.... muy buen foro... estuve leyendo otros proyecto.. muy interesantes..

Desconectado lars

  • PIC10
  • *
  • Mensajes: 5
Re: problemas con el ADC de 16F917
« Respuesta #3 en: 19 de Noviembre de 2007, 07:00:28 »
emmmm..... justamente despues de postear lo pasado... se me ocurrio la geeenial idea de.... cambiar el pic.... en vez de usar el el 16F917... puse un 16F877A (que es el que normalmente uso).... y ... funciono el codigo perfectamente....


muchas gracias por por la ayuda....  de hecho le comente a un amigo (que es quien me esta enseñando a usar pics) lo de AND y & y fue como una revelacion.... pero igual lo que necesitaba era &....


 gracias

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: problemas con el ADC de 16F917
« Respuesta #4 en: 20 de Noviembre de 2007, 01:10:52 »
Bien, lo bueno es que funcione tu aplicacion, pero les recomiendo que se lean el manual de PBP  para el uso de las instrucciones -por aquello del adc-

Saludos
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."