Will This Code work? Basically i am trying build a sequential led tachometer.
So the rx and tx pins of an hc05 module will be connected to the 2 and 3 pins of arduino. Rest is the leds.
The hc05 module will be set as master and be paired with an ELM327 mini OBD2 thing.
i hope anyone would give any ideas..
EDIT:
A VIDEO ON IT
#include <ELMduino.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
#define ELM_PORT mySerial
ELM327 myELM327;
uint32_t rpm = 0;
int ledG1 = 4;
int ledG2 = 5;
int ledG3 = 6;
int ledG4 = 7;
int ledY1 = 8;
int ledY2 = 9;
int ledY3 = 10;
int ledR1 = 11;
int ledR2 = 12;
void setup()
{
pinMode(ledG1, OUTPUT);
pinMode(ledG2, OUTPUT);
pinMode(ledG3, OUTPUT);
pinMode(ledG4, OUTPUT);
pinMode(ledY1, OUTPUT);
pinMode(ledY2, OUTPUT);
pinMode(ledY3, OUTPUT);
pinMode(ledR1, OUTPUT);
pinMode(ledR2, OUTPUT);
Serial.begin(115200);
ELM_PORT.begin(115200);
Serial.println("Attempting to connect to ELM327...");
if (!myELM327.begin(ELM_PORT))
{
Serial.println("Couldn't connect to OBD scanner");
while (1);
}
Serial.println("Connected to ELM327");
}
void loop()
{
float tempRPM = myELM327.rpm();
if (myELM327.status == ELM_SUCCESS)
{
rpm = (uint32_t)tempRPM;
if(rpm>900&&rpm<4000);
{
if(rpm>900)
{ digitalWrite(ledG1, HIGH); }
if(rpm>1300)
{ digitalWrite(ledG2, HIGH); }
if(rpm>1700)
{ digitalWrite(ledG3, HIGH); }
if(rpm>2100)
{ digitalWrite(ledG4, HIGH); }
if(rpm>2500)
{ digitalWrite(ledY1, HIGH); }
if(rpm>2900)
{ digitalWrite(ledY2, HIGH); }
if(rpm>3300)
{ digitalWrite(ledY3, HIGH); }
if(rpm>3700)
{ digitalWrite(ledR1, HIGH); }
}
}
else
{
digitalWrite(ledG1, HIGH);
digitalWrite(ledG2, HIGH);
digitalWrite(ledG3, HIGH);
digitalWrite(ledG4, HIGH);
digitalWrite(ledY1, HIGH);
digitalWrite(ledY2, HIGH);
digitalWrite(ledY3, HIGH);
digitalWrite(ledR1, HIGH);
digitalWrite(ledR2, HIGH);
delay(30);
digitalWrite(ledG1, LOW);
digitalWrite(ledG2, LOW);
digitalWrite(ledG3, LOW);
digitalWrite(ledG4, LOW);
digitalWrite(ledY1, LOW);
digitalWrite(ledY2, LOW);
digitalWrite(ledY3, LOW);
digitalWrite(ledR1, LOW);
digitalWrite(ledR2, LOW);
delay(30);
}
}
[code]
sketch_jun20a.ino (2.11 KB)