|
|
|
@@ -0,0 +1,134 @@ |
|
|
|
#include "Arduino.h"
|
|
|
|
#include <LCDWIKI_GUI.h> // core graphics library
|
|
|
|
#include <LCDWIKI_SPI.h> // hardware-specific library
|
|
|
|
|
|
|
|
const int trigPin = 12;
|
|
|
|
const int echoPin = 10;
|
|
|
|
|
|
|
|
//#define MODEL SSD1283A
|
|
|
|
//#define CS 10
|
|
|
|
//#define CD 9
|
|
|
|
//#define SDA 7
|
|
|
|
//#define MOSI SDA
|
|
|
|
//#define SCK 13
|
|
|
|
//#define RST 8
|
|
|
|
//#define LED -1 //if you don’t need to control the LED pin,you should set it to -1 and set it to 3.3V
|
|
|
|
//
|
|
|
|
//LCDWIKI_SPI mylcd(MODEL, CS, CD, MISO, MOSI, RST, SCK, LED);
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
|
|
|
String lastDistance = "";
|
|
|
|
|
|
|
|
LCDWIKI_SPI mylcd(MODEL, CS, CD, MISO, MOSI, RST, SCK, LED); //software spi,model,cs,cd,miso,mosi,reset,clk,led
|
|
|
|
|
|
|
|
void setup()
|
|
|
|
{
|
|
|
|
Serial.begin(115200);
|
|
|
|
pinMode(trigPin, OUTPUT);
|
|
|
|
pinMode(echoPin, INPUT);
|
|
|
|
|
|
|
|
mylcd.Init_LCD();
|
|
|
|
mylcd.Fill_Screen(BLACK);
|
|
|
|
}
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
mylcd.Set_Text_Mode(1);
|
|
|
|
mylcd.Set_Text_colour(WHITE);
|
|
|
|
mylcd.Set_Text_Back_colour(RED);
|
|
|
|
mylcd.Set_Text_Size(2);
|
|
|
|
|
|
|
|
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.Fill_Rect(0, 48, 130, 20, RED);
|
|
|
|
mylcd.Print_String(buf, 30, 50);
|
|
|
|
delay(100);
|
|
|
|
lastDistance = buf;
|
|
|
|
}
|
|
|
|
|
|
|
|
delay(200);
|
|
|
|
}
|
|
|
|
|
|
|
|
//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);
|
|
|
|
//}
|