Hello,
I'm making a prototype of dTPMS(direct tire pressure monitoring system), which will be capable of receiving the data from four pressure sensors and send the data to a private CAN bus. Following devices are available:
- Four pressure sensors, which can be strewed on car's wheel
- Receiver, which has been correctly mapped with these four sensors, and has 3.3V TTL interface
- Arduino Uno(Sorry I'm not using the official board)
- CAN shield
For test purpose, I have connected the TX of the receiver directly with RX(port 0) of Uno as the first step, in order to see if the communication works, but it turned out that I cannot see any data on the serial monitor based on the following code:
#include <SoftwareSerial.h>
SoftwareSerial gtSerial(0, 1); // Arduino RX, Arduino TX
const int analogInPin = A0;
int sensorValue = 0;
float outputValue = 0;
void setup() {
Serial.begin(9600); // serial / USB port
gtSerial.begin(9600); // software serial port
}
byte tpms_tx_byte = 0; // stores received byte
byte byte_from_tpms = 0; // stores showing byte
void loop() {
// check if byte available on the software serial port
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 0, 5);
Serial.print("sensor = " );
Serial.print(outputValue);
Serial.println("V" );
if (gtSerial.available()) {
// get the byte from tpms
tpms_tx_byte = gtSerial.read();
Serial.write("Got serial signal value");
Serial.write(tpms_tx_byte);
// check if byte available from USB port
if (Serial.available()) {
byte_from_tpms = Serial.read();
// print tpms data
Serial.println(byte_from_tpms);
}
delay(500);
}
}
My questions are:
- Whether or not the Uno board is capable of received 3.3V TTL data from my receiver. I have checked some documentation regarding the logic level, it should work.
- If it is supposed to work, how can I tell if the receiver is sending the data?
Thanks in advance.