Arduino - Distintos bucles

 
Vista:

Distintos bucles

Publicado por Joaquín (1 intervención) el 04/02/2021 20:19:20
No encuentro la manera de programar un código para que me haga la siguiente función
-Dependiendo de lo que yo escriba en el monitor serie me ejecute un bloque u otro pero constantemente.
Por ejemplo si pongo 'rojo' me lea el valor de un potenciómetro y regule la salida a un led rojo que tengo puesto a una salida pwm y me lo regule constantemente hasta que yo ponga en el monitor serie "ok"
Si pongo en el monitor serie una "g" me haga lo mismo pero a otra salida a la que tengo un led verde y así con otras salidas
Gracias un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Gio
Val: 17
Ha aumentado su posición en 4 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

Distintos bucles

Publicado por Gio (9 intervenciones) el 22/06/2021 01:14:41
Hola Joaquín, tal vez este código sea el que estás buscando:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// PINES
byte ledR = 9, ledG = 10, ledB = 11;
byte pote = A0;
 
// VARIABLES QUE PERMITEN EL FUNCIONAMIENTO
uint16_t opcion; //ALMACENA LA OPCION ELEGIDA
bool una=false;  //EVITA QUE SE REPITAN MENSAJES EN CONSOLA
 
//FUNCION QUE LEE LO QUE SE INGRESA POR EL MONITOR
void escuchar(){
  if(Serial.available()>1){
    opcion=Serial.read();
    delay(10);
  }
}
 
 
 
void setup(){
  Serial.begin(9600);
 
  pinMode(ledR, OUTPUT);
  pinMode(ledG, OUTPUT);
  pinMode(ledB, OUTPUT);
  pinMode(pote, INPUT);
 
  Serial.println("Listo");
}
 
 
 
void loop(){
  escuchar();
 
  //AJUSTE DEL LED ROJO
  while(opcion=='r'){
    if(una){
      Serial.println("Configura el LED R:");
    }
    una=false;
    analogWrite(ledR, analogRead(pote)/4);
    escuchar();
  }
 
  //AJUSTE DEL LED VERDE
  while(opcion=='g'){
    if(una){
      Serial.println("Configura el LED G:");
    }
    una=false;
    analogWrite(ledG, analogRead(pote)/4);
    escuchar();
  }
 
  //AJUSTE DEL LED AZUL
  while(opcion=='b'){
    if(una){
      Serial.println("Configura el LED B:");
    }
    una=false;
    analogWrite(ledB, analogRead(pote)/4);
    escuchar();
  }
 
  una=true;
}


Tienes que ingresar por el monitor serial una "r" para configurar el led rojo, una "g" para ajustar el led verde, una "b" para ajustar el led azul o ingresa cualquier otra cosa para finalizar el ajuste (por ejemplo un "ok").
También si estás editando el led verde (por ejemplo), puedes ingresar "b" o "r" para pasar a configurar los otros leds y se te guardará la configuración que le estabas haciendo al led verde.

Espero esto te sea de utilidad, un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar