control velocidad motor (pwm) dependiendo de entrada analogica

#1
Hola gente :)
Estoy empezando a programar microcontroladores AVR Atmega8.
La nota es la siguiente:
Tengo 5 entradas analogicas de unos sensores QRD1114 cuyo rango de variacion de voltaje es de 0 a 1.6 [v], y quiero controlar la velocidad de un motor dc con pwm:
Algo asi como:

0[V] se detiene el motor,
0.2[V] aumenta un poco la velocidad,
...
1.6[V] velocidad maxima.

Lo que tengo aora es esto:
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
Pwm1a = 100

¿Como hago las comparaciones en los pines adc [PC1 ADC1]... [PC5 ADC5],para que varie la velocidad del motor en el pin [PB1 OC1A] ?

Gracias por su colaboracion :)
 
#2
Aqui voy yo respondiendome a mi mismo
el codigo quedo algo asi programando en bascom

$regfile = "m8def.dat"
$crystal = 1000000

Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc

Config Portb = Output

Dim W As Word
Dim I As Byte
Dim P As Byte

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
Do
W = Getadc(0)
P = W / 10

If P > 5 Then 'niveles de voltaje de entrada en el pin 23
Portb.0 = 1 'se enciende un diodo pin 14
Else
Pwm1a = 1024 'velocidad del motor 0 a 1024 pin 15
End If

Loop
End

y todo seria cuestion de ir aumentando otros if y pwm1a
 

Temas similares

Arriba