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


0