עבור לתוכן

בעיה בLCD

Featured Replies

פורסם

חברה, יש בעיה בעייה בLCD של הארדואינו

חברתי חיישן מרחק לארדואינו וLCD אליו בשביל לראות את המרחק על הLCD מהחיישן

אבל הבעיה שמופיע לי אחרי המרחק כמה קשקושים

תמונה:

imag0098vg.jpg

Uploaded with ImageShack.us

וזאת התוכנית:

#include "Ultrasonic.h"
Ultrasonic ultrasonic(8, 7);

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
Serial.begin (9600);
lcd.begin(16, 2);
}

void loop()
{
int distance = ultrasonic.Ranging(CM);

if (distance >= 200 || distance <= 0)
{
lcd.setCursor(0, 1);
lcd.print("Out of range");
Serial.println("Out of range");
}
else {
lcd.clear();
lcd.print(distance);
lcd.println( " CM ");
lcd.println(" ");
Serial.print (distance);
Serial.println (" CM ");
}
delay(500);
}

משהו יודע איך פותרים אותם? ???

פורסם

פעם הבאה שאתה מפרסם קוד תשתמש ב"הוסף קוד" ולא "הוסף ציטוט".

בשורת קוד האחרונה שמדפיסה לLCD הדפסת " ", יש סיבה מיוחדת לשורת הקוד הזאת ? מה קורה אם תמחק אותה ?

פורסם
  • מחבר

הורדתי את השורה וזה מתחיל לרשום לי שטויות אחרי המרחק

הינה דוגמא:

imag0099g.jpg

Uploaded with ImageShack.us

פורסם

אין דבר כזה printIn ב LiquidCrystal.

פורסם
  • מחבר

אין דבר כזה printIn ב LiquidCrystal.

תודה רבה עכשיו זה עובד טוב :)

פורסם
  • מחבר

יש לי עוד בעיה,

עשיתי שמתי שהמרחק הוא יותר מ2 מטר זה ירשום THE DISTANCE OVER 2 METERS

עכשיו מתי שהוא עובר את ה2 מטרים

אז אני רואה בLCD ככה

מספר כלשהו, משתנה לOVER 2 METERS, מספר אחר כלשהו, OVER 2 METERS, מספר אחר כלשהו וככה הלאה

והמספרים שמופיעים שם הם לא קשורים, הם יכולים להיות 6 28 64 35 והם מתחלפים עם הOVER 2 METERS

PIN9 זה לד שמתי שהגוף עובר את ה50 סנטימטר הוא נדלק, אל תתייחסו לזה, תתייחסו למה שקשור לLCD

הינה הקוד:

#include "Ultrasonic.h"
Ultrasonic ultrasonic(8, 7);

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
Serial.begin (9600);
lcd.begin(16, 2);
pinMode(9,OUTPUT);
}

void loop()
{
int distance = ultrasonic.Ranging(CM);

if (distance >= 50)
{
digitalWrite (9, HIGH);

if(distance >= 200)
{
lcd.clear();
lcd.print("The distance is:");
lcd.setCursor(0, 1);
lcd.print("Over 2 meters");
}
else
{
lcd.clear();
lcd.print("The distance is:");
lcd.setCursor(0,1);
lcd.print(distance);
lcd.print( " CM ");
lcd.print(" ");
}
}
else if(distance < 50)
{
lcd.clear();
lcd.print("The distance is:");
lcd.setCursor(0,1);
lcd.print(distance);
lcd.print(" CM ");
lcd.print(" ");
digitalWrite (9, LOW);
}

delay(500);
}

פורסם
אין דבר כזה printIn ב LiquidCrystal

הקדמת אותי עם התשובה הזו :-) אבל אם ככה, איך הקוד עבד?

Xtr3m3r, אתה מזיז את ה-Cursor לתחילת המסך אחרי שכבר כתבת משהו, ואז כותב עוד משהו שדורס את מה שהיה קודם. שים לב לסדר הנכון של הפעולות!

פורסם
  • מחבר

הקדמת אותי עם התשובה הזו :-) אבל אם ככה, איך הקוד עבד?

Xtr3m3r, אתה מזיז את ה-Cursor לתחילת המסך אחרי שכבר כתבת משהו, ואז כותב עוד משהו שדורס את מה שהיה קודם. שים לב לסדר הנכון של הפעולות!

קודם כל תודה על התגובה,

דבר שני, לא הבנתי למה אתה מתכוון שהזזתי את הCURSOR לתחילת המסך

ואם תוכל לתקן את הקוד זה מאוד יעזור לי

פורסם

רגע, סליחה, התבלבלתי עם סדר המספרים בפקודה setCursor.

יכול להיות שהסיגנל מהחיישן שלך פשוט "רועש"? אם אתה מחזיק את היד קרוב אליו, המספרים האקראיים האלה שאתה מקבל נוטים להיות נמוכים יותר?

(איפה מצאת בכלל את הספריה Ultrasonic?)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים