I just recently purchased an Arduino Uno 3 and I wanted to make an ultrasonic distance sensor that outputs the readings to a 16x2 LCD. I followed this guide: http://www.mertarduino.com/using-ultrasonic-distance-sensor-hc-sr04-with-lcd-display-and-arduino/2018/11/22/ but it gave an error when I uploaded the code. The error was: a function definition is not allowed here before '{' token. I don't know too much about Arduinos, so I need help. Thanks to whoever responds!
Here is the code:
// put your setup code here, to run once:
#include <LiquidCrystal.h> //Please replace the single quote characters ('') with the parenthesis character (<>)
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters:
(rs, enable, d4, d5, d6, d7)
const int trigPin = 9;
const int echoPin = 10;
long duration;
int distanceCm, distanceInch;
void setup() {
lcd.begin(16,2); // Initializes the interface to the LCD screen, and
specifies the dimensions (width and height) of the display
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm= duration*0.034/2;
distanceInch = duration*0.0133/2;
lcd.setCursor(0,0); // Sets the location at which subsequent text written to
the LCD will be displayed
lcd.print("Distance: "); // Prints string "Distance" on the LCD
lcd.print(distanceCm); // Prints the distance value from the sensor
lcd.print(" cm");
delay(10);
lcd.setCursor(0,1);
lcd.print("Distance: ");
lcd.print(distanceInch);
lcd.print("inch");
delay(10);
}
-
your comments are broken. please take a coding courseJuraj– Juraj ♦2019年08月20日 17:23:48 +00:00Commented Aug 20, 2019 at 17:23
1 Answer 1
The root of your problem is this bit:
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters:
(rs, enable, d4, d5, d6, d7)
I think in copying-and-pasting you ended up with a line split across two giving you an error. It should read:
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
You have a similar problem here:
lcd.begin(16,2); // Initializes the interface to the LCD screen, and
specifies the dimensions (width and height) of the display
Again that has split across two lines and should read:
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
And a third:
lcd.setCursor(0,0); // Sets the location at which subsequent text written to
the LCD will be displayed
which should be:
lcd.setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be displayed
When those three are corrected the code compiles properly.
-
Why the downvote? Is there something wrong with this answer?Majenko– Majenko2019年08月20日 17:28:11 +00:00Commented Aug 20, 2019 at 17:28
-
Thanks for the answer! the code now works and I don't know who gave the downvote as I don't actually have an account.PiGuy01– PiGuy012019年08月20日 17:58:42 +00:00Commented Aug 20, 2019 at 17:58
-
Upvoted; nothing wrong with the answer (as usual).Michel Keijzers– Michel Keijzers2019年08月20日 19:30:21 +00:00Commented Aug 20, 2019 at 19:30