Друзья сайта |
Форум поддержки программ "Tiny Tools" (CPLD/USB-S/USB-F/USB-SPI EJTAG Tiny Tools)
Электроника на KitPost
|
Наш опрос |
Оцените мой сайт
Всего ответов: 86
|
|
ИК станция от mvm_ksaa
| |
mvm_ksaa | Дата: Пятница, 24.11.2017, 13:33 | Сообщение # 1 |
Подполковник
Группа: Модераторы
Сообщений: 173
Статус: Offline
| Проект закрыт, не совсем закончен, автор не дорабатывает, воспроизводить проект можете на своё усмотрение.
Инфракрасная паяльная станция на Arduino Uno + AD7705, управляется через программу с компьютера
Шилд в формате Sprint-Layout60 можно скачать здесь https://cloud.mail.ru/public/Eg3v/43qzcV7aT Скетч для Arduino можно скачать здесь https://cloud.mail.ru/public/2Q35/koTjzpLiG Скачать программу для Windows X32 можно здесь https://cloud.mail.ru/public/6SmE/pvpzzb2kS Скачать программу для Windows X64 можно здесь https://cloud.mail.ru/public/MBeG/ybAQNX7n6 Скетч для Arduino-Pro-Mini для управления вентилятором охлаждения https://cloud.mail.ru/public/ESKm/68cN4assT Шилд от Cinema: https://cloud.mail.ru/public/ByGm/BbFr4VUQV Версия программы с корректировкой температур и увеличенным графиком https://cloud.mail.ru/public/LVi1/PS3rs9qvJ В версии программы 2.2.1 добавлена возможность для работы с USB микроскопом Программа IRSolder64X скачать Программа IRSolder32X скачать Ссылки которые публиковались походу обсуждений в теме могут не сработать, просьба брать отсюда!!!
Сообщение отредактировал mvm_ksaa - Вторник, 14.08.2018, 05:29 |
|
|
Пользователи поблагодарившие mvm_ksaa за этот пост: |
|
|
virs-1 | Дата: Суббота, 22.02.2020, 22:14 | Сообщение # 181 |
Рядовой
Группа: Пользователи
Сообщений: 3
Статус: Offline
| mvm_ksaa, не могу скачать скечь ошибка 404 и можно схему Добавлено (22.02.2020, 22:16) --------------------------------------------- mvm_ksaa, а лучше полный архив схема прошивка программа пичятка
|
|
|
Пользователи поблагодарившие virs-1 за этот пост: |
|
|
Cinema | Дата: Воскресенье, 23.02.2020, 12:46 | Сообщение # 182 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| virs-1 Смотрите! Я специально для Вас собрал Золотые цитаты от mvm_ksaa из этой его темы: "..., схемы я вообще не рисовал, ну думаю по этому и так все понятно, схема силового, один в один от LDZ, на силовой модуль от остальной схемы приходят только управляющие сигналы на оптосимисторы. Печатку под ЛУТ, она односторонняя, я выкладываю, вот есть только нюансик, я на печатках никогда не рисую расположение элементов, вот не нужно как-то мне, по фотографии блока изнутри видно что и как расположено, тем более там всего 14 деталей))) Для тех кто не помнит или не может найти схему от LDZ, я тоже приведу ее здесь и выделю что относится к силовому блоку" (http://radioservice.at.ua/forum/27-34-2774-16-1511761149) "Печатка силового блока, я ее уже выкладывал на форуме по станции от LDZ, но выложу ещё раз для полноты описания" (http://radioservice.at.ua/forum/27-34-2775-16-1511761397) "сама электроника питается от компьютера по USB,..., как видно из фотографии внутренностей, в правом верхнем углу стоит самая обычная Arduino Uno, сверху у нее в виде шилда стоит АЦП AD7705 со всей обвязкой, схема как и у поста atmega128+ad7705 один в один, она кстати точна такая же как и в даташите на эту микросхему, плюсом во время отладки я поставил дублирующие светодиоды UART, через сопротивления 1кОм, светодиоды параллельно оптосимисторам силового блока ..., ... 2 светодиода на отдельные порты, вывод порта i2c вместе с питанием, ну и поставил пищалку, печатная платка получилось простой, односторонней под ЛУТ. Схему подключения АЦП и печатку выкладываю" (http://radioservice.at.ua/forum/27-34-2780-16-1511765759) "Так как я не рисую расположение элементов на печатной плате" (http://radioservice.at.ua/forum/27-34-2781-16-1511767929) и (http://radioservice.at.ua/forum/27-34-2782-16-1511768567) "а вентилятор то)))" (http://radioservice.at.ua/forum/27-34-2790-16-1511779494) и (http://radioservice.at.ua/forum/27-34-2791-16-1511779857) "последнее время что-то времени ужасно не хватает, ... в свободное время немножко софтину переписываю" (http://radioservice.at.ua/forum/27-34-3143-16-1524731690) это про мой пост # 89 (http://radioservice.at.ua/forum/27-34-3123-16-1524511308) и добавка от Alexandr_ # 92(http://radioservice.at.ua/forum/27-34-3145-16-1524733976) "вначале питал от USB, питания явно недостаточно, переделал на внешнее питание" (http://radioservice.at.ua/forum/27-34-3359-16-1533530622) от меня лично: "Скетч от mvm_ksaa MyWorkStation" (http://radioservice.at.ua/forum/27-34-3808-16-1547550854) Теперь у вас есть всё. Нарисуйте полную схему, в BOM-лист добавьте типы и марки используемых компонентов, напишите инструкцию пользователя для данного схемно-программного комплекса. А то как-то требованием ваш пост прикидывается, а не желанием разобраться и навести порядок в теме.
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
|
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
virs-1 | Дата: Четверг, 19.03.2020, 23:30 | Сообщение # 183 |
Рядовой
Группа: Пользователи
Сообщений: 3
Статус: Offline
| на контактах 5 и 6 ноль
|
|
|
Пользователи поблагодарившие virs-1 за этот пост: |
|
|
mvm_ksaa | Дата: Пятница, 20.03.2020, 06:28 | Сообщение # 184 |
Подполковник
Группа: Модераторы
Сообщений: 173
Статус: Offline
| virs-1, т.е. светодиоды тоже не моргают? а светодиоды на 2 и 3 выводах загораются? а RX TX моргают? тут просто куча вариантов, коннект проходит? температура при этом возвращается в программу? просто так я не могу ответить, почему нет выхода на оптроны!
|
|
|
Пользователи поблагодарившие mvm_ksaa за этот пост: |
|
|
Cinema | Дата: Воскресенье, 27.09.2020, 18:16 | Сообщение # 185 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| Без малого 3 года (от 11.2017г) этой связке arduino+PC. Хочу пройтись по этой разработке вопросами, попытаться разобраться более углублённо. Для начала задам вопрос по библиотеке для AD7705! Были проблемы у skayp606 из-за библиотек дисплея и AD7705: С дисплеем быстро разобрались, а АЦП, я так понял, остался непобежденным. Я тогда оставил "на потом", и сегодня наткнулся на обсуждение похожей проблемы: Цитата arduino получает данные от AD7705 по CSP, переводит в понятные для компьютера формат (2 байта) и передает их в компьютер, компьютер исходя из предыдущих значений температуры по времени, реальных данных о температуре и коэффициентов пропорциональности, интегрирования и дифференцирования (подобранных опытным путем), а так же заданных максимальных значений мощности для верхнего и нижнего нагревателей, передает значения для ШИМ в Arduino Тут я запутался: ПК получает 2 байта, а в меню программы задать можно только 0-255. К тому же значение задаваемой мощности в меню программы также задаётся 0-255, что трудно воспринимается... Возможно, ясность внесло бы изучение протокола обмена между arduino и программой. Если, конечно, mvm_ksaa может передать его мне... Этот комплекс разрабатывался под нагреватели с большой инерционностью, и теперь, по прошествии почти 3х лет, я на практике знаю, что такими нагревателями очень непросто управлять - слишком велика задержка между командой от программы и реакцией датчика, особенно если он не вмонтирован непосредственно в нагреватель. Увы, если оба датчика в нагревателях - некому следить за температурой у чипа... Также ограничение задания уставки термостола 0-255 не позволяет набрать плате на стойках высотой 15мм температуру выше 130°С, а времени даже на это уходит слишком много, либо велики перелеты за уставку... Буду дополнять наблюдения в следующих постах.
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
|
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
mvm_ksaa | Дата: Четверг, 01.10.2020, 04:25 | Сообщение # 186 |
Подполковник
Группа: Модераторы
Сообщений: 173
Статус: Offline
| Cinema, здравствуйте, конечно я уже наверное подзабыл, потому как много что после этого проекта делал (ну работает и работает), но я действительно столкнулся с той же проблемой в свое время как мне помниться, так вот программа передает показание температуры не 2 байта, а 4, т.е. если температура указана выше 255 градусов, то программа раскладывает её на два байта, соответственно максимальная температура будет 510, мне хватает. Протокол так навскидку от станции глядя по скетчу 170(это постоянная начало блока), 1 байт температуры верхнего датчика, второй байт температуры верхнего датчика, первый байт температуры нижнего датчика, второй байт температуры нижнего датчика, и последний 255(FF), просто байт окончания блока. Итого 6 байт. Обратно на станцию приходят 4 байта, байт заголовка (АА), байт на ШИМ верхнего нагревателя, байт на ШИМ нижнего нагревателя (тут уже диапазон 00-FF, именно столько и понимает ШИМ контролера) и байт состояния подсветки дисплея, там по-моему два состояния 00 и 01 или 00 и FF точно уже не помню. По этому для ШИМ в программе и задается от 0 до 255, потому как большего для ШИМа и не надо. А вот температуру в профиле уже можно и 500 задать, так как со станции может и 500 прийти.
Сообщение отредактировал mvm_ksaa - Четверг, 01.10.2020, 04:26 |
|
|
Пользователи поблагодарившие mvm_ksaa за этот пост: |
|
|
mvm_ksaa | Дата: Четверг, 01.10.2020, 04:36 | Сообщение # 187 |
Подполковник
Группа: Модераторы
Сообщений: 173
Статус: Offline
| Хотел изначально протокол использовать Modbus RTU, но устройство Slave всего одно, Master тоже один, получается адресация ни к чему, контрольной суммы нету, поэтому нет проверки целостности пакета, ну вроде и не критично, скорости небольшие, длина линии связи тоже короткая, не 1200 метров на RS485 интерфейсе, поэтому протокол получился простейший проприетарный, ибо что мудрить то)))))
Ps: кстати станцией сам не пользуюсь, подарил знакомым в сервис центр, работают нормально. У меня другие проекты, ремонтами не занимаюсь больше, только разработкой.
Сообщение отредактировал mvm_ksaa - Четверг, 01.10.2020, 04:42 |
|
|
Пользователи поблагодарившие mvm_ksaa за этот пост: |
|
|
suvorov_ak | Дата: Суббота, 31.10.2020, 10:03 | Сообщение # 188 |
Рядовой
Группа: Пользователи
Сообщений: 2
Статус: Offline
| Ребят, хочу поставить вместо делителя, ион ref192, но не могу понять как правильно, может кто помочь?
|
|
|
Пользователи поблагодарившие suvorov_ak за этот пост: |
|
|
mon | Дата: Воскресенье, 01.11.2020, 17:53 | Сообщение # 189 |
Подполковник
Группа: Модераторы
Сообщений: 191
Статус: Offline
| suvorov_ak, Вам бы почитать даташит на ad7705 и хотелка отпадёт само сабой,ну и про 4х проводную схему включения ,да и напряжение на ref+ ref- 1 вольт и никак не 2.5,а вот применение прецизионного линейного LDO стаба для стабилизации именно самой ad7705 с её обвязкой сможет улучшить результат,но на сколько...думаю не существенно.
|
|
|
Пользователи поблагодарившие mon за этот пост: |
|
|
Cinema | Дата: Суббота, 07.11.2020, 10:55 | Сообщение # 190 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| Народ, приветствую! Есть тут кто живой и кто 'в теме'? Подскажите, что я упустил. Вот оригинальный код mvm_ksaa Код #include <Wire.h> #include <AD770X.h> #include <LiquidCrystal_I2C.h> #include <string.h> AD770X ad7706(2.5); double R1, R2; LiquidCrystal_I2C lcd(0x3f, 20, 4); byte buzzerPin = 10; #define DRDY 5 #define RelayPin1 11 #define RelayPin2 12 #define EnableTop 2 #define EnableBottom 3 byte LevelTop = 0x00; byte LevelBottom = 0x00; double Temp_Top = 0; double Temp_Bottom = 0; int Temp1, Temp2, Temp11, Temp12; byte EnableLed = 0xFF; char command_in[6]; const byte DESIRED_WIDTH = 3; void setup() { Serial.begin(9600); lcd.begin(); lcd.clear(); lcd.backlight(); lcd.setCursor(1, 0); lcd.print("SOLDER STATION"); lcd.setCursor(5, 1); lcd.print("v2.1.2"); tone(buzzerPin, 523); delay(200); tone(buzzerPin, 659); delay(200); tone(buzzerPin, 784); delay(200); noTone(buzzerPin); delay(3000); lcd.clear(); pinMode(RelayPin1, OUTPUT); pinMode(RelayPin2, OUTPUT); pinMode(EnableTop, OUTPUT); pinMode(EnableBottom, OUTPUT); digitalWrite(EnableTop, LOW); digitalWrite(EnableBottom, LOW); analogWrite(RelayPin1, LevelTop); analogWrite(RelayPin2, LevelBottom); ad7706.reset(); ad7706.init(AD770X::CHN_AIN1); ad7706.init(AD770X::CHN_AIN2); } String addZeroes(const String& src, byte pad) { if (src.length() >= pad) return src; String result; byte add = pad - src.length(); while (add--) result += "0"; result += src; return result; }
void loop() { while ( !digitalRead(DRDY) ); R1 = ad7706.readADResult(AD770X::CHN_AIN1); double Temp_Bottom = (R1 - 1) / 0.00392; //delay(1); // раскоментировать, если читает температуру некорректно R2 = ad7706.readADResult(AD770X::CHN_AIN2); double Temp_Top = (R2 - 1) / 0.00392 - 10; int i = 0; int buffer[6]; if (Serial.available()) { delay(100); while ( Serial.available() && i < 7) { buffer[i++] = Serial.read(); } buffer[i++] = '\0'; } if (i > 0) { if (buffer[0] == 0xAA) { LevelTop = buffer[1]; LevelBottom = buffer[2]; EnableLed = buffer[3]; } Temp1 = int(Temp_Top); Temp11 = 0; if (Temp1 > 255) { Temp11 = Temp1 - 255; Temp1 = 255; } Temp2 = int(Temp_Bottom); Temp12 = 0; if (Temp2 > 255) { Temp12 = Temp2 - 255; Temp2 = 255; } Serial.write(170); Serial.write(Temp1); Serial.write(Temp11); Serial.write(Temp2); Serial.write(Temp12); Serial.write(255); } if (LevelTop == 0x00) { digitalWrite(EnableTop, LOW); } if (LevelTop != 0x00) { digitalWrite(EnableTop, HIGH); } if (LevelBottom == 0x00) { digitalWrite(EnableBottom, LOW); } if (LevelBottom != 0x00) { digitalWrite(EnableBottom, HIGH); } analogWrite(RelayPin1, LevelTop); analogWrite(RelayPin2, LevelBottom); lcd.setCursor(1, 0); lcd.print("TH:"); lcd.setCursor(1, 1); lcd.print("BH:"); lcd.setCursor(8, 0); lcd.print("PWR:"); lcd.setCursor(8, 1); lcd.print("PWR:"); lcd.setCursor(4, 0); lcd.print(addZeroes(String(int(Temp_Top)), DESIRED_WIDTH)); lcd.setCursor(4, 1); lcd.print(addZeroes(String(int(Temp_Bottom)), DESIRED_WIDTH)); lcd.setCursor(12, 0); lcd.print(addZeroes(String(int(LevelTop)), DESIRED_WIDTH)); lcd.setCursor(12, 1); lcd.print(addZeroes(String(int(LevelBottom)), DESIRED_WIDTH)); if (EnableLed == 0x00) { lcd.noBacklight(); } if (EnableLed == 0xFF) { lcd.backlight(); } }
Я подставил вместо библиотеки AD7705 функцию чтения для двух преобразователей сигналов термопары MAX6675, соответственно их подключил, задал состояние их пинам, заменил в скетче остальные пины подключения на удобные мне. Ввёл нужные переменные для корректной работы с MAX6675 (задаю частоту опроса). Сохранил имена переменных, используемых оригиналом для вывода в порт и на дисплей. Однако вывода температуры на LCD не происходит ни в простое, ни при коннекте с софтом. Код //редакция от 07/11/2020.
//библиотеки #include <Wire.h> #include <string.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3f, 20, 4); //#include <AD770X.h> //AD770X ad7706(2.5);
//---MAX6675 functions---// double max6675_read_temp (int ck, int cs, int so) { char i; int tmp = 0; digitalWrite(cs, LOW);//cs = 0; // Stop a conversion in progress asm volatile (" nop" "\n\t"); for (i = 15; i >= 0; i--) { digitalWrite(ck, HIGH); asm volatile (" nop" "\n\t"); if ( digitalRead(so)) tmp |= (1 << i); digitalWrite(ck, LOW); asm volatile (" nop" "\n\t"); } digitalWrite(cs, HIGH); if (tmp & 0x4) { return NAN; } else return ((tmp >> 3)) * 0.25; } //---MAX6675 functions---//
//переменные double Input1; //текущая температура(измеренная max6675) ВИ double Input2; //текущая температура(измеренная max6675) НИ unsigned long nextRead2; //переменная для обновления текущей температуры #define SENSOR_SAMPLING_TIME 250 //частота обновления текущей температуры (1000=1 раз в секунду) //--- //double R1, R2; double Temp_Top = 0; double Temp_Bottom = 0; byte LevelTop = 0x00; byte LevelBottom = 0x00; int Temp1, Temp2, Temp11, Temp12; byte EnableLed = 0xFF; char command_in[6]; const byte DESIRED_WIDTH = 3;
//пины подключения //назначаем пины преобразователей термопар #define thermoSO 6 //DO=(SO) #define thermoCLK 7 //SCK=(CLK) #define thermoCStop 8 //CS MAX6675 "ВЕРХНЕГО" нагревателя #define thermoCSbott 9 //CS MAX6675 "НИЖНЕГО" нагревателя
#define RelayPin1 12 //назначаем пин "ВЕРХНЕГО" нагревателя #define RelayPin2 11 //назначаем пин "НИЖНЕГО" нагревателя #define buzzerPin 10 //назначаем пин пищалки //--- //#define DRDY 9 //#define RelayPin1 6 //#define RelayPin2 5 #define EnableTop 2 #define EnableBottom 3 //byte buzzerPin = 4;
void setup() { Serial.begin(9600); //приветствие lcd.begin(); lcd.clear(); lcd.backlight(); lcd.setCursor(1, 0); lcd.print("REWORK STATION"); lcd.setCursor(5, 1); lcd.print("v3.0.0");
//мелодия приветствия tone(buzzerPin, 523); delay(200); tone(buzzerPin, 659); delay(200); tone(buzzerPin, 784); delay(200); noTone(buzzerPin); delay(3000);
//состояние пинов подключения pinMode(RelayPin1, OUTPUT); pinMode(RelayPin2, OUTPUT); pinMode(EnableTop, OUTPUT); pinMode(EnableBottom, OUTPUT); //задаём состояние пинов, к которым подключены MAX6675 pinMode(thermoCStop, OUTPUT); pinMode(thermoCSbott, OUTPUT); pinMode(thermoCLK, OUTPUT); pinMode(thermoSO, INPUT);
digitalWrite(EnableTop, LOW); digitalWrite(EnableBottom, LOW); analogWrite(RelayPin1, LevelTop); analogWrite(RelayPin2, LevelBottom); //ad7706.reset(); //ad7706.init(AD770X::CHN_AIN1); //ad7706.init(AD770X::CHN_AIN2); lcd.clear(); nextRead2 = millis(); //запускаем чтение термопар }
String addZeroes(const String& src, byte pad) { if (src.length() >= pad) return src; String result; byte add = pad - src.length(); while (add--) result += "0"; result += src; return result; }
void loop() { unsigned long currentMillis = millis(); if (millis() > nextRead2) { nextRead2 = millis() + SENSOR_SAMPLING_TIME; //устраняем колебания датчиков температуры Input1 = Input1 * 0.8 + 0.2 * (max6675_read_temp (thermoCLK, thermoCStop, thermoSO)); //термопара "ВЕРХНЕГО" нагревателя Input2 = Input2 * 0.8 + 0.2 * (max6675_read_temp (thermoCLK, thermoCSbott, thermoSO)); //термопара "НИЖНЕГО" нагревателя double Temp_Top = Input1; double Temp_Bottom = Input2; //double Temp_Bottom = (Input1 - 1) / 0.00392; //double Temp_Top = (Input2 - 1) / 0.00392 - 10; } //--- //while ( !digitalRead(DRDY) ); //R1 = ad7706.readADResult(AD770X::CHN_AIN1); //double Temp_Bottom = (R1 - 1) / 0.00392; //delay(1); // раскоментировать, если читает температуру некорректно //R2 = ad7706.readADResult(AD770X::CHN_AIN2); //double Temp_Top = (R2 - 1) / 0.00392 - 10;
int i = 0; int buffer[6]; if (Serial.available()) { delay(100); while ( Serial.available() && i < 7) { buffer[i++] = Serial.read(); } buffer[i++] = '\0'; } if (i > 0) { if (buffer[0] == 0xAA) { LevelTop = buffer[1]; LevelBottom = buffer[2]; EnableLed = buffer[3]; }
Temp1 = int(Temp_Top); Temp11 = 0; if (Temp1 > 255) { Temp11 = Temp1 - 255; Temp1 = 255; } Temp2 = int(Temp_Bottom); Temp12 = 0; if (Temp2 > 255) { Temp12 = Temp2 - 255; Temp2 = 255; }
Serial.write(170); Serial.write(Temp1); Serial.write(Temp11); Serial.write(Temp2); Serial.write(Temp12); Serial.write(255); } if (LevelTop == 0x00) { digitalWrite(EnableTop, LOW); } if (LevelTop != 0x00) { digitalWrite(EnableTop, HIGH); } if (LevelBottom == 0x00) { digitalWrite(EnableBottom, LOW); } if (LevelBottom != 0x00) { digitalWrite(EnableBottom, HIGH); } analogWrite(RelayPin1, LevelTop); analogWrite(RelayPin2, LevelBottom);
lcd.setCursor(1, 0); lcd.print("TH:"); lcd.setCursor(1, 1); lcd.print("BH:"); lcd.setCursor(8, 0); lcd.print("PWR:"); lcd.setCursor(8, 1); lcd.print("PWR:"); lcd.setCursor(4, 0); lcd.print(addZeroes(String(int(Temp_Top)), DESIRED_WIDTH)); lcd.setCursor(4, 1); lcd.print(addZeroes(String(int(Temp_Bottom)), DESIRED_WIDTH)); lcd.setCursor(12, 0); lcd.print(addZeroes(String(int(LevelTop)), DESIRED_WIDTH)); lcd.setCursor(12, 1); lcd.print(addZeroes(String(int(LevelBottom)), DESIRED_WIDTH)); if (EnableLed == 0x00) { lcd.noBacklight(); } if (EnableLed == 0xFF) { lcd.backlight(); } }
Добавлено (07.11.2020, 11:01) --------------------------------------------- Смущают вот эти строчки, кстати: Код double Temp_Bottom = (R1 - 1) / 0.00392;
double Temp_Top = (R2 - 1) / 0.00392 - 10;
К такому формату привязан расчет ПИД в софте? Как тогда интерпретируются данные из функции чтения MAX6675? - некорректно для вывода на LCD?Добавлено (09.11.2020, 22:20) ---------------------------------------------
Цитата Cinema ( ) Смущают вот эти строчки Надо просто даташит на PT100 почитать - смущение пройдет. Без замены строки в файле .cpp самой библиотеки AD7705 на указанную mvm_ksaa в посте , на LCD отображалась дребедень. Однако, остальные проблемы, первая из которых - отсутствие взаимодействия ВСЕХ РЕЛИЗОВ софта с контроллером, ждут решений. Напомню - шилд я собрал 2 года назад, но, к сожалению, желающих повторить этот проект, можно сказать, не нашлось... Усугубило ситуацию и то, что в отличие от проекта LDZ, поддержка, на отсутствие которой указал на первых страницах этой темы сам mvm_ksaa, так и не была им реализована вовсе. И также остались недоступны для редактирования файлы софта... По мере появления свободного времени, попытаюсь запустить связку (ПО + arduino & шилд) проекта, т.к. оценить его возможности и недостатки на текущий момент никак не получится, пока ПО не начнёт общаться с arduino. Для наглядности, нынче соберу плату индикации, как это реализовано у самого mvm_ksaa. Так что заходИте в тему поболтать, может, что-нибудь дельное подскажете. А уж я, окрылённый поддержкой и успешным запуском проекта, обязательно систематизирую полученную инфу и разложу здесь по пунктикам
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
Сообщение отредактировал Cinema - Суббота, 07.11.2020, 10:56 |
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
Cinema | Дата: Понедельник, 09.11.2020, 23:27 | Сообщение # 191 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| Архив с "причёсанным" немного, оригинальным скетчем крайней версии от mvm_ksaa под его шилд выкладываю здесь. В этом же архиве поправленная версия скетча skayp606 под использование ZCC и силовой схемы на основе оптотриаков без встроенного узла детектирования нуля. Оригинал от skayp606 лежит в посте его по ссылке В архиве также есть библиотека дисплея и поправленная по предложению mvm_ksaa библиотека для АЦП. Небольшое уточнение по строчке кода Код double Temp_Top = (R2 - 1) / 0.00392 - 10;
Здесь "минус 10" - это от показаний датчика отнимаем 10°С. При калибровке датчиков, вместо этого числа можно указать подходящее конкретно в вашем случае, для выравнивания показаний и соответствия их действительным значениям измеряемой при калибровке датчиков температуры. То же и для Temp_Bottom. Можно и отнимать и прибавлять, т.к. PT100 практически линейны во всём диапазоне измерений.
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
Сообщение отредактировал Cinema - Вторник, 10.11.2020, 10:39 |
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
Cinema | Дата: Вторник, 10.11.2020, 17:11 | Сообщение # 192 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| Испробовал все варианты скетчей, все релизы софта. Картина одинаковая, не зависящая также от порта и его скорости. На LCD t°C TH:18 и TB:28. При нажатии коннект в софте и запуске пайки, на LCD значения мощностей остаются 000 и 000.
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
|
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
Cinema | Дата: Пятница, 13.11.2020, 20:32 | Сообщение # 193 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| На текущий момент скетч переписан для использования двух термопар ТХА (K-Type), совместно с модулями преобразователей сигнала термопар на микросхемах MAX6675. Используется стандартная библиотека для MAX6675. Пины подключения изменены так, чтобы быть совместимыми с веткой v1.3.x контроллеров из темы http://radioservice.at.ua/forum/23 На LCD температура выводится корректно, однако есть проблемы с софтом. На лицензионной Win7x64 софт, причём любой версии, вылетает после нажатия в нём кнопки connect. Установил последние обновления, отключал антивирус и файрвол, ничего хорошего не получилось. В ближайших планах - установлю на новый чистый жесткий диск чистую (с заводскими параметрами) Win7x64 с необходимыми драйверами и дополнениями. Снова попробую запустить софт. Отчитаюсь. P.S.: ХЗ почему, писать посты в этот форум через Mozilla Firefox - ад адский, думать стал об уходе с форумов сайта. Сейчас пост делаю в Google Chrome и пока всё работает без тормозов...
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
|
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
o514scp | Дата: Пятница, 13.11.2020, 20:53 | Сообщение # 194 |
Подполковник
Группа: Пользователи
Сообщений: 109
Статус: Offline
| Цитата Cinema ( ) совместно с модулями преобразователей сигнала термопар на микросхемах MAX6675. Используется стандартная библиотека для MAX6675. Пины подключения изменены так, чтобы быть совместимыми с веткой v1.3.x контроллеров из темы http://radioservice.at.ua/forum/23 Посмотрю, может и возьму на заметку, попробую быть может(когда-нибудь). Для калибровки подразумевается мультиметр/термометр с термопарой ?
Цитата Cinema ( ) однако есть проблемы с софтом Пока что только управление вентилятором смог проверить, запуск/регулировка есть, но вкл/выкл нет такого. Вообще, когда заставлю мозги (пока что ldz еще с компом не хочет дружить) все работать, рулить хотелось бы из-под WinXP, с выделенного для этих целей ноута(который x64 win потащит, доукомплектовывать и собирать).
Цитата Cinema ( ) через Mozilla Firefox - ад адский, думать стал об уходе с форумов сайта В какой-то момент заметил, что огнелис жрет память, и перешел на Google Chrom. Что-то нахимичили они(
|
|
|
Пользователи поблагодарившие o514scp за этот пост: |
|
|
Cinema | Дата: Понедельник, 16.11.2020, 22:37 | Сообщение # 195 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| Перевел я, в порядке эксперимента, скетч mvm_ksaa на работу с MAX6675 с термопарами, вместо AD7705 с PT100 (соответственно, шилд стал не нужен). Теперь софт и коннектится и управляет. Однако, куда ж без затыков Дело в том, что слишком часто опрашивать ic MAX6675 нехорошо, а с рекомендуемой её даташитом задержкой в 220-170ms софт вылетает с ошибкой, а зачастую ещё и ардуинку зацикливает/вешает. Сейчас в скетче для моих конкретных экземпляров модулей MAX6675 задержка установлена 140ms и вылетов не наблюдается, однако, насколько истинны показания температур на дисплее и в окне софта - вопрос, требующий реальных испытаний. Мои познания скромны, и я смею полагать, что исправить такое положение дел можно через правки в софте, чего добиться не получится в принципе, т.к. проект автор забросил...
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
Сообщение отредактировал Cinema - Понедельник, 16.11.2020, 22:46 |
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
|