One method is to use interrupts with a state machine. Here is a minimal example:
Master
#define pin 10 // connect to slave digital input pin
void setup(){
pinMode(pin,OUTPUT);
digitalWrite(pin,LOW);
}
void loop(){
if( // insert your condition to trigger the slave Arduino ){
digitalWrite(pin,HIGH);
delay(10); // short delay
digitalWrite(pin,LOW);
}
}
Slave
#define pin 2 // connect to master digital output "pin"
unsigned int state;
void setup(){
pinMode(pin,INPUT);
state=0;
attachInterrupt(digitalPinToInterrupt(pin),isr,RISING) // trigger ISR on rising edge of master voltage signal
}
void loop(){
if(state==1){
// your code here
state=0; // reset when done
}
}
void isr() {
state=1;
}
Digital interrupts can be done on the Arduino UNO with pins 2,3. Don't forget to also connect a common electrical ground between Arduinos.