0
καλησπερα στην παρεα επεσε στα χερια μου αυτο
https://learn.sparkfun.com/tutorials...d-hookup-guide
ειπα πριν γραψω να το προσπαθησω μονος μου αλλα δυστηχως πολλες αγνοστες λεξεις στο κωδικα.
καταρχας κατεβασα τα libraries του να δοκιμασω τα παραδειγματα που εχει, εκανα τις αλαγες στα ''pins'' στα MOSI MISO SCK... και λοιπα στο ''defaults.h'' δοκιμασα και τα 2 παραδειγματα το ενα δεν εκανε τπτ το αλλο διαβασε τις στροφες αλλα με μεγαλη καθυστερηση και στο τελος κολλησε. επιδει υπαρχουν ωπος ειπα και στην αρχη πολλες αγνωστες λεξεις στο κωδικα υπαρχει καποιος που εχει κανει κατι παρομοιο να διαβασει ενδειξη μεσω obd να μου εξηγησει καποια πραγματα?? καπου διαβασα οτι πρεπει να βαλεις τα PID's για να μπωρει να διαβαζει. κοιταξα μεσα στο φακελο που κατεβασα και ειδα οτι υπαρχουν καποια PID
μετα δοκιμασα να ανεβασω δικο μου κωδικα χωρις αποτελεσμα οριστε και ο κωδικαςΚώδικας:/** * CAN BUS * * Copyright (c) 2010 Sukkin Pang All rights reserved. */ #ifndef canbus__h #define canbus__h #define CANSPEED_125 7 // CAN speed at 125 kbps #define CANSPEED_250 3 // CAN speed at 250 kbps #define CANSPEED_500 1 // CAN speed at 500 kbps #define ENGINE_COOLANT_TEMP 0x05 #define ENGINE_RPM 0x0C #define VEHICLE_SPEED 0x0D #define MAF_SENSOR 0x10 #define O2_VOLTAGE 0x14 #define THROTTLE 0x11 #define PID_REQUEST 0x7DF #define PID_REPLY 0x7E8 class CanbusClass { public: CanbusClass(); char init(unsigned char); char message_tx(void); char message_rx(unsigned char *buffer); char ecu_req(unsigned char pid, char *buffer); private: }; extern CanbusClass Canbus; //extern tCAN message; #endif
Κώδικας:#include <TFT.h> #include <SPI.h> #include <Canbus.h> int data; char buffer[456]; #define cs 3 #define dc 5 #define rst 6 TFT TFTscreen = TFT(cs, dc, rst); char sensorPrintout[4]; void setup() { TFTscreen.begin(); TFTscreen.background(0, 0, 0); TFTscreen.stroke(255, 255, 255); TFTscreen.setTextSize(2); TFTscreen.text("Can-Bus Demo", 0, 0); TFTscreen.setTextSize(2); if(Canbus.init(CANSPEED_500)) { TFTscreen.text("CAN Init ok", 0, 20); } else { TFTscreen.text("Fail init CAN", 0, 20); } delay(5000); TFTscreen.background(0, 0, 0); TFTscreen.text("Engine PRM: ", 0, 0); } void loop() { TFTscreen.stroke(255, 255, 255); TFTscreen.setTextSize(2); Canbus.ecu_req(ENGINE_RPM, buffer); TFTscreen.text(buffer, 0, 20); }