PICALIC Lichtcontroller nach ALIC Standard - V. 2.0
Über PICALIC V2.0
Kochbuch
Datenblatt
Implementierter ALIC-Befehlssatz
#defines
LED Treiber-
schaltungen
Kontakt

Features:

  • bis zu 8 Lichtsteuerkanäle
  • Helligkeitssteuerung durch PWM
  • PWM bis 255 Schritte Auflösung bei 100Hz (PIC16F636, 8MHz Takt)
  • optionales RC-Interface mit bis zu zwei Eingängen oder serielles Interface (1 Eingang) mit bis zu 9600 Bd
  • Auswertung d. RC-Impulse als 4-fach Memory-Switch und proportional
  • Ausgänge wahlweise High- oder Low-Aktiv
  • Minimale Anzahl externer Komponenten
  • Freie Ports als Steuereingänge nutzbar
  • Freie Ports auch als Ausgänge ansprechbar (über SETSX/CLRSX-Befehle)  

PIC-Typen:

Typ: Gehäuse (Pins): Clock
(MHz)
RAM: max. Ausgangskanäle: max. RC-Kanäle: EEPROM-Größe (Bytes)
(=max. ALIC  Programm-Speicherplatz)
PIC12F629
PIC12F675
8 4 64 5 (4) 1 (2) 128
PIC12F683 8 4 oder 8 128 5(4) 1(2) 256
PIC16F630 14 4 64 8 2 128
PIC16F636 14 4 oder 8 128 8 2 256
PIC16F627A,
PIC16F628A
18 4 228 8 1 128
PIC16F648A 18 4 256 8 1 256

Pinbelegung:

PinoutPinout 16F648
VDD = +3V ... +5,5V
VSS = 0V (Masse)
Out x = Steuer-Ausgang des jeweiligen Licht-Kanals (0..7)
RC-Input 1 = RC-Impuls vom Empfänger (erster Kanal) oder serieller Eingang (Rx)
RC-Input 2 = RC-Impuls vom Empfänger (zweiter Kanal)
Sxx = Schalternummer, unter der der jeweilige Port angesprochen werden kann.

ALIC Programmspeicher:

Der ALIC-Programmcode wird im Daten-EEPROM des Controllers abgelegt. In den ersten NCHAN Bytes (NCHAN=Anz.der Ausgangskanäle,1..8) sind die Einsprungadressen der Programmsegmente für die Ausgangskanäle abgelegt. Diese Daten werden im Main-Sourcecode erzeugt.
Im ALIC Quelltext muß ein entsprechendes Label für jeden existierenden Ausgangskanal vorhanden sein, das die Einsprungadresse des jeweiligen Programms kennzeichet.
Dieses Label lautet: entry_chX, wobei X die Kanalnummer (0..7) ist.

Steuerschalter (switches):

Switch Nummer: Funktion:
0..7 per Standardeinstellung den Ausgangskanälen (0..7) zugeordnet. Sind weniger als 8 Kanäle vorhanden, können die übrigen Steuerschalter frei verwendet werden.
8,9 RC Memory Switches (RC-Kanal 1), Umschaltung bei kurzer Betätigung des Gebers aus der Mittelstellung.
Frei verfügbar, wenn das RC-Interface nicht benutzt wird.
10,11 RC Memory Switches (RC-Kanal 1), Umschaltung bei langer Betätigung des Gebers aus der Mittelstellung.
Frei verfügbar, wenn das RC-Interface nicht benutzt wird.
12,13 RC Memory Switches (RC-Kanal 2), Umschaltung bei kurzer Betätigung des Gebers aus der Mittelstellung.
Frei verfügbar, wenn das RC-Interface nicht benutzt wird.
14,15 RC Memory Switches (RC-Kanal 2), Umschaltung bei langer Betätigung des Gebers aus der Mittelstellung.
Frei verfügbar, wenn das RC-Interface nicht benutzt wird.
16..23 Adressiert die I/O-Ports RA0..RA7
High-Level entspricht "Switch On", unabhängig von "#define ACTIVELOW x"!
24..31 Adressiert die I/O-Ports RC0..RC5 bzw. GP0..GP5
High-Level entspricht "Switch On", unabhängig von "#define ACTIVELOW x"!
32..47 Für RC Multiswitch Interface (Beta-Version) oder Ähnliches.
48 RC inaktiv: ist "on" wenn an den RC-Eingängen keine gültigen Impulse anliegen, sonst "off".

Steuervariablen:

Variable Nummer: Funktion:
RCVAR Geberstellung des ersten RC-Kanals. Eine Impulslänge von 1,5ms (=ca. Geber-Mittelstellung) erzeugt einen Variablen-Wert von 64, bei ca. 1ms liegt der V.-Wert bei 0 und bei 2ms bei 128. 
RCVAR+1 Geberstellung des zweiten RC-Kanals.

RC-Interface:

Optional können ein oder zwei Eingänge für die Steuerung über die RC-Anlage genutzt werden. Am Eingang wird jeweils ein positiver PWM(Servo-)-Impuls von 1..2 ms Länge erwartet. Die Stellungen der entsprechenden Geber werden als Zahlenwert in den Variablen abgelegt. Die RC-Signale werden auf evtl. Störimpulse geprüft und diese ggf. ausgefiltert, um Fehlauslösungen durch Empfangsstörungen zu vermeiden. Darüber hinaus ist in die Auswertung eine Hysterese eingebaut, um das Hin- und Herspringen der davon gesteuerten Funktion zu vermeiden, falls der Geber sehr dicht am Schwellwert steht und die Impulse durch Rauschen auf dem Übertragungsweg  evtl. etwas "zittern". Durch die Hysterese wird ein einmal erreichter Stellwert erst wieder durchschritten, wenn das Eingangssignal min. um den Betrag der Hysterese in die andere Richtung wandert.
Zusätzlich hat jeder RC-Kanal eine 4-fach Memory Switch Funktion. Diese arbeitet i.d.R. mit einem 3-stufigen Schalter am Sender, am Besten mit Rückstellfeder auf Mittelstellung. Wird der Schalter für einen kurzen Moment aus der Mittelstellung in eine der Endstellungen gebracht und wieder zurück (bitte nicht zu kurz, da das sonst als Störung ausgefiltert werden könnte), wird die erste bzw. zweite Memory-Funktion umgeschaltet. Bleibt der Schalter etwas länger in der Endstellung (z.B. >1s), wird stattdessen die dritte bzw. vierte Memory-Funktion umgeschaltet.

Das evtl. Fehlen von RC-Eingangsimpulsen kann durch Auswerten des Schalters 48 erkannt werden. So kann z.B. die Beleuchtung eines Modells bei ausgeschalteter RC-Anlage automatisch in einen speziellen Ausstellungs-Modus geschaltet werden.

Serielles Interface:

Das optionale, serielle Interface empfängt Steuerdaten asynchron mit bis zu 10 000 Bd.
Format: 1 Startbit (logisch 0), 8 Datenbits und einem Stopbit (log. 1), kein Parity. Wahlweise kann mit invertierten Eingangspegeln gearbeitet werden. Die Baudrate und ggf. Invertierung des Eingangssignals wird vor der Assemblierung des Programms per #define konfiguriert. >> Mehr zum seriellen Interface