Hello,
Can anyone tell me why the board detects a constant current of 16 through pin A2 with this program (which does not change when I connect ground or 5v)?
#include "Arduino_SensorKit.h"
const int switchPin = 6;
int switchState = 0;
int prevSwitchState = 0;
int reply; //cosas de la pantalla
int seconds = 0;
int ledPins[] = {8, 9, 10}; // Ajusta los números de pin según tu circuito
int numLeds = 3; // Número de LEDs en el circuito
unsigned long previousMillis = 0; // Variable para almacenar el tiempo anterior
const unsigned long interval = 250; // Intervalo deseado
int ledIndex = 0; // Variable para rastrear el índice del LED
#define BUZZER 5 //Altavoz pin 5 ocupado
unsigned long previousMillisBuzzer = 0;
const unsigned long intervalBuzzer = 750; // Intervalo deseado
bool buzzerState = false; // Estado actual del zumbador
String resultado = ""; //almacena el resultado
unsigned long tiempoUltimaCaptura = 0; // Tiempo de la última captura
bool capturaActiva = false; // Indica si se está capturando señales
unsigned long tiempoEspera = 10; // Tiempo de espera entre lecturas
int vecesimpreso = 0;
void setup() {
// put your setup code here, to run once:
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
//pinMode(BUZZER, OUTPUT);
Serial.begin(9600);
capturaActiva = true;
}
void loop() {
// put your main code here, to run repeatedly:
unsigned long currentMillis = millis(); // Obtiene el tiempo actual
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis; // Actualiza el tiempo anterior
// Realiza la acción específica (encender o apagar el LED)
digitalWrite(ledPins[ledIndex], !digitalRead(ledPins[ledIndex]));
// Avanza al siguiente LED
ledIndex = (ledIndex + 1) % numLeds;
}
unsigned long currentMillisBuzzer = millis(); // Obtiene el tiempo actual
/*if (currentMillisBuzzer - previousMillisBuzzer >=intervalBuzzer) {
previousMillisBuzzer = currentMillisBuzzer; //ACT Tiempo
// Alterna el estado del zumbador
buzzerState = !buzzerState;
if (buzzerState) {
tone(BUZZER, 4000); // Enciende el zumbador
} else {
noTone(BUZZER); // Apaga el zumbador
}
}*/
if (capturaActiva) {
unsigned long tiempoActual = millis();
if (tiempoActual - tiempoUltimaCaptura >= tiempoEspera) {
int senal = analogRead(A2);
if (senal >= 1020) {
resultado += "A";
tiempoUltimaCaptura = tiempoActual;
} else if (senal >= 990 && senal <= 1010) {
resultado += "B";
tiempoUltimaCaptura = tiempoActual;
} else if (senal >= 490 && senal <= 520) {
resultado += "C";
tiempoUltimaCaptura = tiempoActual;
} else if (senal >= 4 && senal <= 20) {
resultado += "D";
tiempoUltimaCaptura = tiempoActual;
}
}
}
if (resultado.length() == 4 && vecesimpreso == 0 ) {
capturaActiva = false;
Serial.println(resultado);
vecesimpreso++;
}
Serial.println(A2);
}
And when I use this code it gives normal readings (0 or 1023)?
int pinA2 = A2; // Pin A2
void setup() {
Serial.begin(9600);
}
void loop() {
int valor = analogRead(pinA2);
Serial.print("Valor en A2: ");
Serial.println(valor);
delay(500);
}