#include #define RXD 0 #define TXD 1 #define CLK 2 #define WAIT 500 char no = 0; uint8_t receive; void setup() { pinMode(TXD, OUTPUT); pinMode(RXD, INPUT); pinMode(CLK, OUTPUT); digitalWrite(CLK, LOW); //ノイズ対策(?)のため7bit送る for(int i=0; i<7; i++) { digitalWrite(TXD, HIGH); delayMicroseconds(WAIT); digitalWrite(CLK, HIGH); delayMicroseconds(WAIT); digitalWrite(CLK, LOW); } DigiUSB.begin(); } void loop() { if(DigiUSB.available()) { sendByte(DigiUSB.read()); } DigiUSB.delay(10); } void sendByte(byte b) { uint8_t onebit; receive = 0; for(int i=0; i<8; i++) { onebit = (b >> (7 - i)) & 1; digitalWrite(TXD, onebit); delayMicroseconds(WAIT); digitalWrite(CLK, HIGH); delayMicroseconds(WAIT); receive += (digitalRead(RXD) << (7 - i)); digitalWrite(CLK, LOW); } }