Подскажите что я делаю не так.
Не Получаетсяподключить 3 термопары и tft дисплей SPI ILI9225 к шине SPI к ардуино уно . Работает либо дисплей или термопары когда удалю дисплей из скетча.
Подключение 3 термоар к SPI шине и дисплея LSD 2004А -V1.1 I2C к шине I2C я сделал все работает.
Мой скетч
//Термопары подключение
#include “max6675.h”
int thermoCLK = 13; // SCK -Serial clock генерируется синхронизирующие импульсы микроконтроллером…на плате термопары max6675 пин SO
int thermoDO = 12; // MOSO на контроллере. линия MOSO отвечает за прием данных в данном случае с термопары.на плате термопары max6675 пин SО
int thermoCS1 = 7;
int thermoCS2 = 6;
int thermoCS3 = 5;
MAX6675 thermocouple1 (thermoCLK, thermoCS1, thermoDO);
MAX6675 thermocouple2 (thermoCLK, thermoCS2, thermoDO);
MAX6675 thermocouple3 (thermoCLK, thermoCS3, thermoDO);
//Подключение Вольтметра
#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= "); // печатаем в порте C1 =
Serial.print(thermocouple1.readCelsius());// выводим в порт температ в цельсиях 1 термопары
Serial.print("; C2= "); // печатаем в порте C2 =
Serial.print(thermocouple2.readCelsius());// выводим в порт температ в цельсиях 2 термопары
Serial.print("; C3= "); // печатаем в порте C3 =
Serial.print(thermocouple3.readCelsius());// выводим в порт температ в цельсиях 3 термопары со следующей строки
//Выводим показания в монитор порта показания вольтметра
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, 40,“t2”,COLOR_RED);
tft.drawText(50, 60, “t3=”, COLOR_RED);
tft.drawText(50, 80, “V=”, COLOR_RED);
delay(2000);
}