|
|
@@ -0,0 +1,164 @@
|
|
|
+#include "___main/__main_struct_status.h"
|
|
|
+
|
|
|
+
|
|
|
+#include <Arduino.h>
|
|
|
+#include <U8g2lib.h>
|
|
|
+#include <SPI.h>
|
|
|
+#include <Wire.h>
|
|
|
+
|
|
|
+//SSD1306
|
|
|
+#include <Adafruit_SSD1306.h>
|
|
|
+#include <Adafruit_GFX.h>
|
|
|
+// OLED display TWI address
|
|
|
+//#define OLED_ADDR 0x3C
|
|
|
+#define OLED_ADDR 0x3D
|
|
|
+// reset pin not used on 4-pin OLED module
|
|
|
+
|
|
|
+//#define HAS_Adafruit_SSD1306
|
|
|
+
|
|
|
+#if defined(HAS_Adafruit_SSD1306)
|
|
|
+Adafruit_SSD1306 display(-1); // -1 = no reset pin
|
|
|
+#endif
|
|
|
+
|
|
|
+#define HAS_u8g2
|
|
|
+
|
|
|
+#if defined(HAS_u8g2)
|
|
|
+U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0);
|
|
|
+#endif
|
|
|
+
|
|
|
+int test_pwm_pin = 9;
|
|
|
+
|
|
|
+int out_test_status_p5_bus_1_port_6_red_led_pin = 5 ;
|
|
|
+int in_test_status_p5_bus_1_port_7_red_buttopn_pin = 6 ;
|
|
|
+int out_test_status_p5_bus_1_port_8_green_led_pin = 7 ;
|
|
|
+int in_test_status_p5_bus_1_port_9_black_buttopn_pin = 8 ;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#include "___main/__main_task_struct.h"
|
|
|
+
|
|
|
+
|
|
|
+//#include "scan_ports_setup.c"
|
|
|
+
|
|
|
+//static int outPins[] = {9};
|
|
|
+//static int inPins[] = {5};
|
|
|
+
|
|
|
+#include "___main/__main_task_func.h"
|
|
|
+#include "i2c_scanner_func.h"
|
|
|
+
|
|
|
+
|
|
|
+ void setup(void) {
|
|
|
+ #if defined(HAS_Adafruit_SSD1306)
|
|
|
+ //SSD1306
|
|
|
+ display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
|
|
|
+ display.clearDisplay();
|
|
|
+ display.display();
|
|
|
+ #endif
|
|
|
+
|
|
|
+ #if defined(HAS_u8g2)
|
|
|
+ u8g2.begin();
|
|
|
+ #endif
|
|
|
+
|
|
|
+
|
|
|
+ // pinMode(test_pwm_pin, OUTPUT);
|
|
|
+ pinMode(out_test_status_p5_bus_1_port_6_red_led_pin, OUTPUT);
|
|
|
+ pinMode(in_test_status_p5_bus_1_port_7_red_buttopn_pin, INPUT_PULLUP);
|
|
|
+ pinMode(out_test_status_p5_bus_1_port_8_green_led_pin, OUTPUT);
|
|
|
+ pinMode(in_test_status_p5_bus_1_port_9_black_buttopn_pin, INPUT_PULLUP);
|
|
|
+ //analogWrite(test_pwm_pin, 20);
|
|
|
+
|
|
|
+ #if defined(HAS_u8g2)
|
|
|
+ u8g2.clearBuffer(); // clear the internal memory
|
|
|
+ u8g2.setFont(u8g2_font_helvR10_tf); // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
|
|
|
+ //u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f); // choose a suitable font
|
|
|
+
|
|
|
+ u8g2.drawStr(4,29,"P5 status"); // write something to the internal memory
|
|
|
+ u8g2.sendBuffer(); // transfer internal memory to the display
|
|
|
+ #endif
|
|
|
+
|
|
|
+ #include "i2c_scanner_setup.h"
|
|
|
+ i2c_scanner();
|
|
|
+}
|
|
|
+
|
|
|
+//#include "scan_ports.c"
|
|
|
+
|
|
|
+void status_pin(int pin) {
|
|
|
+ int state = digitalRead(pin );
|
|
|
+
|
|
|
+
|
|
|
+ //A u8g2.clearBuffer(); // clear the internal memory
|
|
|
+ //u8g2.setFont(u8g2_font_logisoso28_tr); // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
|
|
|
+ //u8g2.drawStr(4,29,String(pin) ); // write something to the internal memory
|
|
|
+
|
|
|
+
|
|
|
+ //A u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f); // choose a suitable font
|
|
|
+
|
|
|
+ //A u8g2.setCursor(3,10);
|
|
|
+ //A u8g2.print (" P. [ ");
|
|
|
+ //A u8g2.print(pin, DEC ); // write something to the internal memory
|
|
|
+ //A u8g2.print (" ] ");
|
|
|
+
|
|
|
+ //A u8g2.sendBuffer(); // transfer internal memory to the display
|
|
|
+
|
|
|
+ //A delay(100);
|
|
|
+
|
|
|
+ if(state == HIGH) {
|
|
|
+ // Good
|
|
|
+ #if defined(HAS_u8g2)
|
|
|
+ // u8g2.setCursor (3, 20);
|
|
|
+ u8g2.print (" + ");
|
|
|
+ u8g2.sendBuffer(); // transfer internal memory to the display
|
|
|
+ #endif
|
|
|
+ } else
|
|
|
+ // Bad
|
|
|
+ #if defined(HAS_u8g2)
|
|
|
+ // u8g2.setCursor (3, 20);
|
|
|
+ u8g2.print (" - ");
|
|
|
+ u8g2.sendBuffer(); // transfer internal memory to the display
|
|
|
+ #endif
|
|
|
+ delay(800);
|
|
|
+}
|
|
|
+
|
|
|
+void loop(void) {
|
|
|
+
|
|
|
+ /*
|
|
|
+
|
|
|
+ delay(2);
|
|
|
+ digitalWrite(test_pwm_pin, HIGH);
|
|
|
+ delay(2);
|
|
|
+ digitalWrite(test_pwm_pin, LOW);
|
|
|
+ */
|
|
|
+
|
|
|
+ //scan_ports();
|
|
|
+ delay(2000);
|
|
|
+
|
|
|
+ /*
|
|
|
+ int out_test_status_p5_bus_1_port_6_red_led_pin = 5 ;
|
|
|
+ int in_test_status_p5_bus_1_port_7_red_buttopn_pin = 6 ;
|
|
|
+ int out_test_status_p5_bus_1_port_8_green_led_pin = 7 ;
|
|
|
+ int in_test_status_p5_bus_1_port_9_black_buttopn_pin = 8 ;
|
|
|
+ */
|
|
|
+ #if defined(HAS_u8g2)
|
|
|
+ u8g2.clearBuffer();
|
|
|
+ u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f); // choose a suitable font
|
|
|
+ u8g2.setCursor(3,10);
|
|
|
+ #endif
|
|
|
+
|
|
|
+ #if defined(HAS_Adafruit_SSD1306)
|
|
|
+ display.print("test123");
|
|
|
+ //display.print("Hello, world!");
|
|
|
+ display.display();
|
|
|
+ #endif
|
|
|
+
|
|
|
+ status_pin(out_test_status_p5_bus_1_port_6_red_led_pin);
|
|
|
+
|
|
|
+ status_pin(in_test_status_p5_bus_1_port_7_red_buttopn_pin);
|
|
|
+
|
|
|
+ status_pin(out_test_status_p5_bus_1_port_8_green_led_pin);
|
|
|
+
|
|
|
+ status_pin(in_test_status_p5_bus_1_port_9_black_buttopn_pin);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|