Arduino Protocols

Analog

This protocol communicates by the voltage level on the wire. 0 to 5 volts for example. This is translated into a value from 0 to 1023.

PWM

This protocol communicates by varying the volts between high (on) and low (off) at a high frequency. The length of time the volts are high gives the message. For example the angle of a servo is determined by the length of time the volts are high. One wire is required to send the message.

Serial

This protocol communicates using alphabet characters. It's important to know the baud rate (frequency) of the message, for example 9600 bits per second (bps). Two wires are required one to transmit (TX) and one to receive (RX).

I2C

This protocol communicates using a network bus. I2C devices can be stringed together where the device has a network address. Messages are sent to the device network address. Two wires are required.

You can scan for connected I2c devices using the sketch here

AddressDescription
0x1EHMC5883L
0x60CMPS10
0x60CMPS11
0x62Lidar Lite2 laser
0x70SRF02 ultrasonic
0x77BMP180 pressure

SPI

This protocol communicates using synchronous serial communication. It's prime use is communicating with secure digial cards. It requires 4 wires.

CAN

This protocol called Controller Area Network. It requires 4 wires. Apparently it is used in cars and on boats. The NMEA network uses the CAN as its hardware.