tom_25
September 6, 2023, 4:51pm
1
Hello, i am beginner, a have sensor HC-SR04, and display. I learn how to work with sensor on random site and on the site was a code, there it is : ``
#define ECHOPIN 2
#define TRIGPIN 3
void setup() {
Serial.begin(9600);
pinMode(ECHOPIN, INPUT);
pinMode(TRIGPIN, OUTPUT);
}
void loop() {
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
float distance = pulseIn(ECHOPIN, HIGH);
distance = distance * 0.017315f;
Serial.print(distance);
Serial.print("cm\n");
delay(1000); }
and its work,
but i want to do it not to serial monitor but on LCD, i created this code
#include <SoftwareSerial.h>
#define ECHOpin 2 // jak jsem pochopil, ECHO pin prijma signal od trig. A protoze prijma tak je to input
#define TRIGpin 3 // trig musime na ultra malou chvili zapnout a vypnout a on posle signal. OUTPUT
SoftwareSerial LCD(4, 5);
float dalka;
void setup() {
pinMode(ECHOpin, INPUT);
pinMode(TRIGpin, OUTPUT);
LCD.begin(9600);
delay(500); //ceka na zapnuti displeje
LCD.print(" "); //smaze display
}
void loop() {
digitalWrite(TRIGpin, LOW);
delayMicroseconds(2);
digitalWrite(TRIGpin, HIGH); // vysle impuls do modulu na trigpin
delayMicroseconds(10);
digitalWrite(TRIGpin, LOW);
dalka = pulseIn(TRIGpin, HIGH); //ted musime spocitat vzdalenost
dalka = dalka * 0.017315f;
LCD.write(254);
LCD.write(128);
LCD.print(dalka);
LCD.print("cm\n");
delay(1000);
LCD.print(" ");
}
But on LCD is only this: 0.00 cm
Has your LCD display really got a serial interface ? Please post a link to the LCD display that you are using and a diagram of how it is connected to the Arduino
tom_25
September 6, 2023, 4:58pm
3
awneil
September 6, 2023, 5:15pm
5
Does the LCD.print support printing float variables?
Forget about the measurement part, and just try printing some fixed values first ...
tom_25
September 8, 2023, 12:57pm
7
ok, but why it is not working now??
#include <SoftwareSerial.h>
#define ECHOpin 2 // jak jsem pochopil, ECHO pin prijma signal od trig. A protoze prijma tak je to input
#define TRIGpin 3 // trig musime na ultra malou chvili zapnout a vypnout a on posle signal. OUTPUT
SoftwareSerial LCD(5, 6);
long dalka = 0;
void setup() {
pinMode(ECHOpin, INPUT);
pinMode(TRIGpin, OUTPUT);
LCD.begin(9600);
delay(500); //ceka na zapnuti displeje
LCD.print(" "); //smaze display
}
void loop() {
LCD.write(254);
LCD.write(132);
LCD.print(dalka);
LCD.print("cm");
digitalWrite(TRIGpin, LOW);
delayMicroseconds(2);
digitalWrite(TRIGpin, HIGH); // vysle impuls do modulu na trigpin
delayMicroseconds(10);
digitalWrite(TRIGpin, LOW);
dalka = pulseIn(TRIGpin, HIGH); //ted musime spocitat vzdalenost
dalka = dalka*0.017315; //nejaky random vzorec
delay(200);
}
tom_25
September 8, 2023, 1:10pm
8
i connect it at pin 6,
SoftwareSerial LCD(5, 6); // pin 5 unnused
Your topic has been moved to a more suitable location on the forum.
@tom_25 , do not cross-post. Other thread removed.
tom_25
September 8, 2023, 1:33pm
11
Ok sorry, but it's the second day and I don't know what to do
Hi,
Have you written code to JUST control the LCD Display.
Get to know how to display characters and numbers, before adding the rest of your code.
Thanks.. Tom..
1 Like
tom_25
September 8, 2023, 1:36pm
13
Yes @TomGeorge there it is.
/* dysplej ma dva radky po 16 znaku, pokud dame kurzor na prvni radek a napiseme
16 znaku, 1 radek se zaplni, a pokud napiseme 17 symbolu, 1 radek se zaplni ale sedmancty symbol se da na 2. radek.
displey ma problem se zobrazovanim znaku, ulozenych v promenne*/
#include <SoftwareSerial.h>
SoftwareSerial LCD(10, 11); // nastavi serial, LCD, na pin 10 a 11
int pocet_zmacknuti;
boolean zmacknuto;
unsigned long casomira;
byte doba_stisku; //limit je 25 milisekund
void setup() {
pinMode(2, INPUT_PULLUP); //tlacitko
LCD.begin(9600); //LCD je ted serial, a zahaji komunikaci
delay(500); //pocka aby se display zapl
LCD.write(254);
LCD.write(0x01); //vymaze display
}
void loop() {
casomira = millis();
LCD.write(254);
LCD.write(194);
LCD.print("zmacknuto:");
LCD.write(254);
LCD.write(205);
LCD.print(pocet_zmacknuti);
while (digitalRead(2) == LOW) { //kvuli radku 12 pullup je to yas obracene, HIGH = 0, LOW = 1
LCD.write(254);
LCD.write(128);
LCD.print("Ted zmacknuto");
zmacknuto = true;
plus_jedna();
}
if (digitalRead(2) == HIGH) {
zmacknuto = false;
LCD.write(254);
LCD.write(128);
LCD.print(" "); //mazani "Ted zmacknuto"
}
if (doba_stisku > 25) {
pocet_zmacknuti++;
doba_stisku = 0;
}
}
void plus_jedna() {
if (zmacknuto == true) {
doba_stisku = millis() - casomira;
}
}
tom_25
September 8, 2023, 1:56pm
14
Ok, i repair it!! there was a very bad mistake
dalka = pulseIn(ECHOpin, HIGH);
Hi,
I am surprised you didn't use NewPing library to do all your ultrasonic work.
The Arduino programming language Reference, organized into Functions, Variable and Constant, and Structure keywords.
Tom..
1 Like
system
Closed
March 6, 2024, 2:02pm
16
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.