lcd
- Войдите на сайт для отправки комментариев
Сб, 24/12/2016 - 00:18
доброго времени
Подскажите пожалусто как ограничеть значения in_volt и out_volt с точностью до сотых 0.00
а то выдает на дисплей полный ответ 0.000000000 так на дисплее места не хватит на все что надо вывести на дисплей.
[code] #include <LiquidCrystal.h> LiquidCrystal lcd(4, 5, 10, 11, 12, 13); const int PWM_PIN = 3; // выход расходомер const int AIN_PIN = A0; // вход расходомер int val = 0; // переменная для хранения сигнала входящего расходомера byte VAF[256] //таблица выход { 205,202,198,195,192,189,185,182,179,176, 172,169,167,165,164,162,160,158,157,155, 153,151,150,148,146,145,144,142,141,140, 138,136,134,133,132,130,129,128,126,125, 123,122,121,120,119,118,117,116,115,114, 113,112,111,110,109,108,107,106,105,104, 103,102,101,100,99,98,96,95,94,93, 92,91,90,89,88,87,86,85,84,83, 82,81,80,79,78,77,76,75,74,73, 72,71,70,70,69,69,68,67,67,66, 66,65,65,64,63,63,62,62,61,60, 60,59,58,58,57,57,56,56,55,54, 54,53,52,52,51,51,50,49,49,48, 48,47,46,46,45,44,44,43,43,42, 41,41,40,40,40,39,39,39,38,38, 38,37,37,37,36,36,36,35,35,34, 34,34,33,33,33,32,32,32,31,31, 30,30,30,30,30,30,29,29,29,28, 28,28,27,27,26,26,26,25,25,25, 24,24,24,23,23,23,22,22,21,21, 21,20,20,20,19,19,19,18,18,18, 17,17,16,16,16,15,15,15,14,14, 14,14,14,14,13,13,13,12,12,12, 11,11,11,10,10,9,9,8,8,7, 7,6,6,5,5,4,4,3,3,2, 2,1,1,1,0,0 }; void setup() { lcd.begin(16, 2); lcd.print("\x50\A\C\X\O\xE0\ \B\O\xA4\xE0\xA9\X\A"); lcd.setCursor(0, 1); lcd.print("\B\o\xBB\xC4\x89\ \xDA\ \xD9\ "); TCCR2B = TCCR2B & 0b11111000 | 0x02; pinMode (PWM_PIN, OUTPUT); // сконфигурировать контакт как выход pinMode (AIN_PIN, INPUT); // сконфигурировать контакт как вход } void loop() { int val = analogRead ( AIN_PIN ); int inSignal = map (val,0,1023,0,255); analogWrite (PWM_PIN,VAF[inSignal]); float in_volt = (inSignal*0.01953125); float out_volt = (VAF[inSignal]*0.01953125); lcd.setCursor (7,1); lcd.print (in_volt); lcd.setCursor (11,1); lcd.print (out_volt); } [/code]
и еще как замедлить обновление дисплея но не трогая программу по работе с массивом
lcd.print (out_volt, 2);
так я пробовал не помогает почемуто
А - lcd.println (out_volt, 2); ?
А - lcd.println (out_volt, 2); ?
А ln здесь при чем? Куда строку переводить?
Попробуйте библиотеку заменить, у меня работает без проблем.
Попробуйте библиотеку заменить, у меня работает без проблем.
а какую библиотеку использовать
Та найдите любую другую и попробуйте. Может какая левая попалась.
вроде оригинальную использую .
вечером поищу
А - lcd.println (out_volt, 2); ?
А ln здесь при чем? Куда строку переводить?
не переводить а проверить коды перевода строк отображает...
У меня код работает, правда для проверки чуток правил
не переводить а проверить коды перевода строк отображает...
У меня код работает, правда для проверки чуток правил
Возможно. У меня все I2C, с библиотекой ТС не проверить. В корректной библиотеке работать обязано.
а может от дисплея зависит ?
у меня амтел 1602
самое главное я сейчас для себя заметил что не все прочитал по документации наверное надо сначало изучить там все
я только учусь
спасибо что помогаете
и подскажите что такое ТС очень часто встречается
ТС = topicStarter
все понятно)
надо идти домашние дела делать вечером буду дальше разбираться
и с наступающим
ДОБРОГО ВРЕМЕНИ вот что у меня получилось
но есть еще вопрос как сделать задержку для вывода инфо на дисплей но чтоб не тормазила программа с входящим и выходящим сигналом
почемуто слова на дисплей выводятся нормально а цифры постоянно мерцают