int pin;
int pinState;
int probe;
int probeMode;
//------------------------------------------------------------------------------------------------------
void setup() {
// put your setup code here, to run once:
pin = 2;
pinState = 1;
pinMode(LED_BUILTIN, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
Serial.begin(115200);
}
//=====================================================================================================
void loop() {
// put your main code here, to run repeatedly:
for (pin = 2; pin < 5; pin++) { // pins 2,3,4 Repeat
for (int pinState = 1; pinState < 5; pinState++) { // pinState 1,2,3,4 Repeat
setPinState(pin,pinState);
delay(2000);
}
}
}
//====================================================================================================
// Define Functions here
void setProbeState(int probe, int probeMode) {
// ignore probe, as we only have one at the moment...
switch (probeMode) {
case 1:
//probe1mode is HiZ_Gnd
allPinsInput();
break;
case 2:
allPinsInput();
break;
case 3:
allPinsInput();
break;
case 4:
allPinsInput();
break;
case 5:
allPinsInput();
break;
case 6:
allPinsInput();
break;
case 7:
allPinsInput();
break;
case 8:
allPinsInput();
break;
case 9:
allPinsInput();
break;
case 10:
allPinsInput();
break;
}
}
/*----------------- SCRATCH ----------------------------------------------
TestMode Probe1mode Probe2mode Connection diagram Max Current
--------- ------- ------- ------------------------------------- -----------
1 HiZ_Gnd HiZ_Vcc Gnd-470k-------->DUT<---470k-Vcc 5uA
2 HiZ_Gnd MedZ_Vcc Gnd-470k-------->DUT<---1k-Vcc 11uA
3 MedZ_Gnd MedZ_Vcc Gnd-1k---------->DUT<---1k-Vcc 2.5mA
4 MedZ_Gnd LoZ_Vcc Gnd-1k---------->DUT<---int20R-100-Vcc 4.46mA
5 LoZ_Gnd LoZ_Vcc Gnd-int20R-100-->DUT<---int20R-100-Vcc 20.8mA
6 HiZ_Vcc HiZ_Gnd Vcc-470k-------->DUT<---470k-Gnd 5uA
7 HiZ_Vcc MedZ_Gnd Vcc-470k-------->DUT<---1k-Gnd 11uA
8 MedZ_Vcc MedZ_Gnd Vcc-1k---------->DUT<---1k-Gnd 2.5mA
9 MedZ_Vcc LoZ_Gnd Vcc-1k---------->DUT<---int20R-100-Gnd 4.46mA
10 LoZ_Vcc LoZ_Gnd Vcc-int20R-100-->DUT<---int20R-100-Gnd 20.8mA
*/
void setPinState(int pin, int pinState) {
switch (pinState) {
case 1:
pinMode(pin, OUTPUT);
digitalWrite(pin, HIGH);
Serial.print("setPinState case1-o/p hi \t");
Serial.print("pinState-Pin=");
Serial.print(pin);
Serial.print("\t");
Serial.print("pinState=");
Serial.println(pinState);
break;
case 2:
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
Serial.print("setPinState case2-o/p low\t ");
Serial.print("pinState-Pin=");
Serial.print(pin);
Serial.print("\t");
Serial.print("pinState=");
Serial.println(pinState);
break;
case 3:
pinMode(pin, INPUT);
Serial.print("setPinState case3-input \t");
Serial.print("pinState-Pin=");
Serial.print(pin);
Serial.print("\t");
Serial.print("pinState=");
Serial.println(pinState);
break;
case 4:
pinMode(pin, INPUT_PULLUP);
Serial.print("setPinState case4-i/p PU \t");
Serial.print("pinState-Pin=");
Serial.print(pin);
Serial.print("\t");
Serial.print("pinState=");
Serial.println(pinState);
break;
}
}
void allPinsInput() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
}
/*
Serial.print("pin=");
Serial.println(pin);
Serial.print("pinState=");
Serial.println(pinState);
digitalWrite(LED_BUILTIN, HIGH); // Turn the LED on
digitalWrite(2, HIGH); // Turn the LED on
digitalWrite(3, HIGH); // Turn the LED on
digitalWrite(4, HIGH); // Turn the LED on
delay(300);
digitalWrite(LED_BUILTIN, LOW); // Turn the LED off
digitalWrite(2, LOW); // Turn the LED off
digitalWrite(3, LOW); // Turn the LED off
digitalWrite(4, LOW); // Turn the LED off
delay(300);
*/