FactoryTest.ino 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. Stick test
  3. hardware: M5Stack Stick
  4. please install the U8g2 library first ...
  5. */
  6. #include <Arduino.h>
  7. #include <U8x8lib.h>
  8. #include <SPI.h>
  9. #include <Wire.h>
  10. #define LedPin 19
  11. #define IrPin 17
  12. #define BuzzerPin 26
  13. #define BtnPin 35
  14. U8X8_SH1107_64X128_4W_HW_SPI u8x8(14, /* dc=*/ 27, /* reset=*/ 33);
  15. bool mpu9250_exis = false;
  16. void mpu9250_test() {
  17. uint8_t data = 0;
  18. Wire.beginTransmission(0x68);
  19. Wire.write(0x75);
  20. Wire.endTransmission(true);
  21. Wire.requestFrom(0x68, 1);
  22. data = Wire.read();
  23. Serial.print("mpu9250 addr: ");
  24. Serial.println(data, HEX);
  25. if(data == 0x71) {
  26. mpu9250_exis = true;
  27. }
  28. }
  29. void setup() {
  30. // put your setup code here, to run once:
  31. Wire.begin(21, 22, 100000);
  32. u8x8.begin();
  33. Serial.begin(115200);
  34. pinMode(LedPin, OUTPUT);
  35. pinMode(IrPin, OUTPUT);
  36. pinMode(BuzzerPin, OUTPUT);
  37. pinMode(BtnPin, INPUT_PULLUP);
  38. ledcSetup(1, 38000, 10);
  39. ledcAttachPin(IrPin, 1);
  40. digitalWrite(BuzzerPin, LOW);
  41. u8x8.fillDisplay();
  42. u8x8.setFont(u8x8_font_chroma48medium8_r);
  43. delay(1500);
  44. u8x8.clearDisplay();
  45. mpu9250_test();
  46. }
  47. void loop()
  48. {
  49. digitalWrite(LedPin, 1 - digitalRead(LedPin));
  50. ledcWrite(1, ledcRead(1) ? 0 : 512);
  51. delay(200);
  52. if(digitalRead(BtnPin) == 0){
  53. u8x8.drawString(2,0,"Hello");
  54. u8x8.drawString(2,1,"World!");
  55. if(mpu9250_exis) {
  56. u8x8.drawString(2, 3, "Exis");
  57. } else{
  58. u8x8.drawString(3, 3, "No");
  59. }
  60. for(int i=0;i<100;i++){
  61. digitalWrite(BuzzerPin,HIGH);
  62. delay(1);
  63. digitalWrite(BuzzerPin,LOW);
  64. delay(1);
  65. }
  66. } else {
  67. u8x8.clearDisplay();
  68. }
  69. // delay(200);
  70. }