Need little help with this code

You have local variables in each of your functions with identical names - for example carstop. These will all be different from each other. That may be what you intend. However I think it would be less confusing if you gave them different names in the different functions.

However that is complicated by another factor. You are reading the same I/O pins in different places so you may or may not get different values. For example I see digitalRead(stop_check); in 5 different places.

if this was my program I would have one function to read and save the values from all the I/O pins once per iteration of loop() and I would use those values in all the code used in that iteration.

It would also be a good idea while debugging the program to print all the values when they have been collected.

When I am writing a program I prefer to cascade my IF tests rather than have several on one line as IMHO the cascade makes it easier to follow the logic and to insert print statements for debugging purposes.

...R