Buenas a todos.
Estoy siguiendo un curso y como parte del seguimiento del mismo DOS de los ejercicios consisten en decirle al monitor serie qué LED encender y el otro igual pero a un led RGB.
La cosa está en que cuando indico cuál tiene que encender (escribo al monitor serie) no hace nada.
He repasado código y conexiones así como he probado en copiar directamente el código del profesor.
Tengo un Arduino Uno (kit de Amazon). Creo que el problema puede estar relacionado con los baudios (pero he probado a indicar los mismos tanto en en programa como en el monitor serie y NADA).
He probado tanto con el programa hecho por el profesor, como con otras opciones y no me funciona .
Debo incluir que en el primero de los códigos trabajando a los baudios que pone en el programa facilitado por el profesor, el monitor serie me da caracteres extraños y en cambio le pongo (9600baudios) si que me formula bien la pregunta en el monitor, pero ninguno ejecuta la respuesta.
Ambos códigos al profesor le funcionan, con que creo que es algo de la configuración.
Espero que me podáis ayudar, os facilito ambos códigos.
Gracias por vuestra ayuda.
Código 1 (El que comento que cambio los baudios a 9600):
int greenPin = 13;
int redPin = 12;
int bluePin =11;
String ledColor;
String msg1 = "Escribe un color de led";
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(greenPin,OUTPUT);
pinMode(redPin,OUTPUT);
pinMode(bluePin,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println();
Serial.println(msg1);
while (Serial.available() == 0){
}
ledColor = Serial.readString();
if (ledColor == "verde" || ledColor == "VERDE"){
digitalWrite(greenPin,HIGH);
digitalWrite(redPin,LOW);
digitalWrite(bluePin,LOW);
}
if (ledColor == "rojo" || ledColor == "ROJO"){
digitalWrite(greenPin,LOW);
digitalWrite(redPin,HIGH);
digitalWrite(bluePin,LOW);
}
if (ledColor == "azul" || ledColor == "AZUL"){
digitalWrite(greenPin,LOW);
digitalWrite(redPin,LOW);
digitalWrite(bluePin,HIGH);
}
}
y el codigo del ejercicio RGB
int redPin= 11;
int greenPin = 10;
int bluePin = 9;
String color;
String msg1 = "Por favor elige un color";
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println();
Serial.println(msg1);
while (Serial.available() == 0);{
}
color = Serial.readString();
if (color == "rojo"){
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, LOW);
}
if (color == "verde"){
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);
digitalWrite(bluePin, LOW);
}
if (color == "azul"){
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, HIGH);
}
if (color == "cian"){
analogWrite(redPin, 0);
analogWrite(greenPin, 255);
analogWrite(bluePin, 255);
}
if (color == "magenta"){
analogWrite(redPin, 255);
analogWrite(greenPin, 0);
analogWrite(bluePin, 255);
}
if (color == "amarillo"){
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(bluePin, 0);
}
if (color == "naranjado"){
analogWrite(redPin, 255);
analogWrite(greenPin, 100);
analogWrite(bluePin, 0);
}
}