So unmittelbar wie mit den beiden die vorgesehen sind erstmal nicht.
Da müßte man die Augabenstellung schon noch mal näher ansehen.
Manfred
Hallo!
Gibt es die Möglichkeit einen dritten PWM-Ausgang für die C-Control I zu erzeugen. Hab das Problem drei Gleichstrommotoren geschwindigkeitsabhängig zu steuern.
VG
So unmittelbar wie mit den beiden die vorgesehen sind erstmal nicht.
Da müßte man die Augabenstellung schon noch mal näher ansehen.
Manfred
Also das Problem ist folgendes:
Ich möchte einen Roboter bauen, der sich mit Hilfe von drei Omniwheels fortbewegen kann. Dazu brauch ich logischerweise dre Motoren, die ich unabhängig voneinander steuern kann. Nur dummerweise hat die C-Control I ja nur zwei PWM-Ausgänge zur Verfügung.
Es muss ja eigentlich auch kein echter PWM sein. Es gibt zwar ICs, die
eine reine Gleichspannung erzuegen können, zB PCF8591 oder TDA8444,
nur dummerweiße benötigen die mir bekannten Motortreiber (L293D und L29 als Enableeingang ein PWM-Signal und keine variable Gleichspannung. Von daher müsste die Motorsteuerung doch auch mit "normalen" Gleichspannubgssignalen funktionieren. Nur da kenn ich mich nicht aus.
Vielleicht hat dazu jemand ein paar Ideen?
Wie wärs denn, wenn Du den Beep Ausgang mißbrauchst?
wie wäre damit PWM zu erreichen? das Tastverhältnis ist doch sicher nicht von der Frequenz abhängig, oder?
Robotronix
Hallo zusammen,
gibt es denn schon eine Lösung für einen dritten PWM-Ausgang. Ich habe nämlich das gleiche Problem und Suche nach einer geeigneten Lösung einen dritten PWM zu erzeugen.
Ist es denn möglich die Digitalausgänge über einen DA-Wandler als PWM zu nutzen. Bei Conrad gibt es ein DA-Modul für I²C Porterweiterung. Allerdings bin ich mir nicht sicher, ob man das mit einer C-Control Main Unit nutzen kann...
Zitat von Phönix
Hallo........
Guck hier.
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIII
'IIIIIII DEMO ZUM BASIC-COMPUTER UNIT M 2.0 (by DIE HARD) IIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIII
'--------------------------------------------------------------------
' Beispiel zum BASIC-COMPUTER mit dem Programmer/Application-Board
'--------------------------------------------------------------------
' ANWENDUNG: Weitere PLM-Ausgänge
'
'--------------------------------------------------------------------
' Das Beispiel zeigt, wie man mit einem Trick weitere PLM-Ausgänge
' Erzeugen kann.
' Es wird der reguläre DA-Ausgang benutzt um einen IRQ zu erzeugen
' (DA-Ausgang mit IRQ verbinden)
' Der Interrupt findet alle 500us statt und wird in der Interrupt
' Routine zu einer Pulsbreitenmodulation verarbeitet.
'
' In diesem Beispiel werden die Ports 1 und 16 (LCD Beleuchtung)
' angesteuert. Der Wert für den PLM-Ausgang wird in der Variablen
' PLM3 bzw. PLM 4 festgelegt. Die PLM-Frequenz ist etwa 25ms, was
' für die Dimmung von Lampen ausreichen sollte.
'
' Das Beispiel fährt im Hauptprogramm den Wert der Variablen PLM3
' durch den Bereich 0 bis 255. Sie sehen wie der zugehörige Ausgang
' Port 16 die Helligkeit der LCD-Beleuchtung am Application-Board
' langsam dimmt.
' Der gerade aktuelle Wert für PLM3 wird am LCD angezeigt.
'---------------------------------------------------------------------
' Achtung:
' Während einer Pause wird der IRQ nicht bearbeitet, Sie dürfen
' im Hauptprogramm also keinen PAUSE-Befehl verwenden.
' Nehmen Sie eine DELAY-Schleife um Pausen zu erzeugen.
'---------------------------------------------------------------------
'--------------------------
'------ I/O PORTS ---------
'--------------------------
define PWMOUT3 port[16]
define PWMOUT4 port[1]
define PWMOUT2 da[2]
define PWMOUT1 da[1]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
define COUNTER byte[1]
define DELAY byte[2]
define PLM3 byte[3]
define PLM4 byte[4]
define ICNT byte[5]
'----------------------------------------------------------------------
INTERRUPT ISERVICE
print"#ON_LCD#";
print"#INIT#";
'----------------------------------------------------------------------
#MAIN_PROGRAM
for DELAY=0 to 255
next
COUNTER=COUNTER+1
PLM3=COUNTER
print"#L101#";COUNTER;" ";
goto MAIN_PROGRAM
'----------------------------------------------------------------------
'--- PLM INTERRUPT SERVICE ----
'----------------------------------------------------------------------
' IRQ CONNECTED TO DA1 OR DA2 - INTERRUPTRATE 500us
#ISERVICE
ICNT=ICNT+5
if ICNT<=PLM3 then PWMOUT3=on else PWMOUT3=off
if ICNT<=PLM4 then PWMOUT4=on else PWMOUT4=off
return interrupt
Lesezeichen