@slipstick following your suggestion I did a scan to determine I2C addresses. Without connecting the PCA9685 board, the result was the following:
No I2C devices found
So I connected the PCA9685 board, restarted the scan and the result was this:
I2C device found at address 0x40 !
I2C device found at address 0x70 !
See below the code used for the I2C scan.
I thank you for the opportunity to learn how to do I2C scanning, even though the last test of the first video showed that there is communication between Arduino Uno and the PCA9685 board. In that test the PCA9685 board activates only the sixteenth channel, exactly as it was programmed, and the voltage between PWM and GND varies in correspondence with the times set in the loop for the movements of the servo motor. Considering the measurements, the problem does not seem to be the communication between Arduino Uno and the PCA9685 board, it seems instead that there is not enough voltage in the outputs of the PCA9685 board.
The code used to scan was this:
while (!Serial); // Leonardo: wait for serial monitor
byte error, address;
nDevices = 0;
for(address = 1; address < 127; address++ )
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
error = Wire.endTransmission();
if (error == 0)
Serial.print("I2C device found at address 0x");
else if (error==4)
Serial.print("Unknown error at address 0x");
if (nDevices == 0)
Serial.println("No I2C devices found\n");
delay(5000); // wait 5 seconds for next scan