I have three TFMini sensors I need all of them to detect. I only got one to work , pins 4,5 . My info in coding is basic . I really appreciate your help . Thanks in advance.
I think the problem is with Library I can't add TFMini_1.
Here is my code,
#include <SoftwareSerial.h>
#include "TFMini.h"
TFMini tfmini;
TFMini tfmini1;
//Declaring variables and constants
TFMini TFFront;
TFMini TFRight;
TFMini TFLeft;
SoftwareSerial SerialTFMini (4,5); //(RX, TX)
SoftwareSerial SerialTFMini_1 (6,7); //(RX, TX)
SoftwareSerial SerialTFMini_2(8,9); //(RX, TX)
void getTFminiData(int* distance, int* strength) {
static char i = 0;
char j = 0;
int checksum = 0;
static int rx[9];
if(SerialTFMini.available())
{
// Serial.println( "tfmini serial available" );
rx[i] = SerialTFMini.read();
if(rx[0] != 0x59) {
i = 0;
} else if(i == 1 && rx[1] != 0x59) {
i = 0;
} else if(i == 8) {
for(j = 0; j < 8; j++) {
checksum += rx[j];
}
if(rx[8] == (checksum % 256)) {
*distance = rx[2] + rx[3] * 256;
*strength = rx[4] + rx[5] * 256;
}
i = 0;
} else
{
i++;
}
}
}
//Threshold distance in "cm"; speak only when any object is nearer than this distance
void setup()
{
//Initializing Baud Rates
Serial.begin (115200);
while(!Serial); //Wait for USB Serial Port to connect
Serial.println("Initializing...");
SerialTFMini.begin (TFMINI_BAUDRATE);
//Initializing TFMini Sensors
tfmini.begin(&SerialTFMini);
}
void loop()
{
int distance = 0;
int strength = 0;
getTFminiData(&distance, &strength);
while(!distance) {
getTFminiData(&distance, &strength);
if(distance) {
Serial.print(distance);
Serial.print("cm\t");
Serial.print("strength: ");
Serial.println(strength);
}
}
delay(100);
}