Pages: 1 [2]   Go Down
 Author Topic: Speed Sensor (Velocity Km/H) Using Ultrasonic Sensor (Ping)  (Read 966 times) 0 Members and 1 Guest are viewing this topic.
Offline
Newbie
Karma: 0
Posts: 15
 « Reply #15 on: December 31, 2012, 08:18:14 am » Bigger Smaller Reset

i'm really blur...cant solve this problem....
 Logged

UK
Offline
Tesla Member
Karma: 89
Posts: 6391
-
 « Reply #16 on: December 31, 2012, 08:48:00 am » Bigger Smaller Reset

In that case I suggest you pick a simpler problem.
 Logged

Seattle, WA USA
Offline
Brattain Member
Karma: 315
Posts: 35519
Seattle, WA USA
 « Reply #17 on: December 31, 2012, 12:08:58 pm » Bigger Smaller Reset

Quote
cant solve this problem.
Can't or won't? What have you tried?
 Logged

Offline
Newbie
Karma: 0
Posts: 15
 « Reply #18 on: January 06, 2013, 05:01:17 pm » Bigger Smaller Reset

how to hold the previous distance?

this is my coding right now..but the previous state still show the current distance

Code:
const int pingPin = 7;
int start = 0;

void setup() {
// initialize serial communication:
Serial.begin(9600);
}

void loop()
{
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, inches, cm, currentState, previousState;

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

// convert the time into a distance

cm = microsecondsToCentimeters(duration);

currentState = cm;

previousState = currentState + start ;
previousState = currentState;

Serial.print(previousState);
Serial.print("cm, ");
Serial.print(currentState);
Serial.print("cm");
Serial.println();

delay(100);
}

long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}
 Logged

Global Moderator
UK
Offline
Brattain Member
Karma: 138
Posts: 19067
I don't think you connected the grounds, Dave.
 « Reply #19 on: January 06, 2013, 05:04:10 pm » Bigger Smaller Reset

Any variable declared within a function like "loop" is going to have limited use for remembering its value.
If you want a variable to maintain its value, declare it with global scope.
 Logged

Pete, it's a fool looks for logic in the chambers of the human heart.

Offline
Newbie
Karma: 0
Posts: 15
 « Reply #20 on: January 06, 2013, 05:15:32 pm » Bigger Smaller Reset

can u show me the example from my coding?
 Logged

East Anglia (UK)
Offline
Edison Member
Karma: 48
Posts: 1416
 « Reply #21 on: January 06, 2013, 05:24:49 pm » Bigger Smaller Reset

long duration, inches, cm, currentState, previousState;
 Logged

Left Coast, CA (USA)
Offline
Brattain Member
Karma: 279
Posts: 15314
Measurement changes behavior
 « Reply #22 on: January 06, 2013, 05:35:09 pm » Bigger Smaller Reset

Any variable declared within a function like "loop" is going to have limited use for remembering its value.
If you want a variable to maintain its value, declare it with global scope.

I thought declaring a variable static solves any 'memory' problem for variables declared within the scope of a function?

Lefty
 Logged

East Anglia (UK)
Offline
Edison Member
Karma: 48
Posts: 1416
 « Reply #23 on: January 07, 2013, 02:39:54 am » Bigger Smaller Reset

These variables aren't declared static in the routine though
 Logged

Global Moderator
UK
Offline
Brattain Member
Karma: 138
Posts: 19067
I don't think you connected the grounds, Dave.
 « Reply #24 on: January 07, 2013, 02:41:33 am » Bigger Smaller Reset

Quote
I thought declaring a variable static solves any 'memory' problem for variables declared within the scope of a function?
It does - I just suggested global scope because it is what most noobs are more comfortable with.
 Logged

Pete, it's a fool looks for logic in the chambers of the human heart.

 Pages: 1 [2]   Go Up