Distanz-/Tiefenmesser mit JSN-SR40T
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

EchoLot.ino 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #include "Arduino.h"
  2. #include <LCDWIKI_GUI.h> // core graphics library
  3. #include <LCDWIKI_SPI.h> // hardware-specific library
  4. const int trigPin = 12;
  5. const int echoPin = 10;
  6. //#define MODEL SSD1283A
  7. //#define CS 10
  8. //#define CD 9
  9. //#define SDA 7
  10. //#define MOSI SDA
  11. //#define SCK 13
  12. //#define RST 8
  13. //#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
  14. //
  15. //LCDWIKI_SPI mylcd(MODEL, CS, CD, MISO, MOSI, RST, SCK, LED);
  16. #define BLACK 0x0000
  17. #define BLUE 0x001F
  18. #define RED 0xF800
  19. #define GREEN 0x07E0
  20. #define WHITE 0xFFFF
  21. #define MODEL SSD1283A
  22. #define LED -1 // to +5v
  23. #define SCK 13//A1 with SCK on 13 and SDA on 11 it is 10x faster!!!
  24. #define SDA 11//A2
  25. #define MISO -1
  26. #define MOSI SDA
  27. #define CD A3
  28. #define RST A4
  29. #define CS A5
  30. String lastDistance = "";
  31. LCDWIKI_SPI mylcd(MODEL, CS, CD, MISO, MOSI, RST, SCK, LED); //software spi,model,cs,cd,miso,mosi,reset,clk,led
  32. void setup()
  33. {
  34. Serial.begin(115200);
  35. pinMode(trigPin, OUTPUT);
  36. pinMode(echoPin, INPUT);
  37. mylcd.Init_LCD();
  38. mylcd.Fill_Screen(BLACK);
  39. }
  40. void loop()
  41. {
  42. // mylcd.Fill_Screen(BLACK);
  43. // mylcd.Fill_Screen(WHITE);
  44. // mylcd.Fill_Screen(255, 0, 0);
  45. // mylcd.Fill_Screen(0, 255, 0);
  46. // mylcd.Fill_Screen(0, 0, 255);
  47. // delay(3000);
  48. // mylcd.Fill_Screen(0, 0, 0);
  49. // delay(1000);
  50. // mylcd.Fill_Screen(255, 255, 255);
  51. // delay(1000);
  52. // mylcd.Fill_Screen(0xF800);
  53. // delay(1000);
  54. // mylcd.Fill_Screen(0x07E0);
  55. // delay(1000);
  56. // mylcd.Fill_Screen(0x001F);
  57. // delay(3000);
  58. mylcd.Set_Text_Mode(1);
  59. mylcd.Set_Text_colour(WHITE);
  60. mylcd.Set_Text_Back_colour(RED);
  61. mylcd.Set_Text_Size(2);
  62. digitalWrite(trigPin, LOW);
  63. delayMicroseconds(5);
  64. digitalWrite(trigPin, HIGH);
  65. delayMicroseconds(20);
  66. digitalWrite(trigPin, LOW);
  67. long duration = pulseIn(echoPin, HIGH);
  68. long distance = duration * 0.03432 / 2;
  69. // Serial.print("duration:");
  70. // Serial.println(duration);
  71. // Serial.print("Distance:");
  72. Serial.println(distance);
  73. char buf[50];
  74. sprintf(buf, "%lu cm", distance);
  75. if (!lastDistance.equals(buf)) {
  76. mylcd.Fill_Rect(0, 48, 130, 20, RED);
  77. mylcd.Print_String(buf, 30, 50);
  78. delay(100);
  79. lastDistance = buf;
  80. }
  81. delay(200);
  82. }
  83. //void setup() {
  84. // Serial.begin(115200);
  85. // pinMode(trigPin, OUTPUT);
  86. // pinMode(echoPin, INPUT);
  87. //}
  88. //void loop() {
  89. // mylcd.Set_Text_Mode(0);
  90. // mylcd.Fill_Screen(0x0000);
  91. // mylcd.Set_Text_colour(RED);
  92. // mylcd.Set_Text_Back_colour(BLACK);
  93. // mylcd.Set_Text_Size(2);
  94. // mylcd.Print_String("Hello World!", 0, 0);
  95. // digitalWrite(trigPin, LOW);
  96. // delayMicroseconds(5);
  97. //
  98. // digitalWrite(trigPin, HIGH);
  99. // delayMicroseconds(20);
  100. // digitalWrite(trigPin, LOW);
  101. //
  102. // long duration = pulseIn(echoPin, HIGH);
  103. // long distance = duration * 0.03432 / 2;
  104. //
  105. // Serial.print("duration:");
  106. // Serial.println(duration);
  107. //
  108. // Serial.print("Distance:");
  109. // Serial.println(distance);
  110. // delay(100);
  111. //}