The next part of the circuit detects when any of the relays are energised and takes a digital input to an Arduino controlling the windows from 5 volts to zero volts. The four diodes prevent one switch from energising all the other relays and acts like an OR gate. The ZTX450 outputs a low when one of the switches is operated and that triggers the 555 to output a high which is clamped to 5 volts for the Trinket. The 555 timer acts as a Schmitt trigger and cleans up any switch bounce which might lead to unpredictable results.
I wondered about leaving this part of the circuit out and just having the circuit in effect provide pwm all the time. However, I realised that the system would need to know when the windows were being started so that a start up routine could be initiated in the software. This involves allowing a high current initially to get over the motor start up current. There is also a shutdown routine that slows down the motor rather than letting it come to a dead stop. This helps to avoid mechanical shocks which might damage some of the more delicate parts of the mechanism.
Input from window switches