/* IMPORTANTE
--> Cuando inicie la simulacion debe mover la perilla
del potenciometro con el mouse para ver cambios en el brillo
del led
Una vez que se inicie la simuilacion un led en la placa va a
estar parpadeando, lo que indica que se está a la espera de
que se mueva la perilla del pontenciometro con el mouse
para ir cambiando el nivel del brillo del led azul
Nota:
Actualmente simulacion del potenciometro no requiere conectar
los pines de alimentacion o tierra para que funcione.
Si la simulacion funcionara bien, este potenciometro no daria
ninguna lectura al no estar siendo alimentado con energia.
*/
/* Valor maximo que puede leerse en el potenciometro,
al girar el potenciometro nos dará valores que aumentan a
medida que giramos la perilla hacia la derecha */
const float maxPotencia = 1023;
/* Pin donde esta conectado el led azul, en este caso el pin
tiene al lado impreso en la placa una vergulilla (~),
lo que indica que puede usarse como salida analógica,
PWM (Pulse Width Modulation, en español: Modulación por
Ancho de Pultos) */
const int ledAzul = 5;
const int ledPlaca = 13;
// Cuando es 0 el led estara apagado y 255 dara su maximo brillo
int ledBrillo = 0;
void setup() {
// Pin asociado al led azul
pinMode(ledAzul, OUTPUT);
// Hay un led en la placa que se enciende si se pasa energia por
// este pin, por eso no se necesita un led adicional
pinMode(ledPlaca, OUTPUT);
Serial.begin(115200);
pinMode(A0, INPUT);
}
void loop() {
digitalWrite(ledPlaca, LOW); // Apagado
delay(100);
// Lee en la el pin A0, donde esta conectado el potenciometro.
// El valor leido ira de cero a 1023 (10 bits), no puede ser
// mayor porque es el maximo que permiten los puertos A
int value = analogRead(A0);
float porcentaje;
// Calculalos el porcentaje que da la lectura respecto al valor
// maximo del potenciometro.
porcentaje = (float(value) / maxPotencia ) * 100.0f;
// Envia al PC la lectura del potenciometro y el porcentaje
// calculado respecto al valor maximo posible del potenciometro
Serial.println((String)"Lectura del potenciometro:" +
value + " - " + porcentaje);
// Ahora calculamos el porcentaje respecto de 255 (valor maximo
// de una escritura en un pin PWM de arduino UNO) para ajustar
// el brillo correspondiente del led azul.
ledBrillo = int((porcentaje / 100.0f) * 255.0f);
// Escribimos el valor analogico (el calculo dara un valor 0 y 255)
// que hara que el led azul brille con mayor o menor intensidad
analogWrite(ledAzul, ledBrillo);
// Encendemos el led en la placa
digitalWrite(ledPlaca, HIGH);
delay(100);
}
Mueva con el ratón el potenciómetro para cambiar el brillo del led azul