Так и было. Он там бит пхает, без передёргивания SCK. В итоге на шине при опр. условиях, может образоваться “лишний бит”.
@123 Алексей
Подводя итог - просто перенесите пины SCK и MISO термопар на любые два свободных пина и все должно заработать.
Не надо трогать Черчилля! Он как мог защищался.
Перекинул контакт SCK термопар на другой и заработало!
СПАСИБО БОЛЬШОЕ!!!
Подскажите пожалуйста еще
в монитор поорта команда Serial.print(thermocouple3.readCelsius()); печатает данные
,а команда tft.drawText(50, 40, thermocouple3.readCelsius(), COLOR_RED); на дисплей нет?
double readCelsius(void)
; и tft.drawText?
наверно надо в текст превратить видимо
Подскажите как это програмно написать?
@ua6em вперёд и с песнЯми!
@ЕвгенийП я же не для того, чтобы отметиться, задать направление для, библиотеки как правило могут и циферки на экран печатать
PS четвёртый курс Бауманки, чему их там учат…
Вы не про бауманку тут рассуждайте, а показывайте гражданину
существует 99 способов, но профессор утверждает, что сто )))
PS хотел отмазаться, а его библиотека цифру то и не умеет…
begin KEYWORD2
clear KEYWORD2
invert KEYWORD2
setBacklight KEYWORD2
setBacklightBrightness KEYWORD2
setDisplay KEYWORD2
setOrientation KEYWORD2
getOrientation KEYWORD2
fontX KEYWORD2
fontY KEYWORD2
maxX KEYWORD2
maxY KEYWORD2
drawCircle KEYWORD2
fillCircle KEYWORD2
setBackgroundColor KEYWORD2
drawLine KEYWORD2
drawRectangle KEYWORD2
fillRectangle KEYWORD2
drawPixel KEYWORD2
drawText KEYWORD2
getTextWidth KEYWORD2
setColor KEYWORD2
splitColor KEYWORD2
drawTriangle KEYWORD2
fillTriangle KEYWORD2
setFont KEYWORD2
getFont KEYWORD2
drawChar KEYWORD2
drawBitmap KEYWORD2
drawXBitmap KEYWORD2
Да походу програмировапние для меня темный лес в в вашем собщении не понял ничего. вижу команды там есть и команда которую я использовал drawText. Но как заставить печатать значение переменной thermocouple3.readCelsius() на дисплее в цифрах так и не понял . в порт температуру печатает без проблем.
А собираю я панель приборов для моего старого советского снегохода тайга. Что у меня почти получилось подключить:
- 3 термопары для температуры двух цилиндров и температуру выхлопных газов
- Вольтметр
Что хочу еще подключить: - Тахометр от переменки с генератора
- Спидометр от GPS c функцией одометра
3.И раз есть GPS компас
Заказал еще модуль расширения портов ввода-вывода .
ПРОШУ ОЦЕНИТЬ ВОЗМОЖНОСТЬ РЕАЛИЗАЦИИ МОЕГО ПРОЕКТА
Примерно полгода-год и вероятность возможности станет чуть выше 0
Проблема в написании програмного кода?
У меня - нет.
Что вы имели в виду ? Вы можете написать такой код и подсказать с правильным подключением?
Это я к тому, что если
то максимум, что ты в данный момент можешь - скопировать чужой проект. А вот чтобы внести в него изменения под свои хотелки надо полгода-год учиться, тогда вероятность успешного успеха станет чуть выше 0. Так-то людей программированию и схемотехнике 5 лет обучают, и то не все из них доходят до диплома.
Я согласен писать программу не умею могу только подредактировать. Может ли ктонибудь взятся мне помочь и за сколько?
Здесь есть платный раздел, создай тему там и спроси. Я не профессиональный программист, меня не обучали ни программированию, ни схемотехнике, и за 35 лет самостоятельного изучения я еле-еле на первую, самую низкую, ступеньку знаний в этих областях залез. И то с трудом.
Спасибо
Запустил дисплей и термопары подключены к апаратному SPI разные только Контакты CS выбора все работает
заменил библиотеку термопары. осталось вольты вывести
#include <GyverMAX6675.h>
#include <GyverMAX6675_SPI.h>
//подключение термопар по аппаратному SPI указываем пин CS
//остальные подключены к аппаратному SPI (SCK и MISO)
GyverMAX6675_SPI<7> sens1;
GyverMAX6675_SPI<6> sens2;
GyverMAX6675_SPI<5> sens3;
//Подключение Вольтметра
#define analog_pin A0 // Вывод которому подключен датчик
float adc_voltage = 0.0; // Создаем переменную adc_voltage
float in_voltage = 0.0; // Создаем переменную in_voltage
float R1 = 30000.0; // Задаем номинал резистора R1
float R2 = 7500.0; // Задаем номинал резистора R2
float ref_voltage = 5.0; // Задаем опорное напряжение
int adc_value = 0; // Создаем переменную для хранения показаний
// Подключения дисплея
#include "SPI.h" // библиотека работы по интерфейсу (шине) SPI
#include "TFT_22_ILI9225.h" // библиотека дисплея
// назначаем имена контактам дисплея
#define TFT_LED 3 // шим вывод для управления подсветкой (любой шим выход ардуино)
#define TFT_RST 8 // Reset (любой выход ардуино)
#define TFT_RS 9 //SPI Data/Command Select (любой выход ардуино)
// назначаем имена контактам дисплея SPI шине (использую аппаратные контакты SPI шины работают быстрей) фиксированые выводы ардуино уно
#define TFT_CS 10 // SS(Slave Select).- на контроллере. другое обознач CS(Chip Select)на подключеном устройстве
#define TFT_SDI 11 // MOSI на контроллере. линия MOSI отвечает за предачу в данном случае на дисплей.на дисплее пин SDI
#define TFT_CLK 13 // SCK -Serial clock генерируется синхронизирующие импульсы
#define TFT_BRIGHTNESS 100 // яркость дисплея
TFT_22_ILI9225 tft = TFT_22_ILI9225(TFT_RST, TFT_RS, TFT_CS, TFT_LED, TFT_BRIGHTNESS); // подключаем дисплей к проименованым контактам
void setup() {
Serial.begin(9600); //активируем порт передачи используется когда нужно выводить информацию на компьютер
Serial.println("MAX6675 test"); //ждем стабилизации чипа MAX
Serial.println("DC Voltage Test"); // Отправляем текст волтметр
tft.begin(); // инициализация ЖК дисплея
tft.clear();
tft.setOrientation(0); // Отрентация текста 0,1,2,3,
tft.setBackgroundColor(COLOR_YELLOW); // фон текста
tft.setFont(Terminal12x16);
tft.drawText(0, 20, "t1=", COLOR_RED);
tft.drawText(0, 40, "t2=", COLOR_RED);
tft.drawText(0, 60, "t3=", COLOR_RED);
tft.drawText(0, 80, "V=", COLOR_RED);
delay(1000);
}
void loop() {
// Волтметр
adc_value = analogRead(analog_pin); // Считываем показания с аналогово вывода
adc_voltage = (adc_value * ref_voltage) / 1024.0; // Определение на входе АЦП
in_voltage = adc_voltage / (R2 / (R1 + R2)); // Расчет напряжения
//Выводим показания в монитор порта с термопар
Serial.print(" C1= ");
sens1.readTemp(); // Читаем температуру
Serial.print(sens1.getTemp()); // Забираем температуру через getTemp
Serial.print("; C2= "); // печатаем в порте C2 =
sens2.readTemp();
Serial.print(sens2.getTemp());
Serial.print("; C3= "); // печатаем в порте C3 =
sens3.readTemp();
Serial.print(sens3.getTemp());
//Выводим показания в монитор порта показания вольтметра
adc_value = analogRead(analog_pin); // Считываем показания с аналогово вывода
adc_voltage = (adc_value * ref_voltage) / 1024.0; // Определение на входе АЦП
in_voltage = adc_voltage / (R2 / (R1 + R2)); // Расчет напряжения
Serial.print("; V= "); // печатаем в порте V =
Serial.println(in_voltage, 2); // выводим в порт показания вольтметра
tft.setBackgroundColor(COLOR_YELLOW);
tft.setFont(Terminal12x16);
tft.drawText(50, 20, String(sens1.getTemp(), 2), COLOR_RED);
tft.drawText(50, 40, String(sens2.getTemp(), 2), COLOR_RED);
tft.drawText(50, 60, String(sens3.getTemp(), 2), COLOR_RED);
tft.drawText(50, 80, "String(in_voltage()", 2), COLOR_RED);
delay(2000);
}