Autor Tema: Usar el comparador ADC para obtener un valor que mueva motores? PIC12F675  (Leído 2990 veces)

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

Desconectado maxstring

  • PIC10
  • *
  • Mensajes: 2
Hola!

Estoy haciendo un codigo en PIC Simulator IDE para el PIC12F675, programado en basic, pero se que tengo que usarlo de otra manera, el ejercicio es el siguiente:

Deben entrar señales analogicas por los pines GPIO.0 y GPIO.1 que supuestamente vienen de 2 fotoresistencias que reciben luz ( por lo tanto cada resistencia puede recibir mas o menos luz y se hace una diferencia entre ellas). OJO, no necesriamente son fotoresistencias, simplemente puedo usar cualquier señal analogica para emular el efecto de la luz.
Debo usar el canal 0 y 1 del ADC.
La conversion de los datos deben salir por el pin GPIO.2 mediante la funcion Servout hacia 1 motor y dependiendo del valor que salga, el motor debe girar a la izquierda o a la derecha. Ejemplo: si recibe mas luz a la derecha (diferencia positiva), los motores se mueven a la derecha.
Es algo asi como esas casas giratorias que se mueven hacia donde existe mayor fuente de luz del sol teniendo 2 fotoresistencias en el techo.

algo asi



Yo tengo un codigo hecho pero segun lo que tengo entendido, para hacer esto debo usar los comparadores del ADC, ya que estos comparan las entradas del pin 0 y 1 y hacen algo segun como este configurado, el problema es que no se utilizar el comparador aca.

Esto es lo que tengo hecho.

Código: [Seleccionar]
Dim der As Word
Dim izq As Word

ANSEL = %00010011 
ADCON0 = %10000001 
CMCON = %00000111 
TRISIO = %00000011 
e_go:
ADCON0.1 = 1
no_fin:
If ADCON0.1 = 1 Then Goto no_fin
If ADCON0.2 = 0 Then
i = 256 * ADRESH + ADRESL
ADCON0.2 = 1
Else
If ADCON0.2 = 1 Then
d = 256 * ADRESH + ADRESL
ADCON0.2 = 0

If d > i Then
ServoOut GPIO.2, 1
Else
ServoOut GPIO.2, 2
Endif
Endif
Goto e_go

Ahi esta con los comparadores apagados y se esta haciendo la comparacion en el codigo, pero necesito usar el comparador, como lo puedo adaptar???


Esta es la idea en una hoja de papel



Ojala me puedan guiar un poco
Gracias!!


 

anything