#include <Wire.h> // libreria para bus I2C
#include <Adafruit_GFX.h> // libreria para pantallas graficas
#include <Adafruit_SSD1306.h> // libreria para controlador SSD1306
#define ANCHO 128 // reemplaza ocurrencia de ANCHO por 128
#define ALTO 32 // reemplaza ocurrencia de ALTO por 64
#define OLED_RESET 4 // necesario por la libreria pero no usado
Adafruit_SSD1306 oled(ANCHO, ALTO, &Wire, OLED_RESET); // crea objeto
const int analogInA1 = A1; // Analog input pin that the potentiometer is attached to
const int analogInA2 = A2; // Analog input pin that the potentiometer is attached to
const int analogInA3 = A3; // Analog input pin that the potentiometer is attached to
const int analogOut9 = 9; // Analog output pin that the LED is attached to
const int analogOut10 = 10; // Analog output pin that the LED is attached to
const int analogOut11 = 11; // Analog output pin that the LED is attached to
int sensorValueA = 0; // value read from the pot
int sensorValueB = 0; // value read from the pot
int sensorValueC = 0; // value read from the pot
int outputValueA = 0; // value output to the PWM (analog out)
int outputValueB = 0; // value output to the PWM (analog out)
int outputValueC = 0; // value output to the PWM (analog out)
float outputValue1 = 0; // value output to the PWM (analog out)
float outputValue2 = 0; // value output to the PWM (analog out)
float outputValue3 = 0; // value output to the PWM (analog out)
int pushButton = 3;
int LEDon = 4;
void setup() {
Serial.begin(9600);
pinMode(pushButton, INPUT);
pinMode(LEDon, OUTPUT);
Wire.begin(); // inicializa bus I2C
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C); // inicializa pantalla con direccion 0x3C
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
/////////////////////////////////OLED//////////////////////////////
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(3); // establece tamano de texto en 1-21 2-10 3-7 4-5 caracteres (3)
oled.print("ZurcoIS"); // escribe en pantalla el texto
oled.setCursor(0, 24); // ubica cursor en coordenas 10,30 (24)
oled.setTextSize(0); // establece tamano de texto en 2 (0)
oled.print("Telf.: (**) ***-****"); // escribe texto
oled.display(); // muestra en pantalla todo lo establecido anteriormente
/////////////////////////////////OLED//////////////////////////////
delay(1000);
}
void loop() {
int buttonState = digitalRead(pushButton);
delay(20);
sensorValueA = analogRead(analogInA3); // map it to the range of the analog out:
outputValueA = map(sensorValueA, 0, 1023, 51, 255); // change the analog out value:
outputValue1 = map(sensorValueA, 0, 1023, 0, 1000); // change the analog out value:
outputValue1 = outputValue1 / 10;
delay(20);
sensorValueB = analogRead(analogInA2); // map it to the range of the analog out:
outputValueB = map(sensorValueB, 0, 1023, 51, 255); // change the analog out value:
outputValue2 = map(sensorValueB, 0, 1023, 0, 1000); // change the analog out value:
outputValue2 = outputValue2 / 10;
delay(20);
sensorValueC = analogRead(analogInA1); // map it to the range of the analog out:
outputValueC = map(sensorValueC, 0, 1023, 51, 255); // change the analog out value:
outputValue3 = map(sensorValueC, 0, 1023, 0, 1000); // change the analog out value:
outputValue3 = outputValue3 / 10;
delay(20);
if (buttonState == LOW) {
analogWrite(analogOut9, outputValueA);
analogWrite(analogOut10, outputValueB);
analogWrite(analogOut11, outputValueC);
digitalWrite(LEDon, HIGH);
/////////////////////////////////OLED//////////////////////////////
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1-21 2-10 3-7 4-5 caracteres
oled.print(outputValue1); // escribe en pantalla el texto
oled.print(" %");
oled.setCursor(64, 0);
oled.print(outputValue2); // escribe en pantalla el texto
oled.print(" %");
oled.setCursor(0, 16);
oled.print(outputValue3); // escribe en pantalla el texto
oled.print(" %");
oled.setCursor(64, 16);
oled.print("AA ON"); // escribe en pantalla el texto
oled.display(); // muestra en pantalla todo lo establecido anteriormente
/////////////////////////////////OLED//////////////////////////////
} else {
analogWrite(analogOut9, 50);
analogWrite(analogOut10, 50);
analogWrite(analogOut11, 50);
digitalWrite(LEDon, LOW);
/////////////////////////////////OLED//////////////////////////////
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1-21 2-10 3-7 4-5 caracteres
oled.print(outputValue1); // escribe en pantalla el texto
oled.print(" %");
oled.setCursor(64, 0);
oled.print(outputValue2); // escribe en pantalla el texto
oled.print(" %");
oled.setCursor(0, 16);
oled.print(outputValue3); // escribe en pantalla el texto
oled.print(" %");
oled.setCursor(64, 16);
oled.print("AA OFF"); // escribe en pantalla el texto
oled.display(); // muestra en pantalla todo lo establecido anteriormente
/////////////////////////////////OLED//////////////////////////////
}
delay(20);
}