| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- #include "Arduino.h"
- #include <LCDWIKI_GUI.h> // core graphics library
- //#include <LCDWIKI_SPI.h> // hardware-specific library
- #include <SSD1283A.h>
- #include "RotaryControler.h"
- //#include <U8g2_for_Adafruit_GFX.h>
- #include <Fonts/FreeMonoOblique9pt7b.h>
-
- const int trigPin = 12;
- const int echoPin = 10;
-
- #define BLACK 0x0000
- #define BLUE 0x001F
- #define RED 0xF800
- #define GREEN 0x07E0
- #define WHITE 0xFFFF
-
- //#define MODEL SSD1283A
- #define LED -1 // to +5v
- #define SCK 13//A1 with SCK on 13 and SDA on 11 it is 10x faster!!!
- #define SDA 11//A2
- #define MISO -1
- #define MOSI SDA
- #define CD A3
- #define RST A4
- #define CS A5
-
- static const int RotEnc_Switch_Pin = 2;
- static const int RotEnc_Clk_Pin = 3;
- static const int RotEnc_Dta_Pin = 4;
-
- static const int Measure_Pin = 8;
-
- String lastDistance = "";
-
- SSD1283A mylcd( CS, CD, RST, LED); //software spi,model,cs,cd,miso,mosi,reset,clk,led
- //U8G2_FOR_ADAFRUIT_GFX u8g2_gfx;
- RotaryControler RotaryControler(RotEnc_Dta_Pin, RotEnc_Clk_Pin, RotEnc_Switch_Pin);
- ExEzButton MeasureBtn(Measure_Pin, false, 2000);
-
- void setup()
- {
- Serial.begin(115200);
- pinMode(trigPin, OUTPUT);
- pinMode(echoPin, INPUT);
-
- // u8g2_gfx.begin(mylcd);
- mylcd.init();
- mylcd.fillScreen(BLACK);
- mylcd.setFont(&FreeMonoOblique9pt7b);
-
- pinMode(Measure_Pin, INPUT);
- pinMode(RotEnc_Switch_Pin, INPUT);
-
- MeasureBtn.setDebounceTime(50);
- RotaryControler.setDebounceTime(50);
- }
-
- void loop()
- {
- // mylcd.Fill_Screen(BLACK);
- // mylcd.Fill_Screen(WHITE);
- // mylcd.Fill_Screen(255, 0, 0);
- // mylcd.Fill_Screen(0, 255, 0);
- // mylcd.Fill_Screen(0, 0, 255);
- // delay(3000);
- // mylcd.Fill_Screen(0, 0, 0);
- // delay(1000);
- // mylcd.Fill_Screen(255, 255, 255);
- // delay(1000);
- // mylcd.Fill_Screen(0xF800);
- // delay(1000);
- // mylcd.Fill_Screen(0x07E0);
- // delay(1000);
- // mylcd.Fill_Screen(0x001F);
- // delay(3000);
-
- MeasureBtn.loop();
- RotaryControler.loop();
-
- // mylcd.Set_Text_Mode(1);
- mylcd.setTextColor(WHITE);
- // mylcd.Set_Text_Back_colour(RED);
- mylcd.setTextSize(1);
-
- if (RotaryControler.isSwitchPressed()) {
- Serial.println("RotaryEnc SwitchPressed");
- }
-
- if (MeasureBtn.isPressing()) {
-
- digitalWrite(trigPin, LOW);
- delayMicroseconds(5);
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(20);
- digitalWrite(trigPin, LOW);
-
- long duration = pulseIn(echoPin, HIGH);
- long distance = duration * 0.03432 / 2;
-
- // Serial.print("duration:");
- // Serial.println(duration);
-
- // Serial.print("Distance:");
- Serial.println(distance);
-
- char buf[50];
- sprintf(buf, "%lu cm", distance);
-
- // if (!lastDistance.equals(buf)) {
- mylcd.fillRect(0, 48, 130, 20, RED);
-
- // char *s = &String(buf)[0];
- // int16_t w = 0, h = 0;
- // u8g2_gfx.setFont(u8g2_font_helvB12_tf);
- // w = u8g2_gfx.getUTF8Width(s);
- // h = u8g2_gfx.getFontAscent() - u8g2_gfx.getFontDescent();
- // u8g2_gfx.setForegroundColor(WHITE);
- // u8g2_gfx.setCursor(30, 50);
- // mylcd.println(s);
- mylcd.setTextColor(WHITE);
- mylcd.setCursor(30, 50);
- mylcd.println(buf);
-
- delay(100);
- // lastDistance = buf;
- // }
-
- delay(200);
- } else {
- mylcd.fillScreen(BLACK);
- }
-
- }
-
- //void setup() {
- // Serial.begin(115200);
- // pinMode(trigPin, OUTPUT);
- // pinMode(echoPin, INPUT);
-
- //}
-
- //void loop() {
-
- // mylcd.Set_Text_Mode(0);
- // mylcd.Fill_Screen(0x0000);
- // mylcd.Set_Text_colour(RED);
- // mylcd.Set_Text_Back_colour(BLACK);
- // mylcd.Set_Text_Size(2);
- // mylcd.Print_String("Hello World!", 0, 0);
-
- // digitalWrite(trigPin, LOW);
- // delayMicroseconds(5);
- //
- // digitalWrite(trigPin, HIGH);
- // delayMicroseconds(20);
- // digitalWrite(trigPin, LOW);
- //
- // long duration = pulseIn(echoPin, HIGH);
- // long distance = duration * 0.03432 / 2;
- //
- // Serial.print("duration:");
- // Serial.println(duration);;
- //
- // Serial.print("Distance:");
- // Serial.println(distance);
- // delay(100);
- //}
|