
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Hallo, > > möcht im Rahmen einer Heizungssteuerung ein Servo(für die Frischluftklappe) ansteuern, nun habe ich gelesen das dies bei der neuen M-Unit leichter möglich ist. > Leider habe ich noch kein Beispielprogramm gefunden. > Wer könnte mir da eventuell weiterhelfen? > > Mit besten Grüßen Falk > > Hallo, eine Demo ist auf der Installations-CD bei den Demos zu den EXTENDED FUNCTIONS. Weil ich vermute, dass du die M 2.0 nicht hast hier die DEMO: 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 'IIIIIII DEMO ZUM BASIC-COMPUTER UNIT M 1.2/2.0 (by DIE HARD) IIIII 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII '-------------------------------------------------------------------- ' Beispiel zum BASIC-COMPUTER mit dem Programmer/Application-Board '-------------------------------------------------------------------- ' ANWENDUNG: SERVOANSTEUERUNG MIT DA1 und DA2 ' '-------------------------------------------------------------------- ' Dieses Beispiel zeigt die Vorgehensweise um die beiden PWM DA-WANDLER ' zur Ansteuerung von Servos zu konfigurieren. Die Konfiguration ' erfolgt über ein KONFIGURATIONS-REGISTER, das wie alle erweiterten ' Funktionen über die "REDIRECT PRINT" Funktion gelesen und geschrieben ' werden kann. '-------------------------------------------------------------------- ' Das Konfigurations-Register bietet folgende Optionen. ' ' Bit 0 Schaltet beide PWM-DACs in den SERVO-Mode ' Bit 1 Schaltet den Frequenzzähler 1 in den EREIGNISZÄHLER Mode ' Bit 2 Schaltet den Frequenzzähler 2 in den EREIGNISZÄHLER Mode ' Bit 3 Aktiviert die PULLUP-Widerstände an PORT 1 bis 8 ' Bit 4 Aktiviert die PULLUP-Widerstände an PORT 9 bis 15 ' Bit 5 Zeigt an wenn die interne Uhr mit DCF77 synchronisiert wurde ' Bit 6 Signalisiert einen Fehler bei der IIC-Kommunikation ' Bit 7 Zustand der Start-Taste '--------------------------------------------------------------------- ' Einzelheiten darüber finden Sie in den Demos zu den EXTENDED FUNCTIONS ' - LCD MODULE über die zusätzlichen Funktionen für das LCd ' - CONFIG MODULE über die zusätzlichen Funktionen für die Konfiguraton ' ' Beschreibung: ' Wenn die beiden DA-Ausgänge (und das ist leider nur für beide gleichzeitig möglich) ' als SERVO-Treiber konfiguriert sind liefern sie ein für Servos übliches Signal ' mit einer Wiederholfrequenz von 50 Hz. ' Ein DA-Wert von Null entspricht einer Pulslänge von 1ms, ein Wert von 255 ' einer Impulslänge von 2ms ' In diesem Beispiel werden die Position von einem SERVO an DA2 mit den Tasten ' F1 bzw. F2 auf der Tastatur am Applicationboard eingestellt. ' Der eingestellte Wert wird am LCd angezeigt. '----------------------------------------------------------------------- '-------------------------- '------ I/O PORTS --------- '-------------------------- define SERV da[2] define ADC8 ad[8] define LIGHT port[16] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- define POS byte[1] define KEYCODE byte[3]'DECODIERTE TSTE define VALUE byte[4]'GELESENER TABELLENWERT #INIT POS=128:LIGHT=off gosub SET_SERVOMODE '--UMLEITUNG DER PRINT-FUNKTION AUF DAS LCD-MODULE ---- print"#ON_LCD#"; print"#INIT#"; '------------------------------------------------- '-- F1 F2 SERVO CONTROL - '------------------------------------------------- #LOOP print"#L101#"; print"POS: "; POS;" "; gosub KEYDECODE '--- OBERES LIMIT ---------- if POS=255 then goto NOINC if KEYCODE=12 then POS=POS+1 SERV=POS #NOINC '--- UNTERES LIMIT --------- if POS=0 then goto LOOP if KEYCODE=13 then POS=POS-1 SERV=POS:pause 1:goto LOOP '-------------------------------------------------- '-------------------------------------------------------------------- ' TASTATURDECODER (RÜCKKEHR MIT TASTENCODE IN KEYCODE) '-------------------------------------------------------------------- #KEYDECODE KEYCODE=255:if ADC8<10 then return KEYCODE=0:if abs(17-ADC8)<5 then return KEYCODE=1:if abs(33-ADC8)<5 then return KEYCODE=2:if abs(50-ADC8)<5 then return KEYCODE=3:if abs(66-ADC8)<5 then return KEYCODE=4:if abs(82-ADC8)<5 then return KEYCODE=5:if abs(98-ADC8)<5 then return KEYCODE=6:if abs(114-ADC8)<5 then return KEYCODE=7:if abs(130-ADC8)<5 then return KEYCODE=8:if abs(147-ADC8)<5 then return KEYCODE=9:if abs(164-ADC8)<5 then return KEYCODE=10:if abs(181-ADC8)<5 then return'CLR KEYCODE=11:if abs(199-ADC8)<5 then return'ENTER KEYCODE=12:if abs(218-ADC8)<5 then return'F1 KEYCODE=13:if abs(236-ADC8)<5 then return'F2 KEYCODE=255:return '---------------------------------------------------------------------- #SET_SERVOMODE print"#ON_CONFIG#"; put &B00000001 print"#OFF#"; return |
| Antwort schreiben |