Вывод данных на TFT дисплей

Vitali-71
Offline
Зарегистрирован: 25.04.2017




Добрый день! У меня просьба помочь разобраться с такой проблемой!
 
у меня:
 
+Arduino Мега 2560 R3
 
+ 3.2-дюймовый TFT IPS ЖК-дисплей 480 х 320 
 
 
+4 сервопривода.
 
как управлять сервоприводами знаю, подключил. но мне надо вывести угол отклонений на дисплей.
 
Помогите доработать скетч!
Vitali-71
Offline
Зарегистрирован: 25.04.2017

Заранее спасибо!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Vitali-71 пишет:





Помогите доработать скетч!

Доработать что?

Vitali-71
Offline
Зарегистрирован: 25.04.2017
#include <Servo.h> 
 
const int servo1 = 4; // первая серва
const int servo2 = 10; // вторая серва
 
const int joyH = 3; // выход L/R джойстика Parallax
const int joyV = 4; // выход U/D джойстика Parallax
 
int servoVal; // переменная для хранения данных с аналогового пина
 
Servo myservo1; // создаем объект Servo для управления первой сервой
Servo myservo2; // создаем объект Servo для управления второй сервой
 
void setup() {
 
// Servo
 
myservo1.attach(servo1); // подключаем серву
myservo2.attach(servo2); // подключаем серву
 
// Инициализация серийного протокола связи
 
Serial.begin(9600);
 
}
 
void loop(){
 
// отображаем значения с джойстика с использованием серийного монитора
 
outputJoystick();
 
// считываем значение с джойстика по горизонтали (значение между 0 и 1023)
 
servoVal = analogRead(joyH);
 
servoVal = map(servoVal, 0, 1023, 0, 180); // масштабируем полученное значение для использования с серводвигателем (результат возвращается в диапазоне от 0 до 180)
 
myservo2.write(servoVal); // выводим ротор сервы в положение в соответствии с полученным масштабированным значением
 
// считываем значение джойстика вдоль вертикальной оси (значение от 0 до 1023)
 
servoVal = analogRead(joyV);
 
servoVal = map(servoVal, 0, 1023, 0, 180); //масштабируем полученное значение для использования с сервой (диапазон: от 0 до 180)
 
myservo1.write(servoVal); // выводим ротор второй сервы в соответствии с полученным масштабированным значением
 
delay(15); // ждем, пока серва обеспечит заданное положение
 
}
 
/**
 
* отображаем значения джойстика
 
*/
 
void outputJoystick(){
 
Serial.print(analogRead(joyH));
Serial.print ("---");
Serial.print(analogRead(joyV));
Serial.println ("----------------");
}
Vitali-71
Offline
Зарегистрирован: 25.04.2017

Скетч рабочий, этот на 2 сервы. Мне надо чтобы при работе каждого сервопривода (всего их будет 4 в схеме), на дисплее отображались их действия (процент, угол, или градус поворота)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015
Vitali-71
Offline
Зарегистрирован: 25.04.2017

Э... не пойму! Там написано как вставить программный код!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так ото ж ....

Araris
Offline
Зарегистрирован: 09.11.2012

Vitali-71 пишет:

Э... не пойму! Там написано как вставить программный код!

В третьем посте данной темы Вы вставили код не по правилам форума. Евгений указал тему, в которой описывается, как вставлять правильно. Прочтите и вставьте код В ЭТУ ТЕМУ правильно.

Vitali-71
Offline
Зарегистрирован: 25.04.2017
#include <Servo.h> 
 
const int servo1 = 4; // первая серва
const int servo2 = 10; // вторая серва
 
const int joyH = 3; // выход L/R джойстика Parallax
const int joyV = 4; // выход U/D джойстика Parallax
 
int servoVal; // переменная для хранения данных с аналогового пина
 
Servo myservo1; // создаем объект Servo для управления первой сервой
Servo myservo2; // создаем объект Servo для управления второй сервой
 
void setup() {
 
// Servo
 
myservo1.attach(servo1); // подключаем серву
myservo2.attach(servo2); // подключаем серву
 
// Инициализация серийного протокола связи
 
Serial.begin(9600);
 
}
 
void loop(){
 
// отображаем значения с джойстика с использованием серийного монитора
 
outputJoystick();
 
// считываем значение с джойстика по горизонтали (значение между 0 и 1023)
 
servoVal = analogRead(joyH);
 
servoVal = map(servoVal, 0, 1023, 0, 180); // масштабируем полученное значение для использования с серводвигателем (результат возвращается в диапазоне от 0 до 180)
 
myservo2.write(servoVal); // выводим ротор сервы в положение в соответствии с полученным масштабированным значением
 
// считываем значение джойстика вдоль вертикальной оси (значение от 0 до 1023)
 
servoVal = analogRead(joyV);
 
servoVal = map(servoVal, 0, 1023, 0, 180); //масштабируем полученное значение для использования с сервой (диапазон: от 0 до 180)
 
myservo1.write(servoVal); // выводим ротор второй сервы в соответствии с полученным масштабированным значением
 
delay(15); // ждем, пока серва обеспечит заданное положение
 
}
 
/**
 
* отображаем значения джойстика
 
*/
 
void outputJoystick(){
 
Serial.print(analogRead(joyH));
Serial.print ("---");
Serial.print(analogRead(joyV));
Serial.println ("----------------");
}

 

 

Vitali-71
Offline
Зарегистрирован: 25.04.2017

так? Прошу сильно не бить...

Помогите чтобы при работе каждого сервопривода на дисплее отображались их действия!

vvadim
Offline
Зарегистрирован: 23.05.2012

а где у вас дисплейная часть?

в этом разделе помогают, а не делают за кого то полностью

Vitali-71
Offline
Зарегистрирован: 25.04.2017

так в том то и проблема! не пойму как сюда дописать дисплей! просто подскажите, направьте по нужному руслу... я не прошу все прогу делать за меня!

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

для начала надо подключить библиотеку дисплея, соответствующего контроллера. 

Vitali-71
Offline
Зарегистрирован: 25.04.2017

#include <UTFT.h>

// Объявляем, какие шрифты мы будем использовать
       
extern uint8_t BigFont[];

// Не забудьте изменить параметр модели в соответствии с вашим модулем отображения!
UTFT myGLCD(CTE32HR,38,39,40,41);

void setup()
{
  randomSeed(analogRead(0));
  
// Setup the LCD
  myGLCD.InitLCD();
  myGLCD.setFont(BigFont);
}

void loop()
{
  myGLCD.clrScr();
  
  myGLCD.setColor(0, 0, 255);       //фон экрана
  myGLCD.fillRect(0, 0, 479, 319);  //границы фона

  myGLCD.setBackColor(0, 0, 255);   //цвет фона
  myGLCD.setColor(255, 255, 0);     //цвер шрифта
  myGLCD.print("UDALENOST", 285, 1);

  myGLCD.setColor(0, 150, 255);
  myGLCD.drawRect(241, 17, 479, 160);

  myGLCD.setColor(25, 25, 25);
  myGLCD.fillRect(242, 18, 478, 159);
  
  myGLCD.setBackColor(0, 0, 255); //цвет фона
  myGLCD.setColor(255, 255, 0);   //цвер шрифта
  myGLCD.print("NAKLON PO Y", 275, 161);

  myGLCD.setColor(0, 150, 255);
  myGLCD.drawRect(241, 177, 479, 319);
  
  myGLCD.setColor(25, 25, 25);
  myGLCD.fillRect(242, 178, 478, 318); 
  
  myGLCD.setBackColor(0, 0, 255); //цвет фона
  myGLCD.setColor(255, 255, 0);   //цвер шрифта
  myGLCD.print("POVOROT NA 360", 10, 1);
  
  myGLCD.setColor(0, 150, 255);
  myGLCD.drawRect(0, 17, 239, 160);

  myGLCD.setColor(25, 25, 25);
  myGLCD.fillRect(1, 18, 238, 159);

  myGLCD.setBackColor(0, 0, 255); //цвет фона
  myGLCD.setColor(255, 255, 0);   //цвер шрифта
  myGLCD.print("NAKLON PO X", 30, 161);

  myGLCD.setColor(0, 150, 255);
  myGLCD.drawRect(0, 177, 239, 319);

  myGLCD.setColor(25, 25, 25);
  myGLCD.fillRect(1, 178, 238, 318);


  while (true) {}; //от мигания
}
 

вот есть библиотека в которой есть таблица на 4 части!