Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: servo Kategorie: C-Control I V1.2/2.0 (von DIE HARD - 4.11.2004 18:43)
 Als Antwort auf servo von Falk - 4.11.2004 17:41

> 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

Bisherige Antworten:

Re: servo (von Falk - 5.11.2004 16:16)