long data = 0;
unsigned long setbit = 0;
unsigned long send = 0;
byte shiftedval = 0;
unsigned long a = 0;
unsigned long present = 0;
unsigned long past = 0;
void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
attachInterrupt(digitalPinToInterrupt(2), trig, RISING);
Serial.begin(9600);
}
void trig() {
a = 1;
}
void loop() {
present = millis();
digitalWrite(5, HIGH);
if(Serial.available()) {
digitalWrite(5, LOW);
data = Serial.parseInt();
shiftedval = data;
for(int i = 0; i <= 7; i = i + 1) {
setbit = shiftedval & (0b10000000 >> i);
if(setbit >= 1) {
send = 1;
digitalWrite(4, HIGH);
digitalWrite(3, HIGH);
delayMicroseconds(100);
digitalWrite(3, LOW);
}
if(setbit == 0) {
send = 0;
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
delayMicroseconds(100);
digitalWrite(3, LOW);
}
a = 0;
}
}
if(a == 1) {
for(int y = 0; y <= 7; y = y + 1) {
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
delayMicroseconds(100);
digitalWrite(3, LOW);
}
a = 0;
}
}