BotronikS - Final code for all types of Arduino and PC users: -- HOME -- email: botronik@gmail.com
What you need to install or have installed before on your PC: see HERE

CPA16din: Status control of up to 16 Arduino digital inputs (open/closed) by TEXT commands (from PC, PLC...)

connections (click to enlarge)

XLoader example

Termite test...

Useful accessories:  
 
 
 
 
 
 
CPA16din: Status control of up to 16 Arduino digital inputs (open/closed) by TEXT commands (from PC, PLC...)
Download the HEX codes below, unpack, and upload to the proper Arduino board (Use a free net tool for example XLoader)
1. ATmega328-16MHz (MINI,NANO,UNO...): Hex-m328 - Free!
2. AtMega2560 (Mega(ATMEGA2560)........): Hex-m2560 - Free!
Based on the offered TEXT commands, you can develop your own PC, PLC ... communication code, and applications...

Available ASCII TEXT commands (Default: ID=1 Baud=9600): Test uploaded code using some free serial software such as Termite.TextCommamd format: ID(device identifier) + TextCommand + ENTER
IDAT - attention command (return ID+OK) - example for ID=1: 1AT
IDDx - returns status of input x (x=1-16) - example for ID=1: 1D1 - answer format: IDDxH or IDDxL (H=Hi level=open L=Lo level=closed)
IDDA - returns status of all inputs - example for ID=A: ADA

Additional commands (after uploading the code, do next:):
Connect Arduino to PC (if in your hardware use RS485 module connected to D0/D1 - Arduino must be out of hardware)- use Termite):
ID=device identifier BAUD=device Baud rate
ID? - returns ID
ID=x (set new ID x=0-9 or A, B, C, D, E, F, - example: ID=2 or ID=A ... )
BAUD=x (set the new baud rate: supported x=1200,2400.4800,9600,19200,38400,57600 - example: BAUD=19200 )
Note: Be careful when changing BAUD! Remember the new set BAUD value in case of further settings!
 

Try and Test with BScada:
Recommended BScada: BScadaID_16din