ULTRA_SONIC.ino 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. Description: Display the distance measured by ultrasonic
  3. */
  4. #include <M5Stack.h>
  5. TFT_eSprite Terminalbuff = TFT_eSprite(&M5.Lcd);
  6. void setup() {
  7. // put your setup code here, to run once:
  8. M5.begin();
  9. Wire.begin(21,22);
  10. Terminalbuff.createSprite(160, 80);
  11. Terminalbuff.fillRect(80,20,160,80,BLACK);
  12. Terminalbuff.pushSprite(80,20);
  13. Terminalbuff.setTextFont(4);
  14. M5.Lcd.setCursor(105, 0, 4);
  15. M5.Lcd.print("Ultrasonic");
  16. }
  17. float readEUS()
  18. {
  19. uint32_t data;
  20. Wire.beginTransmission(0x57);
  21. Wire.write(0x01);
  22. Wire.endTransmission();
  23. delay(120);
  24. Wire.requestFrom(0x57,3);
  25. data = Wire.read();data <<= 8;
  26. data |= Wire.read();data <<= 8;
  27. data |= Wire.read();
  28. return float(data) / 1000;
  29. }
  30. void loop() {
  31. float newvalue = 0;
  32. while(1)
  33. {
  34. newvalue = readEUS();
  35. Terminalbuff.fillRect(80,20,160,80,BLACK);
  36. Terminalbuff.setCursor(30,50);
  37. if(( newvalue < 1500 )&&( newvalue > 20 ))
  38. {
  39. Terminalbuff.printf("%.2fmm",newvalue);
  40. Terminalbuff.pushSprite(80,20);
  41. }
  42. delay(100);
  43. }
  44. }