// L6232 HD Motor Driver - Motor BLDC // Arduino Nano - IDE 1.6.7 // Gustavo Murta 09/set/2016 const int INUA = 9; // PB01 const int INUB = 10; // PB02 const int INUC = 11; // PB03 const int INLA = 5; // PD05 const int INLB = 6; // PD06 const int INLC = 7; // PD07 int DeltaT = 15000; unsigned long previousMillis = 0; const long interval = 500; void setup() { pinMode(INUA, OUTPUT); pinMode(INUB, OUTPUT); pinMode(INUC, OUTPUT); pinMode(INLA, OUTPUT); pinMode(INLB, OUTPUT); pinMode(INLC, OUTPUT); //Serial.begin(9600); } void sequence() { // 1a sequencia digitalWrite(INUA, LOW); digitalWrite(INUB, HIGH); digitalWrite(INUC, HIGH); digitalWrite(INLA, LOW); digitalWrite(INLB, HIGH); digitalWrite(INLC, LOW); delayMicroseconds(DeltaT); // 2a sequencia digitalWrite(INUA, LOW); digitalWrite(INUB, HIGH); digitalWrite(INUC, HIGH); digitalWrite(INLA, LOW); digitalWrite(INLB, LOW); digitalWrite(INLC, HIGH); delayMicroseconds(DeltaT); // 3a sequencia digitalWrite(INUA, HIGH); digitalWrite(INUB, LOW); digitalWrite(INUC, HIGH); digitalWrite(INLA, LOW); digitalWrite(INLB, LOW); digitalWrite(INLC, HIGH); delayMicroseconds(DeltaT); // 4a sequencia digitalWrite(INUA, HIGH); digitalWrite(INUB, LOW); digitalWrite(INUC, HIGH); digitalWrite(INLA, HIGH); digitalWrite(INLB, LOW); digitalWrite(INLC, LOW); delayMicroseconds(DeltaT); // 5a sequencia digitalWrite(INUA, HIGH); digitalWrite(INUB, HIGH); digitalWrite(INUC, LOW); digitalWrite(INLA, HIGH); digitalWrite(INLB, LOW); digitalWrite(INLC, LOW); delayMicroseconds(DeltaT); // 6a sequencia digitalWrite(INUA, HIGH); digitalWrite(INUB, HIGH); digitalWrite(INUC, LOW); digitalWrite(INLA, LOW); digitalWrite(INLB, HIGH); digitalWrite(INLC, LOW); delayMicroseconds(DeltaT); } void loop() { unsigned long currentMillis = millis(); sequence(); if (currentMillis - previousMillis >= interval) { if (DeltaT >= 5000 && DeltaT <= 15000) { DeltaT -=1000; //Serial.println(DeltaT); } previousMillis = currentMillis; } }