Arduino - Arduino calcula y envia a PC valor ciclo util

 
Vista:

Arduino calcula y envia a PC valor ciclo util

Publicado por Itxaso (1 intervención) el 03/06/2020 20:30:00
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
//La práctica tiene dos partes. La primera la tengo solicionada pero en la segunda, me falla algo y no se que.
//Se trata de que arduino calcula y envía al monitor serie el valor del ciclo util y genera la señal a través
//de los cuatro leds (BLanco, VErde, AMbar y ROjo. ) . El problema que tengo es que me lo calcula en el led
//Blanco y en el Verde y en los otros dos no hace nada.
//Si alguien me podría ayudar, por favor... a continuación pongo la respuesta que recibo en el monitor serie.
 
//Dame la potencia del led
//blanco.....92
//verde....128
 
 
 
void setup()
{
Serial.begin(9600);//configura puerto serie a 9600baudios/s
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}
void loop()
{
if(Serial.available()>0)//si hay dato en el puerto mayor que 0 lo lee
{
  int BL;
  int VE;
  int AM;
  int RO;//busca la siguiente cadena de numeros enteros valida y
           //asigna el valor convertido a entero a la variable correspondiente para los cuatro leds.
 
 if(Serial.available()>0 && Serial.available()<256) //Si hay dato entre 0 y 255
 
 if(Serial.read()=='*')//lo lee
 {
  BL=Serial.parseInt();//lo guarda como numero
  BL /=4;
 }
 //while (Serial.available()>0 && Serial.available()<256)
 if(BL>0&&BL<256)
 {
    Serial.println("Dame la potencia del led");
    //Serial.available();//si está disponible
    //Serial.read();//lo lee
    analogWrite(6,BL);//el led 6 blanco toma el valor guardado en BL=serial.parseint
    delay(250);//espera 1s
    Serial.print("blanco.....");//imprime blanco..... para poner a continuación el valor que le enviemos
    Serial.println(BL);//imprime el valor capturado en blanco
    delay(750);//espera 1s.
 }
//Serial.flush();
 
 
  if(Serial.available()>0 && Serial.available()<256)
  if(Serial.read()=='*')
 {
  VE=Serial.parseInt();
  VE /=4;
 }
  if(VE>0&&VE<256)
 {
  //Serial.available();
  //Serial.read();
  analogWrite(9,VE);
  delay(250);
  Serial.print("verde....");
  Serial.println(VE);
  delay(750);
  }
//Serial.flush();
 
 
if(Serial.available()>0&&Serial.available()<256)
if(Serial.read()=='*')
 {
  AM=Serial.parseInt();
 AM /=4;
 }
    if(AM>0&&AM<256)
 {
 
  //Serial.available();
 // Serial.read();
  analogWrite(10,AM);
  delay(250);
  Serial.print("ambar.....");
  Serial.println(AM);
  delay(750);
 }
//Serial.flush();
 
 
if(Serial.available()>0 && Serial.available()<256)
if(Serial.read()=='*')
 {
  RO=Serial.parseInt();
   RO /=4;
 }
   if(RO>0&&RO<256)
{
  //Serial.available();
  //Serial.read();
 
  analogWrite(11,RO);
  delay(250);
  Serial.print("rojo .....");
  Serial.println(RO);
  delay(750);
}
//Serial.flush();
}
}
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