#include "lib_io_tp.h" /*mix de https://wokwi.com/arduino/projects/313005664351814210 et de https://wokwi.com/arduino/projects/301188813482361352 */ // Pin definitions: const int datapin_in = 2; /* Q7 */ const int clockpin_in = 3; /* CP */ const int latchpin_in = 4; /* PL */ const int datapin_out = 5; const int clockpin_out = 6; const int latchpin_out = 7; /////////////////////////////////////////////////////// void SetupES(void){ pinMode(datapin_in, INPUT); pinMode(clockpin_in, OUTPUT); pinMode(latchpin_in, OUTPUT); // Set the three SPI pins to be outputs: pinMode(datapin_out, OUTPUT); pinMode(clockpin_out, OUTPUT); pinMode(latchpin_out, OUTPUT); } /////////////////////////////////////////////////////// unsigned char readPort(void){ unsigned char val=0; // Step 1: Sample digitalWrite(latchpin_in, LOW); digitalWrite(latchpin_in, HIGH); for (int i = 0; i < 8; i++) { int bit = digitalRead(datapin_in); val=(val<<1)|bit; digitalWrite(clockpin_in, HIGH); // Shift out the next bit digitalWrite(clockpin_in, LOW); } return val; } /////////////////////////////////////////////////////// void writePort(unsigned char value){ shiftOut(datapin_out, clockpin_out, MSBFIRST, value); //Send "data" to the shift register //Toggle the latchpin_out to make "data" appear at the outputs digitalWrite(latchpin_out, HIGH); digitalWrite(latchpin_out, LOW); } ///////////////////////////////////////////////////////