#include <SPI.h>
const int chipSelect = 10; // SPI CS (Chip Select) pin beállítása
int32_t counterValue=0;
void setup() {
Serial.begin(115200); // Szériális kommunikációs sebesség beállítása
SPI.begin(); // Az SPI kommunikáció indítása
pinMode(chipSelect, OUTPUT);
digitalWrite(chipSelect, HIGH); // CS pin magasra állítása, amíg nincs művelet
counterValue = readEncoder(); // Hívja meg a számláló értékének olvasását
}
void loop() {
if(readEncoder()!=counterValue)
{
counterValue=readEncoder();
Serial.print("Counter Value: ");
Serial.println(counterValue);
}
}
uint32_t readEncoder() {
uint32_t value = 0;
digitalWrite(chipSelect, LOW); // CS pin alacsonyra állítása a kommunikáció megkezdéséhez
for(int i = 0; i < 4; i++) { // 4 byte kiolvasása a számlálóból, MSB (legjelentősebb bit) először
value = (value << 8) | SPI.transfer(0x00);
}
digitalWrite(chipSelect, HIGH); // CS pin magasra állítása a kommunikáció befejezéséhez
return value;
}