Ostatnio aktywny 1 month ago

touch_test3.ino Surowy
1#include <SPI.h>
2
3#define SCK D5
4#define MISO D6
5#define CS D8
6#define MOSI D7
7
8
9void setup() {
10 Serial.begin(115200);
11 Serial.println("OK");
12
13 pinMode(SCK, OUTPUT);
14 pinMode(CS, OUTPUT);
15 pinMode(MOSI, OUTPUT);
16 pinMode(MISO, INPUT);
17
18 digitalWrite(CS, HIGH);
19
20 SPI.pins(SCK, MISO, MOSI, CS);
21 SPI.begin();
22}
23
24void loop() {
25 digitalWrite(CS, LOW);
26 uint8_t data = SPI.transfer(0xFF); // Always transfer full 1 bits
27 digitalWrite(CS, HIGH);
28
29 uint8_t flag = data & 0x80; // Get the 7th bit
30 data &= 0x7F; // Reset it, so we have only the pure value in data
31
32 if (data != 0x7F) {
33 // We have some data, not all 1's
34 if (flag) { // Buttons
35 Serial.print("BUTTONS: ");
36 switch (data) {
37 case 0:
38 Serial.println("RIGHT");
39 break
40 case 1:
41 Serial.println("POWER");
42 break
43 case 2:
44 Serial.println("LEFT");
45 break
46 }
47 } else { // Slider
48 Serial.print("SLIDER: ");
49 // MAX is 54 and MIN is 1 so:
50 uint16_t v = (uint16_t)data;
51 v -= 1; // MIN
52 v *= 100; // Percent
53 v /= (54 - 1); // MAX - MIN
54 Serial.print(v);
55 Serial.println("%");
56 }
57 }
58 delay(100);
59}