Kabel von Roket nach Tastaturbox und Relaisbox Rot Plus : zur Keyboard Box auf Klemme B 8 Blau Minus: zur Keyboard Box auf Klemme 7 Gelb : zur Relaisbox auf Ausgang 1 J2 Weiß : zur Relaisbox auf Ausgang 1 ====== Relaisbox ====== Klemme 1 und 2 liefern 5V Jeweils Links (JX) ist Plus, rechts daneben GND Restliche Klemmen sind einfach offen auf dem Relais Ansteuerung: Seriell 9600 8N1 jeweils ein Zeichen senden. Großbuchstaben A-H schalten Relais an, Kleinbuchstaben a-h wiederum aus A -> Relais 1 an a -> Relais 1 aus | Ausgang | Funktion | Nummer im Code | | 1 | 5V an Optokoppler für r0ket | 0 | | 2 | 5V frei | 1 | | 3 | Kontakt Lampe an Button | 2 | | 4 | | 3 | | 5 | | 4 | | 6 | | 5 | | 7 | Unterbrechungskontakt für Kreis 3 | 6 | | 8 | Unterbrechungskontakt für Lichtschranke | 7 | ====== KeyboardBox ====== | Klemme | Buchstabe | Nutzen | | 1 | | 3,3V | | 2 | | GND | | 3 | D | | | 4 | | GND | | 5 | C | | | 6 | | GND | | 7 | B | r0ket Kontakt rote Ader | | 8 | | GND blaue Ader | | 9 | E | blauer Button | | 10 | | GND | | 11 | F | Lichtschranke (über Relaiskarte Ausgang 8) | | 12 | | GND | | 13 | G | Kreis 1 weiße Ader | | 14 | | GND | | 15 | H | Kreis 2 weiße Ader | | 16 | | GND | | 17 | I | Kreis 3 (über Relaiskarte Ausgang 7) weiß auf Lüsterklemme, Relaiskarte, dann auf die Klemme | | 18 | | GND | | 19 | J | | | 20 | | GND | | 21 | K | | | 22 | | GND | | 23 | | 5V die roten Adern der Kreisleitungen | | 24 | | GND die schwarzen Adern der Kreisleitungen | ====== Code für den AVR der den PC Speaker als Piepser macht ====== Transistor BD137 an PortD0 anklemmen. Ein Kontakt an 5V, den anderen an den Kollektor vom Transistor. Basisvorwiderstand ~560Ohm avr-gcc -c -mmcu=atmega644 -I. -Os -Wall -std=gnu99 -DF_CPU=16000000 main.c -o main.o avr-gcc -mmcu=atmega644 -I. -Os -Wall -std=gnu99 -DF_CPU=16000000 main.o --output main.elf -lm avr-objcopy -O ihex -R .eeprom main.elf main.hex #include #include void beep() { uint16_t i; for(i=0;i<0x4ff;i++) { PORTD ^= 0x01; _delay_us(200); } } int main(void) { DDRD |= _BV(PD0); uint8_t i = 0; for(;;) { for(i=0;i<50;i++) { _delay_ms(20); } beep(); } return 0; }