I want to use Arduino Giga Pin 2 -9 for PWM, all pins are working fine except pin 5 an 6. What is the solutions to fix it?
see code below
`// libraries
#include <Ethernet.h> //library Ethernet
#include <Modbus.h> //library Modbus protocol
#include <ModbusIP.h> //library modbus IP
#include <DHT.h> //library DHT sensores
// pwm outputs connected to pins
const int PWM_0_PIN = 2;
const int PWM_1_PIN = 3;
const int PWM_2_PIN = 4;
const int PWM_3_PIN = 5;
const int PWM_4_PIN = 6;
const int PWM_5_PIN = 7;
const int PWM_6_PIN = 8;
const int PWM_7_PIN = 9;
// PWM Modbus adresses
const int PWM_0_holdingregister = 0;
const int PWM_1_holdingregister = 1;
const int PWM_2_holdingregister = 2;
const int PWM_3_holdingregister = 3;
const int PWM_4_holdingregister = 4;
const int PWM_5_holdingregister = 5;
const int PWM_6_holdingregister = 6;
const int PWM_7_holdingregister = 7;
// init modbus TCP-IP
ModbusIP mb;
unsigned long newtime;
unsigned long oldtime;
unsigned long cycletime;
void setup() {
// Intitialize Serial communication
Serial.begin(2000000);
Serial.println("Protractor bv: Modbus Domotica");
// Initialize Network and Modbus IP
byte mac[] = { 0xA8, 0x61, 0x0A, 0xAE, 0x29, 0x24 }; // Mac Address ethernetshield
byte ip[] = { 10, 0, 0, 209 }; //IP Address
mb.config(mac, ip); //Config Modbus MAc and IP
// pinmode PWM_outs
pinMode(PWM_0_PIN, OUTPUT);
pinMode(PWM_1_PIN, OUTPUT);
pinMode(PWM_2_PIN, OUTPUT);
pinMode(PWM_3_PIN, OUTPUT);
pinMode(PWM_4_PIN, OUTPUT);
pinMode(PWM_5_PIN, OUTPUT);
pinMode(PWM_6_PIN, OUTPUT);
pinMode(PWM_7_PIN, OUTPUT);
// add modbus holding registers
mb.addHreg(PWM_0_holdingregister);
mb.addHreg(PWM_1_holdingregister);
mb.addHreg(PWM_2_holdingregister);
mb.addHreg(PWM_3_holdingregister);
mb.addHreg(PWM_4_holdingregister);
mb.addHreg(PWM_5_holdingregister);
mb.addHreg(PWM_6_holdingregister);
mb.addHreg(PWM_7_holdingregister);
}
void loop() {
newtime = millis();
cycletime = newtime - oldtime;
oldtime = newtime;
Serial.println(cycletime);
// Modbus writing and reading
mb.task();
analogWrite(PWM_0_PIN, mb.Hreg(PWM_0_holdingregister));
analogWrite(PWM_1_PIN, mb.Hreg(PWM_1_holdingregister));
analogWrite(PWM_2_PIN, mb.Hreg(PWM_2_holdingregister));
analogWrite(PWM_3_PIN, mb.Hreg(PWM_3_holdingregister));
analogWrite(PWM_4_PIN, mb.Hreg(PWM_4_holdingregister));
analogWrite(PWM_5_PIN, mb.Hreg(PWM_5_holdingregister));
analogWrite(PWM_6_PIN, mb.Hreg(PWM_6_holdingregister));
analogWrite(PWM_7_PIN, mb.Hreg(PWM_7_holdingregister));
delay(100);
}
'