Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Help, please!!! Прошу помощи в доработке скетча для Ардуино!

Виталий Жихарев Знаток (319), закрыт 6 лет назад
Добрый день!
у меня: Arduino Мега 2560 R3 + 3.2-дюймовый TFT IPS ЖК-дисплей 480 х 320
(http://www.dx.com/ru/p/arduino-mega-2560-r3-module-3-...)
+4 сервопривода! Как управлять сервоприводами знаю, подключил.
Дисплей разбит на 4 "окошка".
Задача такая. При работе каждого сервоприводов, нужно чтобы на дисплее отображался угол наклона или процент отклонения каждого сервопривода.
Дополнен 6 лет назад
У меня не получается доработать скетч! Если что, весь проект здесь: https://yadi.sk/d/mdwbKfda3J6kvo
Лучший ответ
Ислам Сулоев Просветленный (26972) 6 лет назад
Замечаний масса.
Принципиальное:
1. В loop надо читать оба джойстика - у вас только один
2. Управлять надо всеми сервами. У вас - только двумя.
3. Вы в setup инициализируете/рисуете заставку на экран. Хорошо. А в каком виде собрались выводить данные? Графика? Число? - Нет ответа :-)
4. Для простоты допустим число. Это значит, что 4 раза (можно в цикле - но вам это делать не стоит) вывести в соответствующее место экрана необходимые ПЕРЕМЕННЫЕ. Можно - ваши servoValы, которые вы уже привели к диапазону 0-180 градусов (для управления сервами). Но у вас ни одна переменная на экран не выводится.
5. Если собрались выводить графически - эскиз того, что хотите видеть. Смотрите какими функциями из библиотеки эту красоту можно реализовать, пишите код. НО! Опять же надо будет 4 раза в 4 окна выводить в каждое свою преобразованную в графику, но всё ту же переменную servoVal.

6. Много мелких замечаний, но пока они на скорость не влияют. Устраните эти принципиальные недоработки.
Виталий ЖихаревЗнаток (319) 6 лет назад
1,2 я пока на одном экспериментирую, мне хотя бы один вывести, другие я допетрю... (у меня джойстик двухсторонний - влево-вправо один серво, вверх-вниз другой)
3. число, например, 180 град, 320, 65 и т. д...
4. я просто не знаю как тут это прописать...
5. говорю же опять, на одном серве помогите сделать, а остальные я допишу сам...
Евпатий Коловрат Просветленный (26043) Например: void loop(){ myGLCD.setBackColor(0, 0, 255); //цвет фона myGLCD.setColor(255, 255, 0); //цвер шрифта myGLCD.print("NAKLON PO Y", 275, 161); myGLCD.print(strVar, x, y) delay(1000); myGLCD.setBackColor(0, 0, 255); //цвет фона myGLCD.setColor(255, 255, 0); //цвер шрифта myGLCD.print("NAKLON PO X", 275, 161); //Здесь подставь другие координаты. Это пример. myGLCD.print(strVar, x, y) delay(1000); }
Остальные ответы
Евпатий Коловрат Просветленный (26043) 6 лет назад
1.Для начала, надо перевести servoVal в строку.
Делаем так:

String strVar = String(servoVal, DEC);

2. Рисуем на экране:

myGLCD.print(strVar, x,y) // Х и У - это координаты нужного места на экране.
Ksenia Arman Ученик (15) 6 лет назад
Конечно
Виталий ЖихаревЗнаток (319) 6 лет назад
Что означает твоё "Конечно"?
Похожие вопросы