Relais Schalten

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche

Kleines Projekt zum Schalten von Relais

Ein ULN2803 wurde mit den 8 Ausgängen des AVR NET-IO von Pollin verbunden. Am Asgang des ULN sind 12V Relais angeschlossen, die die angeschlossenen Geräte schalten (nicht vergessen Pin10 mit der positiven Versorgungsspannung zu verbinden, sonst sind die Freilaufdioden nicht angeschlossen). Parallel zu dem Relais sind noch LEDs zur Signalisierung des Schaltzustandes angeschlossen.

Zusätzlich wurden noch Tastern an die Eingänge des NET-IO gegen Masse angeschlossen.


Hier das zugehörige Control6-Skript: dnl Taster konfigurieren und einlesen static uint8_t t1=0; static uint8_t t2=0; static uint8_t t3=0; CONTROL_START ON STARTUP DO DDRA &= ~_BV(PA0); dnl switch pin for Input DDRA(PA0) = 0 DDRA &= ~_BV(PA1); dnl switch pin for Input DDRA(PA1) = 0 DDRA &= ~_BV(PA2); dnl switch pin for Input DDRA(PA2) = 0 DDRC |= _BV(PC0); dnl Ausgang Drucker DDRC |= _BV(PC1); dnl Ausgang Sound DDRC |= _BV(PC2); dnl Ausgang Festplatte PORTA |= _BV(PA0); dnl PORTA(PA0) = 1 seite 56 und 57 PORTA |= _BV(PA1); dnl PORTA(PA1) = 1 seite 56 und 57 PORTA |= _BV(PA2); dnl PORTA(PA2) = 1 seite 56 und 57 PORTC &= ~_BV(PC0); dnl Ausgang Drucker PORTC &= ~_BV(PC1); dnl Ausgang Sound PORTC &= ~_BV(PC2); dnl Ausgang Festplatte END if (!(PINA & 0b00000001)) t1++; dnl prüfen ob Taste gedrückt, falls ja einen Zähler zur Entprellung inkrementieren else t1=0; dnl ansonsten Zähler wieder auf Null setzen if (!(PINA & 0b00000010)) t2++; else t2=0; if (!(PINA & 0b00000100)) t3++; else t3=0; if (t1==5) PORTC ^= (1<<PC0); dnl nach 5*25ms den entsprechenden Port toggeln if (t2==5) PORTC ^= (1<<PC1); if (t3==5) PORTC ^= (1<<PC2); CONTROL_END



Eingebaut wurde das Ganze in einen alten Router. Einzige Modifikation am NET-IO ist ein Kühlkörper am 7805, da ich nur ein 12V Netzteil übrig hatte.