1 2 3 4 5 6 7 8 9 10 11
pin vcc pin gnd pin drive pin ctrl C1815 trans trans.e = gnd trans.c = vcc -- load trans.b = gnd -- 10kΩ trans.b = ctrl -- 2.2kΩ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
int vCtrlPin = 2; int vLedlPin = 13; //////////////////////////////////////////////////////////////// void setup(); void loop(); void on(); void off(); void printCommand(int aCommand); //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// void setup() { Serial.begin(9600); pinMode(vCtrlPin, OUTPUT); Serial.println("UsbSwitch.Start;"); } //////////////////////////////////////////////////////////////// int vRead = 0; void loop() { if (Serial.available() > 0) { switch(vRead = Serial.read()) { default: Serial.print("Invalid Cmd #"); printCommand(vRead); break; case '0': off(); break; case '1': on(); } } delay(1000); } //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// void on() { Serial.println("On;"); digitalWrite(vCtrlPin, HIGH); digitalWrite(vLedlPin, HIGH); } void off() { Serial.println("Off;"); digitalWrite(vCtrlPin, LOW); digitalWrite(vLedlPin, LOW); } //////////////////////////////////////////////////////////////// void printCommand(int aCommand) { Serial.print(aCommand, HEX); Serial.print(" ["); Serial.print(aCommand, BIN); Serial.println("]"); } ////////////////////////////////////////////////////////////////