Вывод переменной на дисплей
- Войдите на сайт для отправки комментариев
Пт, 07/10/2016 - 19:23
Подскажите пожалуйста, где ошибка в коде. Или может подскажете другой вариант кода. Надо вывести текст, который я печетаю с компьютера на дисплей.С ардуиной только один день работаю. Вот мой код :
int val; int a; #include <LiquidCrystal.h> LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ Serial.begin(9600); lcd.begin(8, 2); } void loop(){ if (Serial.available()) a = Serial.read(); lcd.setCursor (0, 0); lcd.print ( "a" ); Serial.write ( "a" ); delay (10); }
А чего Вы все буквы, сколь бы их ни было, в одно и тоже место экрана выводите? В позицю 0,0. Это баг или фича?
И вообще, объяснять проблему надо подробнее, здесь никто в Вашей голове не сидит и не знает, чего Вы хотели. Также здесь никто не знает, что у Вас получилось.
Вот Вы толком не объяснили что нужно (см. мой вопрос выше) и совсем никак не объяснили что же у Вас получается.
И Вы думаете, в такой ситуации Вам можно как-то по делу помочь?
А чего Вы все буквы, сколь бы их ни было, в одно и тоже место экрана выводите? В позицю 0,0. Это баг или фича?
это насущная необходимость:
17
lcd.print (
"a"
);
18
Serial
.write (
"a"
);
Ой, и правда, до строчек 17 и 18 я не досмотрел, на 16-ой остановился.
Действительно, что Вы там пытаетесь вывести в строказ 17 и 18?
Позвольте мне быть менее замысловатым, чем предыдущие ораторы:
17
lcd.print (
"a"
);
18
Serial
.write (
"a"
);
- это вывод строки "a", к переменной
int
a
никакого отношения не имеет.17
lcd.print (
a
);
18
Serial
.write (
a
);
- вывод значения переменной a.
Egorpro4, увидьте разницу. А лучше изучите хотя бы базовые основы языка программирования, на котором пытаетесь писать.
Например
да, ну нафиг!
Сравнивать Serial.available() с нулем - излишество нехорошее.
Сравнивать Serial.available() с нулем - излишество нехорошее.
ну, так привык.
Сравнивать Serial.available() с нулем - излишество нехорошее.
Да, ну! С чего бы это. В примерах так же
Да, ну! С чего бы это. В примерах так же
примеры не при чём - мне не совсем понятно, почему if(2) != if(0) и if(2) == if(1).
почему не происходит переполнения при конвертации int в boolean внутри скобок If() - мне не понятно.
*яженепрограммист
кто в курсе, зачем они так сделали? - почему любые значения, кроме 0 или 1 не отвергаются, как не имеющие смысла, т.е. ошибочные?:
Значение истины (true)
Любое целочисленное значение, кроме 0 будет эквивалентно истине. Например, 1, 2, 4, 45 — все это истина, а нуль — нет. В С++ также зарезервировано ключевое слово, обозначающее истину —
true
.Сравнивать Serial.available() с нулем - излишество нехорошее.
Да, ну! С чего бы это. В примерах так же
Кто ж спорит?
И я говорю: наезжать на Калапуция нехорошо (вне зависимости от номера).
кто в курсе, зачем они так сделали? - почему любые значения, кроме 0 или 1 не отвергаются, как не имеющие смысла, т.е. ошибочные?:
Значение истины (true)
Любое целочисленное значение, кроме 0 будет эквивалентно истине. Например, 1, 2, 4, 45 — все это истина, а нуль — нет. В С++ также зарезервировано ключевое слово, обозначающее истину —
true
.Это очень удобно в реальной работе: очень часто имеет место одна из двух ситуаций:
1. Функция возвращает значение (адрес, дескриптор, идентификатор - не важно). При этом любое значение кроме 0 является допустимым, а 0 сигнализирует об ошибке.
2. Функция по идее не должна ничего возвращать, но удобнее, когда она при нормальном завершении возвращает 0, а в других случаях - код ошибки.
В обоих этих практически важных случаях целесообразно развести 0 и все остальные числа по разные стороны в дилемме истина-ложь. Тем более, что с одной стороны глупо никак не использовать 7 битов из 8, а с другой - делать дополнительную проверку, из которой все равно нельзя извлечь никакой пользы.
Кстати, такое решение присутствует даже в языках, в котороых, в отличие от С/С++ логические переменные представлены сущностями отличными от целых чисел, например, а Паскале.
Просто замечание.
Видно по коду и оформлению, что Клапауций - не профессиональный програмист.
Но он генерит очень хороший код.
...
Я, как-то давно , читал книгу какого-то американца (Голуб, может быть) по С ++. И там была изложена совершенно пародоксальная, для меня, мысль, подкрепленная статистикой. О том, что самые успешные програмисты получаются не из математиков, как я и многие тут, а из гуманитариев типа лингвистов и прочих словесников. Так что расово верный подход "не писать сравнение с 0" - понятен математику, но, возможно, есть иной взгляд на мир?
что самые успешные програмисты получаются не из математиков, как я и многие тут, а из гуманитариев типа лингвистов и прочих словесников.
просто замечание.
Клапауций гуманитарием никогда не был и не будет.
Это очень удобно в реальной работе: очень часто имеет место одна из двух ситуаций:
ок. спасибо за разъяснение.
...была изложена совершенно пародоксальная, для меня, мысль, подкрепленная статистикой. О том, что самые успешные програмисты получаются не из математиков, как я и многие тут, а из гуманитариев типа лингвистов и прочих словесников.
Я всегда придерживался мнения, что человек либо умеет выражать свои мысли (не важно: по-русски, на С, по-японски или на Фортране), либо - нет. И словесники с точки зрения выражения мысли словами, вроде бы, не должны отличаться на этом поприще в худшую сторону.
Потом, программист - это тот, кто формулирует алгоритм (например, по-русски), а тот, кто переводит алгоритм с русского на С, называется кодером.
Это как бы общие рассуждения по поводу "парадоксальности" утверждения.
Но есть еще одно - с точки зрения адекватности профориентации конкретного человека его способностям. Так вот, если человек, получивший техническое образование, стал гуманитарием (либо наоборот: гуманитарное - технарем), то, думаю, это свидетельствует об уровне способностей заметно выше среднего. Ну а у "гуманитарных гуманитариев" и "технических технарей" этот уровень в среднем недалек от среднего. Так что в среднем человек, сменивший специальность, обладет более высоким уровнем способностей.
Ну и почти последнее: для успешности на высоком уровне необходим достаточно широкий взгляд на вещи.
И еще один момент: если в СССР фундаментальное образование принято было давать технарям, то на Западе, наоборот, более фундаментальным образованием обладают гуманитарии. А статистика, я думаю, как раз "местная", т.е. учитывающая в основном западную модель образования.
И еще один момент: если в СССР фундаментальное образование принято было давать технарям, то на Западе, наоборот, более фундаментальным образованием обладают гуманитарии. А статистика, я думаю, как раз "местная", т.е. учитывающая в основном западную модель образования.
та, да: и ещё один момент - после СССР образования нет(с)рептилоид