#include "scan_i2c.h"
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define ENCODER_CLK 2
#define ENCODER_DT 3
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
// The pins for I2C are defined by the Wire-library.
// On an arduino UNO: A4(SDA), A5(SCL)
// On an arduino MEGA 2560: 20(SDA), 21(SCL)
// On an arduino LEONARDO: 2(SDA), 3(SCL), ...
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS_1 0x3A
#define SCREEN_ADDRESS_2 0x3B
Adafruit_SSD1306 display1(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Adafruit_SSD1306 display2(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int lastClk = HIGH;
int temp = 0;
int temp_inc = 0;
void show_display1(void) {
display1.clearDisplay();
display1.setTextColor(SSD1306_WHITE);
display1.setCursor(0, 0);
display1.setTextSize(1);
display1.println(F("Temp Reactor:"));
display1.setTextSize(4);
display1.setCursor(0, 20);
display1.println(temp);
display1.display();
}
void show_display2(void) {
display2.clearDisplay();
display2.setTextColor(SSD1306_WHITE);
display2.setCursor(0, 0);
display2.setTextSize(1);
display2.println(F("Inc:"));
display2.setTextSize(4);
display2.setCursor(0, 20);
display2.println(temp_inc);
display2.display();
}
void setup()
{
// scanI2C();
// delay(5000);
Serial.begin(9600);
// if(!display1.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS_1)) {
// Serial.println(F("display 1 allocation failed"));
// for(;;); // Don't proceed, loop forever
// }
if(!display2.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS_2)) {
Serial.println(F("display 2 allocation failed"));
for(;;); // Don't proceed, loop forever
}
}
void loop()
{
temp += temp_inc;
int newClk = digitalRead(ENCODER_CLK);
if (newClk != lastClk) {
lastClk = newClk;
int dtValue = digitalRead(ENCODER_DT);
if (newClk == LOW && dtValue == HIGH) {
temp_inc--;
}
if (newClk == LOW && dtValue == LOW) {
temp_inc++;
}
}
// show_display1();
show_display2();
delay(100);
}