Dudas en arduino para resolver

Hola,
me gustaría saber como poner potenciometro que mientas gire tenga encendido un led rojo pero cuando se detenga en cualquier valor durante 10seg. se encienda un led verde y el led rojo se apague.
¿Alguien me pude ayudar, porfis?
Gracias, un saludo
Sandra

Necesitas leer un potenciómetro. Tienes un ejemplo en el IDE con analogRead y hay cientos en Youtube.
Tienes que leer como usar millis(). Para eso ve a documentación y lee los tutoriales.
Prender apagar leds es el capítulo uno de cualquier libro.
A ver con estos consejos como encaras el problema?

1 Like

Hola @tic_syh
por favor más información.
¿Qué Arduino quieres usar?
¿Qué valor tiene el potenciómetro?

Hola
prueba este código.


int sensorPin = A0;                   // select the input pin for the potentiometer
int ledPinRed = 11;                   // select the pin for the Red LED
int ledPinGreen = 10;                 // select the pin for the Green LED
int sensorValue = 0;                  // variable to store the value coming from the sensor
int lastValue = 0;                    // variable to store the value saved from the sensor
int hysteresis = 10;                  // variable to store calculation of analogread variation
unsigned long timePass = millis();    // time to compare two analog reads
unsigned long timeCount = millis();   // time to change LED ative
//--------------------------------------------------------------------
void setup() {
  Serial.begin(115200);                     // Inicialize serial
  pinMode(ledPinRed, OUTPUT);               // declare the ledPinRed as an OUTPUT:
  pinMode(ledPinGreen, OUTPUT);             // declare the ledPinGreen as an OUTPUT:
  lastValue = analogRead(sensorPin);        // read the value from the sensor:
}
//--------------------------------------------------------------------
void loop() {
  sensorValue = analogRead(sensorPin);              // read the value from the sensor:
  Serial.println(abs(lastValue - sensorValue));     // print analogread variation
 
  if (abs(lastValue - sensorValue)  > hysteresis )  // if read over variation
  {
    digitalWrite(ledPinRed, HIGH);                  // turn the ledPinRed on
    digitalWrite(ledPinGreen, LOW);                 // turn the ledPinGreen off
    timeCount = millis();                           // Refresh time to change LED color
  }
  else                                              // if no over variation
  {
    if (millis() - timeCount > 10000)               // if pass 10 seg
    {
      digitalWrite(ledPinRed, LOW);                 // turn the ledPinRed off
      digitalWrite(ledPinGreen, HIGH);              // turn the ledPinGreen on
    }
  }
  if (millis() - timePass > 500)                    // if pass time to compare two analog reads
  {
    lastValue = sensorValue;                        // Save analogread 
    timePass = millis();                            // Refresh time to compare two analog reads
  }
}

Gracias