stefan8010
20.05.2011, 20:37
Hallo,
mit dem ATtiny13 erzeuge ich ein PWM Signal, welches über einen L293D die Leistung von Motoren regelt.
Ist ein NXT Motor angeschlossen spinnt das PWM- Signal. Mal läuft der Motor schneller, dann langsam und ziemlich schnell erst mal gar nicht mehr. Ohne den ATtiny13, also ohne PWM, läuft der Motor ohne Probleme mit voller Leistung. Habe ich einen Motor mit geringerer Leistung angeschlossen scheint die PWM zu funktionieren.
Ist in meinem Quellcode evtl. ein Fehler oder weiß jemand woher das kommen könnte?
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 10
Config Portb.0 = Output 'PWM M1
Config Portb.1 = Output 'PWM M2
Config Portb.3 = Input 'Poti M1
Config Portb.4 = Input 'Poti M2
Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Analog_m1 As Integer
Dim Analog_m2 As Integer
Do
'M1
Analog_m1 = Getadc(3)
Select Case Analog_m1
Case 0 To 200:
Pwm0a = 140
Case 201 To 400:
Pwm0a = 100
Case 401 To 600:
Pwm0a = 60
Case 601 To 800:
Pwm0a = 40
Case 801 To 900:
Pwm0a = 20
Case 901 To 1023:
Pwm0a = 0
End Select
'M2
Analog_m2 = Getadc(2)
Select Case Analog_m2
Case 0 To 200:
Pwm0b = 140
Case 201 To 400:
Pwm0b = 100
Case 401 To 600:
Pwm0b = 60
Case 601 To 800:
Pwm0b = 40
Case 801 To 900:
Pwm0b = 20
Case 901 To 1023:
Pwm0b = 0
End Select
Loop
End
Gruß
stefan8010
mit dem ATtiny13 erzeuge ich ein PWM Signal, welches über einen L293D die Leistung von Motoren regelt.
Ist ein NXT Motor angeschlossen spinnt das PWM- Signal. Mal läuft der Motor schneller, dann langsam und ziemlich schnell erst mal gar nicht mehr. Ohne den ATtiny13, also ohne PWM, läuft der Motor ohne Probleme mit voller Leistung. Habe ich einen Motor mit geringerer Leistung angeschlossen scheint die PWM zu funktionieren.
Ist in meinem Quellcode evtl. ein Fehler oder weiß jemand woher das kommen könnte?
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 10
Config Portb.0 = Output 'PWM M1
Config Portb.1 = Output 'PWM M2
Config Portb.3 = Input 'Poti M1
Config Portb.4 = Input 'Poti M2
Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Analog_m1 As Integer
Dim Analog_m2 As Integer
Do
'M1
Analog_m1 = Getadc(3)
Select Case Analog_m1
Case 0 To 200:
Pwm0a = 140
Case 201 To 400:
Pwm0a = 100
Case 401 To 600:
Pwm0a = 60
Case 601 To 800:
Pwm0a = 40
Case 801 To 900:
Pwm0a = 20
Case 901 To 1023:
Pwm0a = 0
End Select
'M2
Analog_m2 = Getadc(2)
Select Case Analog_m2
Case 0 To 200:
Pwm0b = 140
Case 201 To 400:
Pwm0b = 100
Case 401 To 600:
Pwm0b = 60
Case 601 To 800:
Pwm0b = 40
Case 801 To 900:
Pwm0b = 20
Case 901 To 1023:
Pwm0b = 0
End Select
Loop
End
Gruß
stefan8010