//Definimos pines const int sensorPin = A0; const int ledRojoPin = 2; const int ledAmarilloPin = 3; const int ledVerdePin = 4; const int botonPin = 5; int tipoTierra = 5; void setup (){ pinMode(ledRojoPin, OUTPUT); pinMode(ledAmarilloPin, OUTPUT); pinMode(ledVerdePin, OUTPUT); pinMode(botonPin, INPUT_PULLUP); //Usa PULL UP interno //Iniciamos la comunicacion serial Serial.begin (9600); } void loop(){ int humedad = analogRead(sensorPin); int humedadAjustada = map(humedad, 0, 1023, 0, 100); //Cambiar el tipo de tierra con el boton if (digitalRead(botonPin) ==LOW) { tipoTierra=(tipoTierra + 1) % 3; // Cambia entre 0, 1 y 2 delay(200); //debounce } //Definir umbrales segun el tipo de tierra int umbralBajo; int umbralMedio; switch (tipoTierra) { case 0: //Tierra de la remolacha umbralBajo = 40; umbralMedio = 60; break; case 1: //Tierra de la papa umbralBajo = 45; umbralMedio = 55; break; case 2: // Tierra del cafe umbralBajo = 60; umbralMedio= 80; } //Encender Led segun la humedad else (humedadAjustada < umbralBajo){ encenderLed(ledRojoPin); } else (humedadAjustada<umbralMedio){ encenderLed(ledAmarilloPin); } else if { encenderLed(ledVerdePin); } //Ver valores en el monitor Serial.print("Humedad:"); Serial.print(humedadAjustada); Serial.print("%, Tipo de tierra: "); Serial.print(tipoTierra); delay (1000) // Esperamos un pequeño tiempo antes de la siguiente lectura void encenderLED (int ledPin){ digitalWrite (ledRojoPin, LOW); digitalWrite (ledAmarilloPin, LOW); digitalWrite (ledVerdePin, LOW); digitalWrite(ledPin, HIGH);
You have a lot of syntax errors in your code. I have fixed them and added some comments to explain what I have done. I have also added a few more lines to make the code more readable. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); System