Страница 1 из 1

потенциометр с графическим дисплеем

Добавлено: 02.08.2016{, 12:48}
olegs
здравствуйте! подскажите новичку) у меня такая задача (на flprog) С помощью потенциометра (50кОм) вращаю серво мотор (SD-90) и вывожу информацию на дисплей (1602). хочу сделать так, чтобы на одной 1 строке показывало градусы, а на 2 строке, например, на 90 градусов центр (!) при меньше 90 надпись "left" -при больше 90 соответственно надпись "right"
у меня всё время показывает "right"  в чём моя ошибка или что я упустил?

потенциометр с графическим дисплеем

Добавлено: 02.08.2016{, 13:50}
Сергей
olegs, проект выложите. По фото не понятны настройки блоков.

потенциометр с графическим дисплеем

Добавлено: 02.08.2016{, 14:28}
olegs
#include <LiquidCrystal.h>
#include <Servo.h>
LiquidCrystal _lcd1(8, 9, 4, 5, 6, 7);
int _dispTempLength1=0;
boolean _isNeedClearDisp1;

Servo _SM1;
int _disp2oldLength = 0;
int _disp3oldLength = 0;
int _disp1oldLength = 0;
int _disp4oldLength = 0;
void setup()
{
_SM1.attach(3);
_lcd1.begin(16, 2);
}
void loop()
{if (_isNeedClearDisp1) {_lcd1.clear(); _isNeedClearDisp1= 0;}

if (1) {
_dispTempLength1 = (((String((map(( (analogRead (0))), (666), (1024), (0), (180))))))).length();
if (_disp3oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp3oldLength = _dispTempLength1;
_lcd1.setCursor(int((16 - _dispTempLength1)/2), 0);
_lcd1.print(((String((map(( (analogRead (0))), (666), (1024), (0), (180)))))));
} else {
if (_disp3oldLength > 0) {_isNeedClearDisp1 = 1; _disp3oldLength = 0;} 
}
if (((((String((map(( (analogRead (0))), (666), (1024), (0), (180)))))).compareTo(String("91")))>0)) {
_dispTempLength1 = (String("lift")).length();
if (_disp1oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor(int((16 - _dispTempLength1)/2), 1);
_lcd1.print(String("lift"));
} else {
if (_disp1oldLength > 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;} 
}
if (1) {_SM1.write ((map(( (analogRead (0))), (666), (1024), (0), (180))));} 
if ((((String((map(( (analogRead (0))), (666), (1024), (0), (180)))))).equals(String("90")))) {
_dispTempLength1 = (String("!!!!!!!!!!")).length();
if (_disp4oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp4oldLength = _dispTempLength1;
_lcd1.setCursor(int((16 - _dispTempLength1)/2), 1);
_lcd1.print(String("!!!!!!!!!!"));
} else {
if (_disp4oldLength > 0) {_isNeedClearDisp1 = 1; _disp4oldLength = 0;} 
}
if (((((String((map(( (analogRead (0))), (666), (1024), (0), (180)))))).compareTo(String("89")))<0)) {
_dispTempLength1 = (String("right")).length();
if (_disp2oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor(int((16 - _dispTempLength1)/2), 1);
_lcd1.print(String("right"));
} else {
if (_disp2oldLength > 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;} 
}

}

потенциометр с графическим дисплеем

Добавлено: 02.08.2016{, 14:47}
Vitez
olegs, Проект выкладывайте в формате FLProg.  Зачем числовое значение переводить в строку. Блоком "Компаратор"  сравнивайте числовое значение < 90 или >90