// Gas Discharge Lamps controller#define VERSION "$Revision: 3654 $"// Triacsint t1 = 2; // PD2 - lamp 1int t2 = 3; // PD3 - lamp 2int t3 = 4; // PD4 -int t4 = 5; // PD5 -int t5 = 6; // PD6 -int t6 = 7; // PD7int t7 = 8; // PB0int t8 = 9; // PB1int n; // Counterchar state; // State of Gas Lampsvoid info () // Print an information string{Serial.print("Gas Discharge Lamps Controller ");Serial.println(VERSION);Serial.println("Commands: abcdefghABCDEFGHitRS");Serial.println("a = OFF lamp 1 / A = ON lamp 1");Serial.println("i = info");Serial.println("t = telemetry");Serial.println("R = reset");}void pstatus() // Print status to serial line{for (n=1;n<=8;n++){if(digitalRead(n+1)){Serial.print((char)('A'+n-1));}else{Serial.print((char)('a'+n-1));}}Serial.println();}// the setup routine runs once when you press reset:void setup(){// initialize the digital pin as an output and switch offdigitalWrite(t1, LOW);digitalWrite(t2, LOW);digitalWrite(t3, LOW);digitalWrite(t4, LOW);digitalWrite(t5, LOW);digitalWrite(t6, LOW);digitalWrite(t7, LOW);digitalWrite(t8, LOW);pinMode(t1, OUTPUT);pinMode(t2, OUTPUT);pinMode(t3, OUTPUT);pinMode(t4, OUTPUT);pinMode(t5, OUTPUT);pinMode(t6, OUTPUT);pinMode(t7, OUTPUT);pinMode(t8, OUTPUT);state = 'a';// initialize the serial portSerial.begin(9600);Serial.println();Serial.println("Cvak.");Serial.println("Hmmm....");info();}// the loop routine runs over and over again forever:void loop(){byte inByte; // Character from serial lineif (Serial.available() > 0) // wait for a char{// get incoming byte:inByte = Serial.read();switch (inByte){case 'i': // Print Infoinfo();break;case 'R': // Resetasm volatile (" jmp 0");break;}if ( (inByte >= 'a') and (inByte <= 'h')) // Switch OFF other triacs{digitalWrite(inByte-'a'+2,LOW);}if ( (inByte >= 'A') and (inByte <= 'H')) // Switch ON other triacs{digitalWrite(inByte-'A'+2, HIGH);}pstatus(); // Print states}}