Arduino nano no funciona bien alimentado externamente

Prueba este código, a diferencia del tuyo, no hace cosas cuando presionas con lo que incrementas o decrementas el contador a lo loco, sino que lo hace por vez, eso si no hay rebotes en tus pulsadores.

#include <Arduino.h>

// gammax f
//

#include <Servo.h>
Servo servo1;

int led = 9;
int servopin = 8;
int angulo = 0;
int buttonPin1 = 6;
int buttonPin2 = 7;
int buttonPin3 = 5;
int buttonState1, buttonState1Ant = 0;
int buttonState2, buttonState2Ant = 0;
int buttonState3, buttonState3Ant = 0;

void setup() {
  servo1.attach(servopin);  
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(buttonPin3, INPUT);
  servo1.write(angulo); 
  pinMode (led, OUTPUT); 
}

void loop() {
  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
  buttonState3 = digitalRead(buttonPin3);

  if (buttonState1 == HIGH && , buttonState1Ant == LOW) {
    angulo++;
    if (angulo >= 180)  {
      angulo = 180;   
    }
  }
  buttonState1Ant = buttonState1;

  if (buttonState2 == HIGH && , buttonState2Ant == LOW) {
    angulo--;
    if (angulo <= 0)    {
      angulo = 0;
    }
  }
  buttonState2Ant = buttonState2;

  if (buttonState3 == HIGH && , buttonState3Ant == LOW) {
      angulo = 0;
  }
  buttonState3Ant = buttonState3;
    
  if (angulo > 0)  {
    digitalWrite (led, HIGH);
  }
  if (angulo== 0)  {
    digitalWrite (led, LOW);
  }
 
  servo1.write(angulo);
  delay(20);
}
  
1 Like