Novato consulta [solucionado ]

Antes de nada Buenos días.
Soy nuevo en arduino. ..
Entre los innumerables proyectos que se me ocurren intentar con este útil la verdad es que estoy haciendo un control de diferencia de tensión
(Comparador de voltaje )
en síntesis según la entrada discrimina una u otra salida
Son saltos de tensión de 4.5 volt. ..es decir :
Cuento con 4 salidas ...A. B. C. D.
Y la entrada es la misma

De 0 a 4.5 volt ...tengo un estado alto en A y bajo en B.C.D.

De 4.6v a 9v tengo un estado alto en B. y bajo en A.C.D.

de 9.1v a 13.5v ...de 13.6v a 18v. alto en C. y bajo en A.B.D.

de 18.1v a 22.5 v. Alto en D y bajo en los demás.

Puede hacerse con arduino sin que el desarrollo del sof supere Demasiado el estándar de lo que un completo novato puede aspirar?
Perder el miedo a este artilugio es mas importante que resolver el mismo proyecto. ..
Desde ya muchas gracias y saludos cordiales
PD : sepan disculpar mi total falta de conocimientos

Si se puede y es muy facil.
Necesitas un divisor de tension para que los valores de entrada no superen 5V.

si 22.5V es tu maximo entoces

ve a este sitio y usa estas opciones


Vcc = 22.5
-Vcc =0
R1 = 10000 ohms
R2 = 35000 0hms

El codigo es facil

Si , esta bien solo enuncie los valores reales para no confundir. …
estoy aprendiendo y no me resulta tan simple el código. …de a poco. …
muchas gracias!

Bueno entonces usando el divisor resistivo con R1 = 10k y R2 = 35K (un valor raro o no estandard)

Para 35k vas a conseguir 33k y luego dos resistencias de 1k en serie.

Eso conectado al A0 del arduino, entrada analógica.
Ahora es un programa tal que leas el valor de la entrada analógica pero luego te olvidas que el máximo del Arduino es 5V y lo escalas a 22.5V

Entonces tu AD leerá de 0 a 1023 pasos o sea de 0V a 22.5V

float tension = 22.5 * analogRead(A0)/1023.0;

con eso ya tienes en tensión el valor medido.

tienes que comandar 4 salidas ABCD, defino los pines de ese modo, supongamos que eliges pines 2,3,4,5

#define A 2
#define B 3
#define C 4
#define D 5

asi que deberás configurarlos en el setup como salidas OUTPUT.

void setup() {
    pinMode(A, OUTPUT);
    pinMode(B, OUTPUT);
    pinMode(C, OUTPUT);
    pinMode(D, OUTPUT);
    digitalWrite(A, LOW);  // los pongo a LOW o 0
    digitalWrite(B, LOW);
    digitalWrite(C, LOW);
    digitalWrite(D, LOW);
}

Ahora como será el loop o tu parte repetitiva.
Debe leer el AD y luego comparar valores

void loop() {
    float tension = 22.5 * analogRead(A0)/1023.0;
    if ( tension <= 4.5) {
       digitalWrite(A,HIGH);
       digitalWrite(B, LOW);
       digitalWrite(C, LOW);
       digitalWrite(D, LOW);
    }
    else {
       if (tension <= 9.0) {
          digitalWrite(A,,LOW);
          digitalWrite(B, HIGH);
          digitalWrite(C, LOW);
          digitalWrite(D, LOW);
       }
       else {
            // resto sigue tu
       }
   }
}

impecable!
muchas gracias! !!!!
PD lo hacía con operacionales y la demanda de montaje es tremenda....nuevamente gracias!

:confused: funcionando a la primera! !!!!!
sin palabras! !!!!
nada mas que gracias! !!!