22
« dnia: 26 Września 2022, 16:35:30 »
MaSzyna z arduino (i w drugą stronę) komunikuje się za pomocą UARTA (serialport). Tam masz przesyłane wszystkie bajty w obie strony :)
Tutaj fragment kodu @lcddisplay
volatile uint8_t zPC[52] = {0}; // standardowe bajty przekazywane do kodu Arduino
volatile uint8_t doPC[20] = {0xEF, 0xEF, 0xEF, 0xEF, 0}; // standardowe bajty przyjmowane z kodu Arduino
void setup() {
pinMode(2, OUTPUT); //ustawienie pinu 2 jako wyjście cyfrowe
pinMode(3, OUTPUT); //ustawienie pinu 3 jako wyjście cyfrowe
pinMode(9, OUTPUT); //ustawienie pinu 9 jako wyjście cyfrowe
digitalWrite(2, LOW); //ustawienie stanu niskiego na pinie 2
digitalWrite(3, LOW); //ustawienie stanu niskiego na pinie 3
digitalWrite(9, LOW); //ustawienie stanu niskiego na pinie 9
Serial.begin(115200); //nawiązanie komunikacji z prędkością 115200b/s
Serial.setTimeout(10);
while(!Serial){}; //czekanie do nawiązania komunikacji z komputerem
}
void loop() {
digitalWrite(2, (bitRead(zPC[8], 6))); //czuwak
digitalWrite(3, (bitRead(zPC[8], 7))); //shp
analogWrite(9, zPC[17]); //amperomierz 1
while (!Serial.available()) {};
Serial.readBytes((char*)zPC, 52);
Serial.write((char*)doPC, 20);
}