19
« dnia: 07 Kwietnia 2023, 20:15:39 »
To już niestety musisz sam poszukać. Nie wiem dokładnie jak się programuje wyświetlacze LCD, ale kod który wyprowadzi ci te wartości do zmiennych masz poniżej:
// Data structures
volatile uint8_t zPC[52] = {0}; // Init from PC data array
volatile uint8_t doPC[20] = {0xEF, 0xEF, 0xEF, 0xEF, 0}; // Init to PC data array
void setup()
{
// Serial communication
Serial.begin(115200); // Begin COM port communication with speed of 115200 B/s
Serial.setTimeout(100); // Timeout for serial port at 10 ms
while(!Serial){}; // Wait for serial connection
}
void loop()
{
int speed = ((int)zPC[4] << 8) | zPC[5]; // Predkosc
long odometer = zmienna_long = ((long)zPC[31] << 24) | ((long)zPC[32] << 16) | ((long)zPC[33] << 8) | zPC[34]; // Przebieg
bool haslerPower = bitRead(zPC[10], 4); // jazda z poborem pradu
bool haslerBraking = bitRead(zPC[10], 3); // jazda z hamowaniem
bool cab = bitRead(zPC[10], 2); // aktywna kabina
bool radiostop = bitRead(zPC[10], 5); // zadzialanie radiostopu
bool alerterSound = bitRead(zPC[10], 7); // zadzialanie buczka od CA/SHP
// Send/refresh data
while (!Serial.available()) {}; // Wait for serial port
Serial.readBytes((char*)zPC, 52); // Read data from PC
Serial.write((char*)doPC, 20); // Send data from controller to PC
}