سلام ،
برای راه اندازی روبات مسیر یاب کد زیر رو نوشتم ولی PWM درست کار نمیکنه و روبات با لرزش حرکت میکنه :
کد:
$regfile "m8def.dat"
$crystal = 4000000
' Analog to didgital converter
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
' PWM
Config Portb.1 = Output , Portb.2 = Output
Config Portd.0 = Output , Portd.1 = Output , Portd.2 = Output , Portd.3 = Output , Portb.7 = Input
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256
' Sensor Left, Center, Right
Dim L As Word , C As Word , R As Word
' PWM Variables
Ddrb.7 = 0 : Portb.7 = 1
Dim Speed As Word
Do
' Get L, C, R sensor status
L = Getadc(0)
C = Getadc(1)
R = Getadc(2)
' Check sensor status ( L= White, C= Black, R= White )
If L > 513 And C < 513 And R > 513 Then
Speed = 40000
Portd.0 = 1 : Portd.1 = 0 : Portd.2 = 0 : Portd.3 = 1
Pwm1a = Speed
Pwm1b = Speed
Else
' Check sensor status ( L= Black )
If L < 513 Then
Speed = 30000
Portd.0 = 1 : Portd.1 = 0 : Portd.2 = 1 : Portd.3 = 0
Pwm1a = Speed
Pwm1b = Speed
Else
' Check sensor status ( R= Black )
If R < 513 Then
Speed = 30000
Portd.0 = 0 : Portd.1 = 1 : Portd.2 = 0 : Portd.3 = 1
Pwm1a = Speed
Pwm1b = Speed
End If
End If
End If
Loop
End
موتورهای روبات 2 تا موتور گریبکس دار 6 ولت 300 rpm هست و روبات با 3 تا سنسور کار میکنه که فکر میکنم برنامه ای هم که نوشتم بهینه نباشه .